Function at 0x1241c00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x268
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x28], eax
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
lea eax, [esp + 0xa4]
not eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 4], ebx
jmp 0x1241c48
mov esi, dword [esp + 0x50]
mov byte [ebx], al
inc ebx
inc esi
mov eax, esi
xor eax, 0xfffffffc
mov ecx, esi
or ecx, 3
mov edi, esi
test ecx, eax
je 0x1241c60
movzx eax, byte [esi]
jmp 0x1241c7e
mov eax, dword [esi]
mov edx, eax
not edx
and edx, 0x80808080
mov ecx, eax
xor ecx, 0x25252525
add ecx, 0xfefefeff
test ecx, edx
je 0x1241cd6
cmp al, 0x25
je 0x1241d40
mov esi, edi
test al, al
mov edi, dword [ebp + 8]
je 0x12442e9
test edi, edi
je 0x1241c44
mov dword [esp + 0x50], esi
mov ecx, ebx
mov esi, dword [esp + 4]
sub ecx, esi
lea edx, [ecx + 1]
cmp edx, 0x200
jl 0x1241c40
add dword [esp + 0x4c], ecx
push ecx
push dword [ebp + 0xc]
push esi
call edi
add esp, 0xc
test eax, eax
je 0x124430d
mov ebx, eax
mov esi, dword [esp + 0x50]
movzx eax, byte [esi]
mov dword [esp + 4], ebx
jmp 0x1241c44
mov ecx, ebx
sub ecx, dword [esp + 4]
jmp 0x1241d0e
mov dword [ebx], eax
add ebx, 4
mov eax, dword [edi + 4]
add edi, 4
mov edx, eax
not edx
and edx, 0x80808080
mov esi, eax
xor esi, 0x25252525
add esi, 0xfefefeff
add ecx, 4
test esi, edx
jne 0x1241c7e
lea esi, [eax - 0x1010101]
test edx, esi
jne 0x1241c86
cmp dword [ebp + 8], 0
je 0x1241ce0
mov edx, ecx
not edx
and edx, 0x200
mov esi, ecx
and esi, 0xfffffdff
sub edx, esi
cmp edx, 4
jge 0x1241ce0
jmp 0x1241c7e
add edi, 2
mov dword [esp], 0
mov ecx, edi
jmp 0x1241d64
movzx eax, byte [ecx - 1]
lea esi, [eax - 0x20]
cmp esi, 0x3f
ja 0x1241dd6
mov edx, 2
jmp dword [esi*4 + 0x128d564]
mov eax, dword [esp + 0x28]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0x28], eax
movzx eax, byte [ecx + 1]
inc ecx
jmp 0x1241e0b
dec ecx
cmp al, 0x2a
je 0x1241dc2
mov edx, eax
add dl, 0xd0
xor esi, esi
cmp dl, 9
ja 0x1241e0b
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
movzx eax, al
lea edx, [esi + esi*4]
lea esi, [eax + edx*2]
add esi, 0xffffffd0
movzx eax, byte [ecx + 1]
inc ecx
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x1241df0
mov dword [esp + 0x18], 0xffffffff
cmp al, 0x2e
jne 0x1241e6f
movzx eax, byte [ecx + 1]
cmp al, 0x2a
jne 0x1241e39
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov dword [esp + 0x18], edx
add eax, 4
mov dword [esp + 0x28], eax
movzx eax, byte [ecx + 2]
add ecx, 2
jmp 0x1241e6f
inc ecx
mov edx, eax
add dl, 0xd0
mov dword [esp + 0x18], 0
cmp dl, 9
ja 0x1241e6f
xor edi, edi
nop
nop
movzx eax, al
lea edx, [edi + edi*4]
lea edi, [eax + edx*2]
add edi, 0xffffffd0
movzx eax, byte [ecx + 1]
inc ecx
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x1241e50
mov dword [esp + 0x18], edi
movzx eax, al
add eax, 0xffffffb7
cmp eax, 0x31
mov dword [esp + 0x48], esi
ja 0x1241eee
jmp dword [eax*4 + 0x128d664]
movzx edx, byte [ecx]
mov esi, ecx
movzx eax, dl
add eax, 0xffffffbf
cmp eax, 0x37
mov dword [esp + 0x50], esi
ja 0x1242693
mov dword [esp + 0x2c], ebx
jmp dword [eax*4 + 0x128d72c]
mov byte [esp + 0x263], dl
mov dword [esp + 0x20], 1
mov byte [esp + 0x3c], 0
mov byte [esp + 0x30], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x24], 0
lea edx, [esp + 0x263]
mov dword [esp], 0
mov dword [esp + 0xc], 0
xor eax, eax
mov dword [esp + 0x48], 0
mov esi, dword [esp + 4]
jmp 0x1243685
mov dword [esp + 0x14], edx
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jg 0x1243697
mov eax, ecx
mov edi, eax
movsx eax, byte [esp + 0x3c]
movsx esi, byte [esp + 0x30]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x18], edi
add edx, edi
add edx, eax
add edx, esi
mov esi, dword [esp + 0x48]
cmp esi, edx
jg 0x12436bb
mov esi, edx
sub esi, edx
sub dword [esp + 0x18], ecx
mov ecx, dword [esp]
test cl, 1
mov edi, dword [ebp + 8]
jne 0x12436de
test cl, 0x10
mov edx, dword [esp + 0x14]
jne 0x12436e4
mov dword [esp], 0
jmp 0x12436f4
mov edx, dword [esp + 0x14]
jmp 0x12436f4
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jg 0x12436ee
mov esi, ecx
mov dword [esp + 0x18], esi
xor esi, esi
mov ecx, esi
add ecx, dword [esp + 0x18]
je 0x1243c11
test byte [esp], 1
jne 0x12438a0
test esi, esi
jg 0x124372e
jmp 0x12438a0
mov ecx, dword [esp + 0x1c]
sub esi, ecx
test esi, esi
jle 0x124389b
mov ecx, dword [esp + 4]
sub ecx, ebx
add ecx, 0x200
mov eax, esi
cmp esi, ecx
jl 0x1243742
mov eax, ecx
mov ecx, esi
test edi, edi
je 0x124374a
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x1c], ecx
je 0x1243850
mov dword [esp + 0x48], esi
lea edx, [ecx + 3]
mov eax, ebx
xor ebx, ebx
mov edi, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], edx
mov esi, eax
add eax, ebx
mov edx, eax
xor edx, 0xfffffffc
mov ecx, eax
or ecx, 3
test ecx, edx
je 0x12437c0
mov eax, esi
mov byte [esi + ebx], 0x20
dec edi
inc ebx
mov edx, dword [esp + 8]
dec edx
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
jne 0x1243770
add eax, ebx
mov edi, dword [ebp + 8]
mov ebx, eax
mov esi, dword [esp + 0x48]
test edi, edi
jne 0x1243858
jmp 0x1243724
mov dword [esp + 0x44], eax
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x1c]
mov edx, ecx
sub edx, ebx
cmp edx, 4
jl 0x1243822
cmp edi, 7
jl 0x12437df
mov edi, 7
mov eax, ecx
sub eax, edi
sub eax, ebx
add eax, 3
and eax, 0xfffffffc
add eax, 4
push eax
push 0x20
push dword [esp + 0x4c]
call fcn.0124d8d0
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov edx, dword [esp + 8]
sub edx, edi
and edx, 0xfffffffc
mov eax, dword [esp + 0x2c]
add eax, edx
add eax, ebx
add eax, 4
mov esi, ecx
sub esi, edx
mov edx, esi
sub edx, ebx
add edx, 0xfffffffc
jmp 0x1243826
mov eax, dword [esp + 0x44]
test edx, edx
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x48]
je 0x1243890
push edx
push 0x20
push eax
mov ebx, eax
mov dword [esp + 0x14], edx
call fcn.0124d8d0
mov ecx, dword [esp + 0x28]
add esp, 0xc
add ebx, dword [esp + 8]
nop
nop
nop
nop
nop
test edi, edi
je 0x1243724
mov eax, ebx
mov edx, dword [esp + 4]
sub eax, edx
lea ecx, [eax + 1]
cmp ecx, 0x200
jl 0x1243720
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edx
call edi
add esp, 0xc
test eax, eax
je 0x124430d
mov ebx, eax
mov dword [esp + 4], eax
jmp 0x1243720
mov ebx, eax
test edi, edi
jne 0x1243858
jmp 0x1243724
movzx eax, byte [esp + 0x3c]
mov dword [esp + 0x48], esi
lea ecx, [esp + 0x3d]
mov dword [esp + 0x10], ecx
test al, al
je 0x12439dd
mov esi, dword [esp + 4]
jmp 0x12438cd
movzx eax, byte [esp + 0x3c]
test al, al
je 0x12439e1
movsx ecx, al
mov edx, esi
sub edx, ebx
add edx, 0x200
cmp edx, ecx
jl 0x12438e0
mov edx, ecx
test edi, edi
je 0x12438e6
mov ecx, edx
sub al, cl
mov byte [esp + 0x3c], al
test ecx, ecx
je 0x124398b
mov eax, ecx
and eax, 3
je 0x12439d0
mov dword [esp + 4], esi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x10]
lea edi, [esi + 1]
mov dword [esp + 0x10], edi
mov edi, ebx
movzx ebx, byte [esi]
mov byte [edi + edx], bl
mov ebx, edi
inc edx
cmp eax, edx
jne 0x1243910
add ebx, edx
mov eax, ecx
sub eax, edx
mov edi, dword [ebp + 8]
mov esi, dword [esp + 4]
cmp ecx, 4
jb 0x124398b
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx], cl
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx + 1], cl
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx + 2], cl
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx + 3], cl
add ebx, 4
add eax, 0xfffffffc
jne 0x1243940
test edi, edi
je 0x12438c0
mov eax, ebx
sub eax, esi
lea ecx, [eax + 1]
cmp ecx, 0x200
jl 0x12438c0
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push esi
call edi
add esp, 0xc
test eax, eax
je 0x124430d
mov ebx, eax
mov esi, eax
jmp 0x12438c0
mov eax, ecx
cmp ecx, 4
jae 0x1243940
jmp 0x124398b
mov esi, dword [esp + 4]
mov dword [esp + 4], esi
mov eax, dword [esp + 0x24]
mov ecx, eax
shr ecx, 0x18
mov dword [esp + 8], ecx
xor esi, esi
test byte [esp], 0x40
je 0x1243a1a
and eax, 0xffffff
add eax, dword [esp + 0x18]
mov esi, dword [esp + 8]
mov edx, esi
xor edx, 1
mov ecx, esi
and ecx, 1
lea ecx, [edx + ecx*2]
xor edx, edx
div ecx
sub esi, edx
mov edx, dword [esp + 0x18]
test edx, edx
jg 0x1243a50
lea eax, [esp + 0x3d]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x14]
jmp 0x1243d41
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x1c]
test edx, edx
jle 0x1243c04
mov ecx, dword [esp + 4]
sub ecx, ebx
add ecx, 0x200
mov eax, edx
mov dword [esp + 0x18], edx
cmp edx, ecx
jl 0x1243a68
mov eax, ecx
mov ecx, dword [esp + 0x18]
test edi, edi
je 0x1243a72
mov ecx, eax
test byte [esp], 0x40
mov dword [esp + 0x1c], ecx
jne 0x1243ad0
test ecx, ecx
je 0x1243ae0
mov eax, ebx
and eax, 3
je 0x1243ae0
mov eax, ecx
mov ecx, ebx
mov edi, ebx
not edi
and edi, 3
lea ebx, [eax - 1]
cmp edi, ebx
jb 0x1243a9b
mov edi, ebx
lea eax, [edi + 1]
push eax
push 0x30
mov dword [esp + 0x34], ecx
push ecx
call fcn.0124d8d0
add esp, 0xc
sub ebx, edi
mov edx, dword [esp + 0x2c]
add edx, edi
inc edx
mov edi, dword [ebp + 8]
cmp ebx, 4
jge 0x1243af0
jmp 0x1243b0a
mov edx, ebx
mov ebx, ecx
jmp 0x1243b0a
mov edx, ebx
mov ebx, ecx
cmp ebx, 4
jl 0x1243b0a
nop
nop
nop
nop
nop
nop
nop
mov dword [edx], 0x30303030
add edx, 4
mov eax, ebx
xor eax, 4
and ebx, 0xfffffffb
add ebx, ebx
sub ebx, eax
cmp ebx, 3
jg 0x1243af0
test ebx, ebx
je 0x1243b20
test bl, 1
jne 0x1243b30
mov eax, ebx
jmp 0x1243b5b
mov ebx, edx
jmp 0x1243b62
mov al, 0x30
test byte [esp], 0x40
je 0x1243b55
cmp esi, dword [esp + 8]
jne 0x1243b54
movzx eax, byte [0x1290001]
mov ecx, eax
add cl, al
and cl, 0x68
sub al, cl
add al, 0x34
xor esi, esi
jmp 0x1243b55
inc esi
mov byte [edx], al
inc edx
lea eax, [ebx - 1]
cmp ebx, 1
mov ebx, edx
jne 0x1243bc0
test edi, edi
je 0x1243a40
mov eax, ebx
mov ecx, dword [esp + 4]
sub eax, ecx
cmp eax, 0x1ff
jl 0x1243a40
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x124430d
mov ebx, eax
mov dword [esp + 4], eax
jmp 0x1243a40
movzx ecx, byte [0x1290001]
mov edx, ecx
add dl, cl
and dl, 0x68
sub cl, dl
add cl, 0x34
xor esi, esi
mov byte [ebx + 1], cl
add ebx, 2
add eax, 0xfffffffe
je 0x1243b62
mov cl, 0x30
test byte [esp], 0x40
je 0x1243bf1
cmp esi, dword [esp + 8]
jne 0x1243bf0
movzx edx, byte [0x1290001]
mov ch, dl
add ch, dl
and ch, 0x68
sub dl, ch
add dl, 0x34
xor esi, esi
jmp 0x1243bf3
inc esi
mov dl, 0x30
mov byte [ebx], dl
test byte [esp], 0x40
je 0x1243bb5
cmp esi, dword [esp + 8]
je 0x1243ba0
inc esi
jmp 0x1243bb5
movzx eax, byte [esp + 0x3c]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x48], esi
lea ecx, [esp + 0x3d]
mov dword [esp + 0x10], ecx
test al, al
je 0x1243d41
mov esi, dword [esp + 4]
jmp 0x1243c45
mov ebx, eax
mov esi, eax
mov edx, dword [esp + 0x14]
movzx eax, byte [esp + 0x3c]
test al, al
je 0x1243d3d
movsx ecx, al
mov edx, esi
sub edx, ebx
add edx, 0x200
cmp edx, ecx
jl 0x1243c58
mov edx, ecx
test edi, edi
je 0x1243c5e
mov ecx, edx
sub al, cl
mov byte [esp + 0x3c], al
test ecx, ecx
je 0x1243cfb
mov eax, ecx
and eax, 3
je 0x1243d30
mov dword [esp + 4], esi
xor edx, edx
nop
nop
nop
mov esi, dword [esp + 0x10]
lea edi, [esi + 1]
mov dword [esp + 0x10], edi
mov edi, ebx
movzx ebx, byte [esi]
mov byte [edi + edx], bl
mov ebx, edi
inc edx
cmp eax, edx
jne 0x1243c80
add ebx, edx
mov eax, ecx
sub eax, edx
mov edi, dword [ebp + 8]
mov esi, dword [esp + 4]
cmp ecx, 4
jb 0x1243cfb
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx], cl
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx + 1], cl
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx + 2], cl
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
movzx ecx, byte [ecx]
mov byte [ebx + 3], cl
add ebx, 4
add eax, 0xfffffffc
jne 0x1243cb0
test edi, edi
je 0x1243c34
mov eax, ebx
sub eax, esi
cmp eax, 0x1ff
jl 0x1243c34
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push esi
call edi
add esp, 0xc
test eax, eax
jne 0x1243c30
jmp 0x124430d
mov eax, ecx
cmp ecx, 4
jae 0x1243cb0
jmp 0x1243cfb
mov dword [esp + 4], esi
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x1243d86
mov esi, dword [esp + 0xc]
test esi, esi
jne 0x1243f38
lea eax, [esp + 0x31]
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0x30]
test cl, cl
je 0x124417d
mov esi, dword [esp + 0x50]
jmp 0x124406d
sub esi, dword [esp + 8]
je 0x1243d49
mov ecx, dword [esp + 4]
sub ecx, ebx
add ecx, 0x200
mov eax, esi
cmp esi, ecx
jl 0x1243d9a
mov eax, ecx
mov ecx, esi
test edi, edi
je 0x1243da2
mov ecx, eax
cmp ecx, 4
mov dword [esp + 8], ecx
jl 0x1243df0
lea eax, [ecx - 4]
mov dword [esp + 0x1c], eax
shr eax, 2
inc eax
and eax, 7
je 0x1243df4
shl eax, 2
xor edi, edi
mov ecx, dword [edx + edi]
mov dword [ebx + edi], ecx
add edi, 4
cmp eax, edi
jne 0x1243dc0
add ebx, edi
mov ecx, dword [esp + 8]
sub ecx, edi
add edx, edi
mov eax, ecx
mov edi, dword [ebp + 8]
cmp dword [esp + 0x1c], 0x1c
jae 0x1243e00
jmp 0x1243e41
mov eax, ecx
jmp 0x1243e41
cmp dword [esp + 0x1c], 0x1c
jb 0x1243e41
nop
nop
nop
nop
nop
mov eax, dword [edx]
mov dword [ebx], eax
mov eax, dword [edx + 4]
mov dword [ebx + 4], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [edx + 0x1c]
mov dword [ebx + 0x1c], eax
add ebx, 0x20
add edx, 0x20
lea eax, [ecx - 0x20]
add ecx, 0xffffffdc
cmp ecx, 0xfffffff8
mov ecx, eax
jb 0x1243e00
test eax, eax
je 0x1243ed1
mov ecx, eax
and ecx, 7
je 0x1243f20
mov dword [esp + 0x1c], esi
mov esi, edx
xor edx, edx
nop
nop
nop
nop
mov edi, ebx
movzx ebx, byte [esi + edx]
mov byte [edi + edx], bl
mov ebx, edi
inc edx
cmp ecx, edx
jne 0x1243e60
add ebx, edx
mov ecx, eax
sub ecx, edx
add esi, edx
mov edi, dword [ebp + 8]
mov edx, esi
mov esi, dword [esp + 0x1c]
cmp eax, 8
jb 0x1243ed1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [edx]
mov byte [ebx], al
movzx eax, byte [edx + 1]
mov byte [ebx + 1], al
movzx eax, byte [edx + 2]
mov byte [ebx + 2], al
movzx eax, byte [edx + 3]
mov byte [ebx + 3], al
movzx eax, byte [edx + 4]
mov byte [ebx + 4], al
movzx eax, byte [edx + 5]
mov byte [ebx + 5], al
movzx eax, byte [edx + 6]
mov byte [ebx + 6], al
movzx eax, byte [edx + 7]
add edx, 8
mov byte [ebx + 7], al
add ebx, 8
add ecx, 0xfffffff8
jne 0x1243e90
test edi, edi
je 0x1243d80
mov eax, ebx
mov ecx, dword [esp + 4]
sub eax, ecx
cmp eax, 0x1ff
jl 0x1243d80
mov ebx, edi
mov dword [esp + 0x1c], esi
mov esi, edx
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x124430d
mov ebx, eax
mov dword [esp + 4], eax
mov edx, esi
mov esi, dword [esp + 0x1c]
jmp 0x1243d80
mov ecx, eax
cmp eax, 8
jae 0x1243e90
jmp 0x1243ed1
sub esi, edx
je 0x1243d55
mov ecx, dword [esp + 4]
sub ecx, ebx
add ecx, 0x200
mov eax, esi
cmp esi, ecx
jl 0x1243f4c
mov eax, ecx
mov edx, esi
test edi, edi
je 0x1243f54
mov edx, eax
test edx, edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], edx
je 0x1243fd0
mov eax, ebx
and eax, 3
je 0x1243fd0
mov esi, ebx
mov edi, ebx
not edi
and edi, 3
lea ebx, [edx - 1]
cmp edi, ebx
jb 0x1243f79
mov edi, ebx
lea eax, [edi + 1]
push eax
push 0x30
push esi
call fcn.0124d8d0
add esp, 0xc
lea ecx, [edi + esi]
inc ecx
sub ebx, edi
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
cmp ebx, 4
jge 0x1243fd9
test ebx, ebx
je 0x124401b
push ebx
push 0x30
mov esi, ecx
push ecx
call fcn.0124d8d0
mov edx, dword [esp + 0x14]
add esp, 0xc
add esi, ebx
mov ebx, esi
mov esi, dword [esp + 0xc]
test edi, edi
jne 0x1244025
jmp 0x1243f30
mov ecx, ebx
mov ebx, edx
cmp ebx, 4
jl 0x1243f9e
mov eax, ebx
cmp ebx, 7
jl 0x1243fe5
mov eax, 7
neg eax
lea edi, [ebx + eax]
add edi, 3
and edi, 0xfffffffc
lea eax, [edi + 4]
push eax
push 0x30
mov esi, ecx
push ecx
call fcn.0124d8d0
add esp, 0xc
sub ebx, edi
add ebx, 0xfffffffc
lea ecx, [edi + esi]
add ecx, 4
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
test ebx, ebx
jne 0x1243fa2
mov ebx, ecx
test edi, edi
je 0x1243f30
mov eax, ebx
mov ecx, dword [esp + 4]
sub eax, ecx
cmp eax, 0x1ff
jl 0x1243f30
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x124430d
mov ebx, eax
mov dword [esp + 4], eax
mov edx, dword [esp + 8]
jmp 0x1243f30
movzx ecx, byte [esp + 0x30]
test cl, cl
je 0x1244181
movsx eax, cl
mov edx, dword [esp + 4]
sub edx, ebx
add edx, 0x200
cmp edx, eax
jl 0x1244082
mov edx, eax
test edi, edi
je 0x1244088
mov eax, edx
sub cl, al
mov byte [esp + 0x30], cl
test eax, eax
je 0x124412b
mov ecx, eax
and ecx, 3
je 0x1244170
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x10]
lea edi, [esi + 1]
mov dword [esp + 0x10], edi
mov edi, ebx
movzx ebx, byte [esi]
mov byte [edi + edx], bl
mov ebx, edi
inc edx
cmp ecx, edx
jne 0x12440b0
add ebx, edx
mov ecx, eax
sub ecx, edx
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x50]
cmp eax, 4
jb 0x124412b
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx], al
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx + 1], al
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx + 2], al
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
movzx eax, byte [eax]
mov byte [ebx + 3], al
add ebx, 4
add ecx, 0xfffffffc
jne 0x12440e0
test edi, edi
je 0x1244060
mov eax, ebx
mov edx, dword [esp + 4]
sub eax, edx
lea ecx, [eax + 1]
cmp ecx, 0x200
jl 0x1244060
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edx
call edi
add esp, 0xc
test eax, eax
je 0x124430d
mov ebx, eax
mov dword [esp + 4], eax
jmp 0x1244060
mov ecx, eax
cmp eax, 4
jae 0x12440e0
jmp 0x124412b
mov esi, dword [esp + 0x50]
test byte [esp], 1
je 0x1244194
cmp dword [esp + 0x48], 0
jle 0x1244194
mov eax, dword [esp + 0x48]
jne 0x12441ab
inc esi
jmp 0x1241c48
mov ecx, dword [esp]
mov eax, dword [esp + 0x48]
sub eax, ecx
je 0x1244194
mov dword [esp + 0x48], eax
mov edx, eax
test edi, edi
je 0x12441cc
mov eax, dword [esp + 4]
sub eax, ebx
add eax, 0x200
mov ecx, dword [esp + 0x48]
mov edx, ecx
cmp ecx, eax
jl 0x12441cc
mov edx, eax
test edx, edx
mov dword [esp], edx
je 0x1244230
mov eax, ebx
and eax, 3
je 0x1244230
mov esi, ebx
mov edi, ebx
not edi
and edi, 3
lea ebx, [edx - 1]
cmp edi, ebx
jb 0x12441ec
mov edi, ebx
lea eax, [edi + 1]
push eax
push 0x20
push esi
call fcn.0124d8d0
add esp, 0xc
lea ecx, [edi + esi]
inc ecx
sub ebx, edi
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x50]
cmp ebx, 4
jge 0x1244239
test ebx, ebx
je 0x1244277
push ebx
push 0x20
mov esi, ecx
push ecx
call fcn.0124d8d0
add esp, 0xc
add esi, ebx
mov ebx, esi
mov esi, dword [esp + 0x50]
jmp 0x1244279
mov ecx, ebx
mov ebx, edx
cmp ebx, 4
jl 0x124420d
mov eax, ebx
cmp ebx, 7
jl 0x1244245
mov eax, 7
neg eax
lea edi, [ebx + eax]
add edi, 3
and edi, 0xfffffffc
lea eax, [edi + 4]
push eax
push 0x20
mov esi, ecx
push ecx
call fcn.0124d8d0
add esp, 0xc
lea ecx, [edi + esi]
add ecx, 4
sub ebx, edi
add ebx, 0xfffffffc
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x50]
test ebx, ebx
jne 0x1244211
mov ebx, ecx
mov ecx, dword [esp]
test edi, edi
je 0x12441a3
mov eax, ebx
mov edx, dword [esp + 4]
sub eax, edx
lea ecx, [eax + 1]
cmp ecx, 0x200
jl 0x12441a0
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push edx
call edi
add esp, 0xc
test eax, eax
je 0x124430d
mov ebx, eax
mov dword [esp + 4], eax
jmp 0x12441a0
test edi, edi
je 0x1244313
mov eax, ebx
mov ecx, dword [esp + 4]
sub eax, ecx
test eax, eax
jle 0x124431a
add dword [esp + 0x4c], eax
push eax
push dword [ebp + 0xc]
push ecx
call edi
add esp, 0xc
mov ebx, eax
mov ecx, eax
jmp 0x124431a
xor ebx, ebx
xor ecx, ecx
jmp 0x124431a
mov byte [ebx], 0
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x4c]
add eax, ebx
sub eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret