Function at 0x11000
Capabilities:
Encode data using xor
Parse credit card information

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 + 0x24], eax
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x2c], 0
mov edi, esi
jmp 0x1103d
mov esi, eax
mov eax, ebx
movzx eax, byte [ebx]
mov edi, esi
mov byte [esi], al
inc esi
inc ebx
mov dword [esp + 0x20], edi
mov eax, ebx
test al, 3
je 0x11050
mov eax, ebx
movzx eax, byte [ebx]
jmp 0x11070
mov eax, ebx
mov eax, dword [ebx]
mov edx, eax
not edx
and edx, 0x80808080
mov ecx, eax
xor ecx, 0x25252525
add ecx, 0xfefefeff
test ecx, edx
je 0x110ae
cmp al, 0x25
je 0x11104
test al, al
mov edi, dword [esp + 0x20]
je 0x136cb
cmp dword [ebp + 8], 0
je 0x11039
mov ecx, esi
sub ecx, edi
cmp ecx, 0x1ff
jl 0x11039
add dword [esp + 0x2c], ecx
push ecx
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x11030
jmp 0x136ee
mov ecx, dword [esp + 0x20]
sub ecx, esi
add ecx, 0x200
jmp 0x110ea
mov dword [esi], eax
add esi, 4
mov eax, dword [ebx + 4]
add ebx, 4
mov edx, eax
not edx
and edx, 0x80808080
mov edi, eax
xor edi, 0x25252525
add edi, 0xfefefeff
add ecx, 0xfffffffc
test edi, edx
jne 0x11070
lea edi, [eax - 0x1010101]
test edx, edi
jne 0x11078
cmp dword [ebp + 8], 0
je 0x110c0
cmp ecx, 4
jge 0x110c0
jmp 0x11070
mov ecx, ebx
add ecx, 2
xor ebx, ebx
jmp 0x11115
or ebx, 1
mov eax, ebx
inc ecx
mov ebx, eax
movzx eax, byte [ecx - 1]
lea edx, [eax - 0x20]
cmp edx, 0x3f
ja case.0x11121.33
jmp dword [edx*4 + 0x5c564]
or ebx, 4
jmp 0x11110
or ebx, 8
jmp 0x11110
or ebx, 0x400
jmp 0x11110
or ebx, 0x40
jmp 0x11110
test ebx, 0x100
jne 0x11154
or ebx, 0x100
jmp 0x11110
or ebx, 2
jmp 0x11110
mov edx, ebx
xor edx, 0xfffff7ff
mov eax, ebx
or eax, 0x800
test eax, edx
je 0x11112
mov edx, ebx
and edx, 0xffffefff
mov eax, ebx
xor eax, 0x1000
add eax, ebx
sub eax, edx
jmp 0x11112
mov edx, ebx
xor edx, 0x10
add edx, ebx
mov eax, ebx
and eax, 0xffffffef
sub edx, eax
movzx eax, byte [ecx]
mov ebx, edx
jmp 0x11192
dec ecx
mov edi, dword [esp + 0x20]
mov dword [esp + 8], ebx
cmp al, 0x2a
jne 0x111b2
mov eax, dword [esp + 0x24]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x24], eax
movzx eax, byte [ecx + 1]
inc ecx
jmp 0x111db
mov edx, eax
add dl, 0xd0
xor ebx, ebx
cmp dl, 9
ja 0x111db
xor ebx, ebx
movzx eax, al
lea edx, [ebx + ebx*4]
lea ebx, [eax + edx*2]
add ebx, 0xffffffd0
movzx eax, byte [ecx + 1]
inc ecx
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x111c0
mov dword [esp + 4], 0xffffffff
cmp al, 0x2e
mov dword [esp + 0x3c], ebx
jne 0x11267
movzx eax, byte [ecx + 1]
cmp al, 0x2a
jne 0x1120d
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov dword [esp + 4], edx
add eax, 4
mov dword [esp + 0x24], eax
movzx eax, byte [ecx + 2]
add ecx, 2
jmp 0x11267
inc ecx
mov edx, eax
add dl, 0xd0
mov dword [esp + 4], 0
cmp dl, 9
ja 0x11267
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
and edx, 0xfffffff5
mov edi, ebx
and edi, 0xa
or ebx, 0xa
imul ebx, edi
xor edi, 0xa
imul edi, edx
add ebx, edi
movzx eax, al
add ebx, eax
add ebx, 0xffffffd0
movzx eax, byte [ecx + 1]
inc ecx
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x11230
mov dword [esp + 4], ebx
mov edi, dword [esp + 0x20]
movzx eax, al
add eax, 0xffffffb7
cmp eax, 0x31
ja case.0x11272.74
jmp dword [eax*4 + 0x5c664]
inc ecx
movzx edx, byte [ecx]
mov dword [esp + 0x4c], ecx
movzx eax, dl
add eax, 0xffffffbf
cmp eax, 0x37
ja case.0x11290.67
jmp dword [eax*4 + 0x5c72c]
mov ecx, dword [esp + 8]
mov eax, ecx
xor eax, 0xffffffdf
or ecx, 0x20
test ecx, eax
je 0x116db
mov ecx, dword [esp + 0x24]
lea ebx, [ecx + 8]
mov edi, dword [ecx]
mov dword [esp + 0x10], edi
mov eax, dword [ecx + 4]
cmp dl, 0x75
mov edi, dword [esp + 0x2c]
je 0x11cf6
test eax, eax
jns 0x11cf6
neg dword [esp + 0x10]
mov ecx, 0
sbb ecx, eax
mov edx, dword [esp + 8]
or edx, 0x80
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ebx
jmp 0x11e27
movzx edx, byte [ecx + 1]
cmp dl, 0x6c
jne 0x116c5
mov edx, dword [esp + 8]
mov eax, edx
not eax
or eax, 0xffffffdf
add edx, eax
add edx, 0x21
mov dword [esp + 8], edx
add ecx, 2
jmp case.0x11272.74
lea eax, [ecx + 1]
mov dword [esp + 0x4c], eax
movzx edx, byte [ecx + 1]
cmp edx, 0x33
je 0x11ce3
cmp edx, 0x36
jne 0x11281
cmp byte [ecx + 2], 0x34
jne 0x11ced
or dword [esp + 8], 0x20
add ecx, 3
jmp case.0x11272.74
cmp byte [ecx + 1], 0x68
je 0x116cb
inc ecx
or dword [esp + 8], 0x200
jmp case.0x11272.74
mov eax, str.0123456789ABCDEFXP
cmp dl, 0x45
je 0x11376
mov eax, str.0123456789abcdefxp
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
fld qword [eax]
mov eax, 6
mov ecx, dword [esp + 4]
cmp ecx, 0xffffffff
mov edi, dword [esp + 0x2c]
je 0x11394
mov eax, ecx
mov dword [esp + 0x10], eax
or eax, 0x80000000
sub esp, 0x18
mov dword [esp + 0x10], eax
fstp qword [esp + 8]
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x34]
call fcn.00013710
add esp, 0x18
test eax, eax
je 0x113d3
or dword [esp + 8], 0x80
add dword [esp + 0x24], 8
mov ecx, edi
mov byte [esp + 0x34], 0
mov byte [esp + 0x44], 0
mov al, 0x2d
cmp byte [esp + 8], 0
js 0x113ff
mov al, 0x20
test byte [esp + 8], 4
jne 0x113ff
mov al, 0x2b
test byte [esp + 8], 2
je 0x11408
mov byte [esp + 0x44], 1
mov byte [esp + 0x45], al
mov edx, dword [esp + 0x40]
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x14]
cmp edx, 0x7000
mov dword [esp], eax
jne 0x1158c
mov dword [esp + 0x2c], ecx
jmp 0x129b5
mov ecx, str.0123456789ABCDEFXP
cmp dl, 0x41
je 0x1143f
mov ecx, str.0123456789abcdefxp
mov dword [esp + 0x54], edx
mov dword [esp + 0x30], 6
mov eax, dword [esp + 4]
cmp eax, 0xffffffff
je 0x11458
mov dword [esp + 0x30], eax
mov dword [esp], ecx
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
test edx, edx
js 0x1171a
mov ecx, dword [esp + 8]
jmp 0x11724
mov dword [esp + 0x28], str.0123456789ABCDEFXP
mov eax, edx
cmp dl, 0x42
je 0x1148a
mov dword [esp + 0x28], str.0123456789abcdefxp
mov byte [esp + 0x44], 0
test byte [esp + 8], 8
mov edx, dword [esp + 0x2c]
je 0x114af
cmp al, 0x42
setne al
mov word [esp + 0x44], 0x3002
shl al, 5
or al, 0x42
mov byte [esp + 0x46], al
mov dword [esp + 0x1c], 0x180
mov ecx, 1
jmp 0x11973
mov edi, str.0123456789ABCDEFXP
cmp dl, 0x47
je 0x114d0
mov edi, str.0123456789abcdefxp
mov eax, dword [esp + 0x24]
fld qword [eax]
mov ecx, dword [esp + 4]
cmp ecx, 1
mov eax, ecx
adc eax, 0
mov ebx, 6
cmp ecx, 0xffffffff
je 0x114ee
mov ebx, eax
lea eax, [ebx - 1]
and eax, 0x7fffffff
lea ecx, [ebx*2 - 1]
sub ecx, eax
add ecx, 0x7fffffff
sub esp, 0x18
fstp qword [esp + 8]
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x34]
call fcn.00013710
add esp, 0x18
test eax, eax
je 0x1153b
or dword [esp + 8], 0x80
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jb 0x11545
mov eax, ebx
mov dword [esp + 0x18], edi
mov ecx, eax
mov dword [esp + 0x10], eax
cmp eax, 2
jb 0x118e8
mov edx, dword [esp + 0x14]
mov ecx, ebx
nop
nop
mov edi, dword [esp + 0x10]
cmp byte [edx + edi - 1], 0x30
jne 0x1216d
lea eax, [ecx - 1]
dec edi
mov dword [esp + 0x10], edi
cmp edi, 2
jb 0x1216f
cmp ecx, 1
mov ecx, eax
jne 0x11560
jmp 0x1216f
mov dword [esp + 0x30], edx
movzx ecx, byte [eax]
mov byte [esp + 0xa4], cl
lea eax, [esp + 0xa5]
mov edi, dword [esp + 0x10]
test edi, edi
je 0x115cc
movzx ecx, byte [section..data]
mov edx, ecx
or dl, 2
not cl
or cl, 0xfd
and cl, dl
not cl
mov byte [esp + 0xa5], cl
lea eax, [esp + 0xa6]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
lea edx, [eax - 1]
cmp edx, edi
jbe 0x115e2
lea eax, [edi + 1]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], eax
cmp eax, 2
jb 0x116a2
mov ebx, edi
cmp edi, edx
jb 0x115f7
mov ebx, edx
lea edi, [ebx - 1]
mov edx, 1
cmp edi, 7
jb 0x11679
mov dword [esp + 0x28], ebx
mov edi, ebx
and edi, 0xfffffff8
xor edx, edx
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebx + edx + 1]
mov byte [ecx + edx], al
movzx eax, byte [ebx + edx + 2]
mov byte [ecx + edx + 1], al
movzx eax, byte [ebx + edx + 3]
mov byte [ecx + edx + 2], al
movzx eax, byte [ebx + edx + 4]
mov byte [ecx + edx + 3], al
movzx eax, byte [ebx + edx + 5]
mov byte [ecx + edx + 4], al
movzx eax, byte [ebx + edx + 6]
mov byte [ecx + edx + 5], al
movzx eax, byte [ebx + edx + 7]
mov byte [ecx + edx + 6], al
movzx eax, byte [ebx + edx + 8]
mov byte [ecx + edx + 7], al
add edx, 8
cmp edi, edx
jne 0x11620
add ecx, edx
mov dword [esp + 4], ecx
inc edx
mov ebx, dword [esp + 0x28]
and ebx, 7
je 0x116a2
mov edi, dword [esp]
add edi, edx
xor edx, edx
mov ecx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [edi + edx]
mov byte [ecx + edx], al
inc edx
cmp ebx, edx
jne 0x11690
add ecx, edx
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xe]
mov byte [esp + 0x35], al
mov ecx, dword [esp + 0x30]
mov eax, ecx
dec eax
js 0x11d3d
mov byte [esp + 0x36], 0x2b
jmp 0x11d49
inc ecx
jmp 0x1127d
add ecx, 2
or dword [esp + 8], 0x200
jmp case.0x11272.74
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0
cmp dl, 0x75
mov edi, dword [esp + 0x2c]
je 0x11e1f
test ecx, ecx
jns 0x11e1f
neg ecx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 8]
or edx, 0x80
jmp 0x11e27
mov ecx, dword [esp + 8]
or ecx, 0x80
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov al, 0x2d
test cl, cl
mov dword [esp + 8], ecx
js 0x1174a
mov al, 0x20
test cl, 4
jne 0x1174a
mov al, 0x2b
test cl, 2
jne 0x1174a
xor ebx, ebx
jmp 0x11750
mov byte [esp + 0x45], al
mov bl, 1
mov edi, edx
and edi, 0xfffff
mov eax, edx
shr eax, 0x14
and eax, 0x7ff
xor eax, 0x3ff
shr edx, 0x13
and edx, 0x800
sub edx, eax
cmp edx, 0xfffffc01
mov ecx, dword [esp + 4]
jne 0x11791
xor edx, edx
mov eax, ecx
or eax, edi
je 0x1178b
mov edx, 0xfffffc02
mov dword [esp + 0x40], edx
jmp 0x117a5
mov eax, 0xffffffff
add ecx, eax
mov eax, 0xfffff
adc edi, eax
add ecx, 1
adc edi, 0
shld edi, ecx, 8
shl ecx, 8
mov eax, dword [esp + 0x30]
cmp eax, 0xe
mov dword [esp + 0x50], edx
mov dword [esp + 4], ecx
jg 0x11804
mov dword [esp + 0x18], ebx
mov ebx, eax
and ebx, 4
mov ecx, eax
or ecx, 4
imul ecx, ebx
xor ebx, 4
and eax, 0xfb
imul eax, ebx
add ecx, eax
xor eax, eax
mov edx, 0x8000000
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x117f0
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 4], ecx
adc edi, edx
mov edx, dword [esp + 0x50]
movzx eax, bl
lea ecx, [esp + 0x44]
mov word [eax + ecx + 1], 0x7830
or bl, 2
mov byte [esp + 0x44], bl
mov eax, edi
shr eax, 0x1c
mov ecx, dword [esp]
movzx eax, byte [ecx + eax]
mov byte [esp + 0xa4], al
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x11d1f
movzx eax, byte [section..data]
xor al, 0xfd
mov byte [esp + 0xa5], al
lea eax, [esp + 0xa6]
mov dword [esp + 0x14], eax
mov ebx, ecx
cmp ecx, 0xd
jb 0x1185f
mov ebx, 0xd
mov eax, ecx
sub eax, ebx
mov dword [esp + 0x10], eax
jg 0x11871
mov dword [esp + 0x10], 0
mov eax, ebx
and eax, 3
je 0x122c2
mov dword [esp + 0x18], ebx
xor edx, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
nop
nop
nop
nop
nop
nop
mov ebx, edi
shr ebx, 0x18
and ebx, 0xf
mov ecx, dword [esp]
movzx ebx, byte [ecx + ebx]
shld edi, eax, 4
mov byte [esp + edx + 0xa6], bl
shl eax, 4
inc edx
cmp dword [esp + 0xc], edx
jne 0x11890
mov dword [esp + 4], eax
lea eax, [esp + 0xa6]
add eax, edx
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
sub ebx, edx
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x30]
cmp ecx, 4
jae 0x122d6
lea ecx, [esp + 0xa6]
jmp 0x1235c
mov eax, ebx
jmp 0x1216f
and dword [esp + 8], 0xffffffef
mov dword [esp + 4], 8
mov dword [esp + 0x28], str.0123456789ABCDEFXP
mov eax, edx
cmp dl, 0x58
mov edx, dword [esp + 0x2c]
je 0x11917
mov dword [esp + 0x28], str.0123456789abcdefxp
mov dword [esp + 0x1c], 0x440
mov byte [esp + 0x44], 0
mov ecx, 4
test byte [esp + 8], 8
je 0x11973
cmp al, 0x58
setne al
mov word [esp + 0x44], 0x3002
shl al, 5
or al, 0x58
mov byte [esp + 0x46], al
jmp 0x11973
mov byte [esp + 0x44], 0
test byte [esp + 8], 8
je 0x1195a
mov word [esp + 0x44], 0x3001
mov dword [esp + 0x1c], 0x330
mov dword [esp + 0x28], str.0123456789ABCDEFXP
mov ecx, 3
mov edx, dword [esp + 0x2c]
test byte [esp + 8], 0x20
mov dword [esp + 0x2c], edx
jne 0x1198f
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x24], eax
xor ebx, ebx
jmp 0x1199f
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
lea edx, [eax + 8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], 0
mov byte [esp + 0x34], 0
mov edx, edi
or edx, ebx
jne 0x119c2
mov byte [esp + 0x44], 0
cmp dword [esp + 4], 0
je 0x11d03
mov edx, 0xffffffff
shl edx, cl
not edx
and edx, edi
mov eax, dword [esp + 0x1c]
mov cl, ah
shrd edi, ebx, cl
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx + edx]
mov byte [esp + 0x263], cl
mov cl, ah
shr ebx, cl
test ah, 0x20
jne 0x119f4
mov ecx, edi
mov edi, ebx
jmp 0x119f8
mov ecx, ebx
xor edi, edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], ecx
or ecx, edi
jne 0x11a1f
mov ecx, 1
cmp dword [esp + 4], 2
jge 0x11a1f
lea eax, [esp + 0x263]
mov dword [esp], eax
jmp 0x11b0c
lea eax, [esp + 0x263]
mov dword [esp], eax
lea ebx, [esp + 0x264]
mov dword [esp + 0x10], edi
test byte [esp + 8], 0x40
mov eax, dword [esp + 0xc]
jne 0x11a50
mov ecx, dword [esp]
mov dword [esp + 0x30], ecx
jmp 0x11a99
mov edx, ebx
inc eax
mov dword [esp + 0x1c], eax
mov ecx, eax
and ecx, 0xf
mov ebx, eax
shr eax, 4
mov edi, eax
xor edi, 0xfffffff0
or eax, 0xf
and eax, edi
cmp ecx, eax
jne 0x11a90
and ebx, 0xfffffff0
mov dword [esp + 0x1c], ebx
movzx eax, byte [0x5f001]
xor al, 0xe0
mov byte [edx - 2], al
add edx, 0xfffffffe
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x1c]
jmp 0x11a99
mov eax, dword [esp]
mov dword [esp + 0x30], eax
mov eax, ebx
mov ebx, 0xffffffff
mov cl, ah
shl ebx, cl
not ebx
mov edi, dword [esp + 0x18]
and ebx, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov cl, ah
mov edx, dword [esp + 0x10]
shrd edi, edx, cl
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + ebx]
mov ebx, dword [esp + 0x30]
mov byte [ebx - 1], al
mov eax, dword [esp + 0xc]
mov cl, ah
shr edx, cl
test ah, 0x20
jne 0x11ae0
mov ecx, edi
mov edi, edx
jmp 0x11ae4
mov ecx, edx
xor edi, edi
lea eax, [ebx - 1]
mov dword [esp], eax
mov dword [esp + 0x18], ecx
mov eax, ecx
or eax, edi
jne 0x11a30
lea ecx, [esp + 0x264]
sub ecx, dword [esp]
cmp ecx, dword [esp + 4]
jl 0x11a30
mov edi, dword [esp + 0xc]
shl edi, 0x14
and edi, 0xf000000
add edi, ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], 0
jmp 0x12164
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov edx, str.null
test eax, eax
je 0x11b41
mov edx, eax
mov eax, dword [esp + 4]
mov edi, eax
test eax, eax
jns 0x11b50
mov edi, 0xffffffff
test dl, 3
mov dword [esp], edx
je 0x127e9
lea eax, [edi + edx]
cmp dword [esp + 4], 0
je 0x12990
cmp byte [edx], 0
je 0x1298a
mov dword [esp + 0x18], eax
lea ebx, [edx + 1]
mov eax, edi
not eax
mov ecx, edi
lea edi, [eax + edi*2]
test bl, 3
je 0x127eb
test edi, edi
mov eax, dword [esp + 0x18]
je 0x12990
cmp byte [ebx], 0
je 0x1298e
lea ebx, [edx + 2]
add edi, edi
sub edi, ecx
test bl, 3
je 0x127eb
test edi, edi
je 0x12990
cmp byte [ebx], 0
je 0x1298e
lea ebx, [edx + 3]
mov eax, edi
not eax
lea ecx, [eax + edi*2]
test bl, 3
je 0x136bb
test ecx, ecx
je 0x136c2
cmp byte [ebx], 0
je 0x1298e
mov eax, ecx
lea ebx, [edx + 4]
add eax, ecx
sub eax, edi
mov edi, eax
test bl, 3
je 0x127eb
test edi, edi
je 0x11c02
mov dword [esp + 0x18], ebx
mov edx, dword [esp]
mov eax, dword [esp + 0x18]
jmp 0x12990
mov byte [esp + 0x263], dl
mov dword [esp + 0x1c], 1
mov byte [esp + 0x44], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x263]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
xor ecx, ecx
mov dword [esp + 0x3c], 0
jmp 0x12b4f
mov ecx, dword [esp + 0x24]
movzx eax, byte [ecx]
add ecx, 4
mov dword [esp + 0x24], ecx
mov byte [esp + 0x263], al
mov dword [esp + 0x1c], 1
mov byte [esp + 0x44], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x263]
jmp 0x12518
mov eax, dword [esp + 0x24]
fld qword [eax]
add eax, 8
mov dword [esp + 0x24], eax
test dword [esp + 8], 0x100
mov edx, dword [esp + 0x2c]
jne 0x12072
jmp 0x12265
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
mov ecx, dword [esp + 0x2c]
sub ecx, edi
add ecx, esi
mov dword [eax], ecx
add edx, 4
mov dword [esp + 0x24], edx
jmp 0x13591
cmp byte [ecx + 2], 0x32
je 0x122ba
mov ecx, dword [esp + 0x4c]
jmp case.0x11272.74
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
jmp 0x11e23
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x264]
jmp 0x12518
lea eax, [esp + 0xa5]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov ecx, eax
mov dword [esp + 0x28], eax
jmp 0x1235c
mov byte [esp + 0x36], 0x2d
mov eax, 1
sub eax, ecx
mov dword [esp], eax
xor ecx, ecx
cmp eax, 0x64
setge cl
mov dword [esp + 0x30], ecx
mov ecx, 0x66666667
imul ecx
mov ecx, edx
mov eax, edx
shr eax, 0x1f
sar ecx, 2
add ecx, eax
lea eax, [ecx + ecx]
lea eax, [eax + eax*4]
mov ebx, dword [esp]
sub ebx, eax
mov eax, ecx
mov edx, 0x66666667
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 2
add edx, eax
mov eax, dword [esp + 0x30]
lea edi, [eax + 4]
mov dword [esp + 0x18], edi
add bl, 0x30
add edx, edx
lea edx, [edx + edx*4]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x18]
mov byte [esp + 0x34], dl
mov byte [esp + eax + 0x38], bl
mov edi, dword [esp]
mov edx, ecx
sub edx, dword [esp + 0x28]
add dl, 0x30
mov byte [esp + eax + 0x37], dl
cmp edi, 0x64
jl 0x11df0
mov eax, edi
mov ecx, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
mov eax, ecx
mov edx, 0x1999999a
mul edx
add edx, edx
lea eax, [edx + edx*4]
mov edx, ecx
sub edx, eax
or dl, 0x30
lea eax, [esp + 0x34]
mov edi, dword [esp + 0x18]
mov byte [edi + eax - 2], dl
mov edi, dword [esp + 0xc]
mov eax, edi
not eax
and eax, 1
and edi, 0xfffffffe
mov edx, dword [esp + 0x10]
sub edx, edi
add edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0xc], 0x3000001
mov edx, dword [esp + 4]
jmp 0x12b3d
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 8]
test edx, 0x100
mov dword [esp + 8], edx
jne 0x1202f
mov dword [esp + 0x54], esi
mov eax, edx
xor eax, 0xffffffbf
or edx, 0x40
and edx, eax
movzx ebx, byte [0x5f001]
mov eax, ebx
xor al, 0xe0
mov byte [esp + 0x30], al
mov eax, ebx
add al, bl
and al, 0xc0
sub bl, al
add bl, 0xe0
mov esi, 0x200
mov dword [esp], 0
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], edx
mov byte [esp + 0x50], bl
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0x10]
cmp ebx, 0x5f5e100
mov eax, ecx
sbb eax, 0
jb 0x11ec0
push 0
push 0x5f5e100
push ecx
push ebx
call fcn.0001ca90
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xc]
imul ecx, eax, 0x5f5e100
sub ebx, ecx
mov dword [esp + 0x10], eax
jmp 0x11ed0
mov dword [esp + 0x28], 0
mov dword [esp + 0x10], 0
lea eax, [esp + 0x5c]
lea edi, [eax + esi]
test edx, edx
je 0x11f60
test ebx, ebx
je 0x11fc0
mov eax, dword [esp]
jmp 0x11f26
mov dword [esp + 0x18], edi
mov edi, eax
mov eax, ebx
mov ecx, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx]
lea eax, [eax + eax*4]
sub ebx, eax
or bl, 0x30
mov byte [esp + esi + 0x63], bl
dec esi
mov ebx, edx
mov edx, dword [esp + 0xc]
mov eax, edi
mov edi, dword [esp + 0x18]
test ebx, ebx
je 0x11fc3
test edx, edx
je 0x11ef0
cmp eax, 3
je 0x11f40
mov dword [esp + 0x18], edi
inc eax
jmp 0x11ef4
movzx eax, byte [esp + 0x30]
mov byte [esp + esi + 0x63], al
dec esi
dec edi
xor eax, eax
test ebx, ebx
jne 0x11f26
jmp 0x11fc3
mov dword [esp + 0x18], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
mov ecx, 0x51eb851f
mul ecx
shr edx, 5
imul ecx, edx, 0x64
mov eax, ebx
sub eax, ecx
mov ecx, eax
and ecx, 2
mov edi, eax
or eax, 2
imul eax, ecx
xor ecx, 2
and edi, 0x7d
imul edi, ecx
movzx eax, word [edi + eax + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esp + esi + 0x62], ax
add esi, 0xfffffffe
cmp ebx, 0x64
mov ebx, edx
jae 0x11f70
mov edx, dword [esp + 0xc]
mov eax, dword [esp]
mov edi, dword [esp + 0x18]
jmp 0x11fc3
mov eax, dword [esp]
mov dword [esp], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
or eax, ecx
je 0x120bd
lea eax, [esp + esi]
add eax, 0x64
cmp eax, edi
movzx ebx, byte [esp + 0x50]
jne 0x1200a
jmp 0x11e80
mov eax, dword [esp]
mov dword [esp], eax
mov byte [esp + esi + 0x63], 0x30
dec esi
lea eax, [esp + esi]
add eax, 0x64
cmp eax, edi
je 0x11e80
test edx, edx
je 0x11ff0
mov eax, dword [esp]
cmp eax, 3
je 0x12020
inc eax
jmp 0x11ff3
mov byte [esp + esi + 0x63], bl
dec esi
dec edi
mov dword [esp], 0
jmp 0x11ffc
mov eax, 1
mov ecx, dword [esp + 4]
cmp ecx, 0xffffffff
je 0x1203f
mov eax, ecx
mov dword [esp + 4], 0
cmp dword [esp + 0x10], 0x400
mov ecx, dword [esp + 0x28]
sbb ecx, 0
mov edx, edi
jb 0x1205e
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
fild qword [esp + 0x58]
xor eax, eax
mov ecx, dword [esp + 8]
test ecx, 0x800
sete al
fld qword [eax*8 + 0x5c550]
cmp ecx, 0x3ffffff
ja 0x12133
fld st(0)
fchs
fxch st(1)
fucom st(2)
fnstsw ax
sahf
jbe 0x121e0
fxch st(2)
fucom st(1)
fnstsw ax
sahf
fxch st(2)
jbe 0x121e0
fstp st(0)
fstp st(0)
jmp 0x12265
mov ecx, esi
cmp esi, 0x200
setne al
cmp byte [esp + esi + 0x64], 0x30
sete cl
mov byte [esp + 0x34], 0
mov byte [esp + 0x44], 0
mov dl, 0x2d
cmp byte [esp + 8], 0
js 0x120f5
mov dl, 0x20
test byte [esp + 8], 4
jne 0x120f5
mov dl, 0x2b
test byte [esp + 8], 2
je 0x120fe
mov byte [esp + 0x44], 1
mov byte [esp + 0x45], dl
and al, cl
movzx eax, al
add esi, eax
lea eax, [esp + esi]
add eax, 0x64
lea edx, [esi - 0x200]
neg edx
mov dword [esp + 0x1c], edx
cmp esi, 0x200
jne 0x1213a
mov byte [eax - 1], 0x30
dec eax
mov dword [esp + 0x1c], 1
mov ecx, 1
jmp 0x1213c
fstp st(0)
jmp 0x12265
mov ecx, edx
mov esi, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 0x10], 0
cmp dword [esp + 4], 0
jg 0x1215a
mov dword [esp + 4], 0
add ecx, 0x3000000
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 4]
jmp 0x12b4f
mov eax, ecx
add dword [esp + 0x24], 8
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
cmp ecx, 0xfffffffd
jl 0x121ac
cmp ecx, ebx
jg 0x121ac
test ecx, ecx
jle 0x124b8
sub dword [esp + 0x10], ecx
mov edx, dword [esp + 0x2c]
jg 0x124ce
mov dword [esp + 0x10], 0
jmp 0x124ce
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jle 0x121c2
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2c]
jmp 0x113da
mov dword [esp + 0x10], 0
sub eax, 1
mov ecx, dword [esp + 0x2c]
jb 0x113da
mov dword [esp + 0x10], eax
jmp 0x113da
mov eax, dword [esp + 8]
lea ecx, [eax + 0x1000000]
fdiv st(2), st(0)
cmp eax, 0x2ffffff
ja 0x1225d
fucom st(2)
fnstsw ax
sahf
jbe 0x12205
fxch st(2)
fucom st(1)
fnstsw ax
sahf
fxch st(2)
ja 0x1225d
mov eax, dword [esp + 8]
lea ecx, [eax + 0x2000000]
fdiv st(2), st(0)
cmp eax, 0x1ffffff
ja 0x1225d
fucom st(2)
fnstsw ax
sahf
jbe 0x1222a
fxch st(2)
fucom st(1)
fnstsw ax
sahf
fxch st(2)
ja 0x1225d
mov eax, dword [esp + 8]
lea ecx, [eax + 0x3000000]
fdiv st(2), st(0)
cmp eax, 0xffffff
ja 0x1225d
fucom st(2)
fnstsw ax
sahf
jbe 0x136aa
fxch st(2)
fucom st(1)
fstp st(1)
fnstsw ax
sahf
fldz
fxch st(1)
fxch st(2)
jbe 0x136aa
fstp st(0)
fstp st(0)
mov dword [esp + 8], ecx
mov edi, edx
mov ecx, 6
mov eax, dword [esp + 4]
cmp eax, 0xffffffff
je 0x12277
mov ecx, eax
sub esp, 0x18
fstp qword [esp + 8]
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x34]
call fcn.00013710
add esp, 0x18
test eax, eax
je 0x124cc
or dword [esp + 8], 0x80
jmp 0x124cc
add ecx, 3
jmp case.0x11272.74
lea eax, [esp + 0xa6]
mov dword [esp + 0x28], eax
cmp ecx, 4
jb 0x118dc
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x18], ebx
mov ebx, edi
shr ebx, 0x18
and ebx, 0xf
mov eax, dword [esp]
movzx ebx, byte [eax + ebx]
mov byte [edx], bl
mov ebx, edi
shr ebx, 0x14
and ebx, 0xf
movzx ebx, byte [eax + ebx]
mov byte [edx + 1], bl
mov ebx, edi
shr ebx, 0x10
and ebx, 0xf
movzx ebx, byte [eax + ebx]
mov byte [edx + 2], bl
mov ebx, edi
mov edi, dword [esp + 0xc]
shld edi, ecx, 0x10
shl ecx, 0x10
shr ebx, 0xc
and ebx, 0xf
movzx ebx, byte [eax + ebx]
mov byte [edx + 3], bl
mov ebx, dword [esp + 0x18]
add edx, 4
mov dword [esp + 0xc], edi
add ebx, 0xfffffffc
jne 0x122f0
mov dword [esp + 0x28], edx
lea ecx, [esp + 0xa6]
mov edx, dword [esp + 0x50]
cmp byte [esp + 0x54], 0x41
setne al
shl al, 5
or al, 0x50
mov byte [esp + 0x35], al
test edx, edx
js 0x12378
mov byte [esp + 0x36], 0x2b
jmp 0x1237f
mov byte [esp + 0x36], 0x2d
neg edx
cmp edx, 0x3e7
mov dword [esp + 0x18], ecx
ja 0x1239d
cmp edx, 0x63
jbe 0x1249d
mov dword [esp], 5
jmp 0x123a4
mov dword [esp], 6
mov dword [esp + 0xc], 0
mov eax, edx
mov ecx, 0xcccccccd
mov edi, edx
mul ecx
shr edx, 2
and edx, 0xfffffffe
lea ebx, [edx + edx*4]
mov eax, edi
mov ecx, 0x66666667
imul ecx
mov ecx, edx
mov eax, edx
shr eax, 0x1f
sar ecx, 2
add ecx, eax
mov eax, ecx
mov edx, 0x66666667
imul edx
mov eax, edi
sub eax, ebx
mov ebx, dword [esp]
mov byte [esp + 0x34], bl
or al, 0x30
mov byte [esp + ebx + 0x34], al
mov eax, edx
shr eax, 0x1f
sar edx, 2
add edx, eax
add edx, edx
lea edx, [edx + edx*4]
sub ecx, edx
add cl, 0x30
mov byte [esp + ebx + 0x33], cl
cmp byte [esp + 0xc], 0
jne 0x12864
mov eax, edi
mov ecx, 0x51eb851f
imul ecx
mov ecx, edx
mov eax, edx
shr eax, 0x1f
sar ecx, 5
add ecx, eax
mov eax, ecx
mov edx, 0x66666667
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 2
add edx, eax
add edx, edx
lea eax, [edx + edx*4]
sub ecx, eax
add cl, 0x30
lea eax, [esp + 0x34]
mov edx, dword [esp]
mov byte [edx + eax - 2], cl
cmp edi, 0x3e8
jb 0x12864
mov eax, edi
mov ecx, 0x10624dd3
imul ecx
mov ecx, edx
mov eax, edx
shr eax, 0x1f
sar ecx, 6
add ecx, eax
mov eax, ecx
mov edx, 0x66666667
imul edx
mov eax, edx
shr eax, 0x1f
shr edx, 2
add edx, eax
add edx, edx
lea eax, [edx + edx*4]
sub ecx, eax
add cl, 0x30
lea eax, [esp + 0x34]
mov edx, dword [esp]
mov byte [edx + eax - 3], cl
jmp 0x12864
cmp edx, 9
jbe 0x12858
mov dword [esp], 4
mov al, 1
mov dword [esp + 0xc], eax
jmp 0x123ac
mov edx, dword [esp + 0x10]
cmp eax, edx
mov edi, dword [esp + 0x2c]
jl 0x124c6
mov eax, edx
sub eax, ecx
mov dword [esp + 0x10], eax
mov edx, edi
mov byte [esp + 0x34], 0
mov byte [esp + 0x44], 0
mov al, 0x2d
cmp byte [esp + 8], 0
js 0x124f3
mov al, 0x20
test byte [esp + 8], 4
jne 0x124f3
mov al, 0x2b
test byte [esp + 8], 2
je 0x124fc
mov byte [esp + 0x44], 1
mov byte [esp + 0x45], al
mov ecx, dword [esp + 0x40]
cmp ecx, 0x7000
mov dword [esp + 0x2c], edx
jne 0x12520
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x14]
mov dword [esp], eax
jmp 0x129b5
test ecx, ecx
jle 0x12558
mov edx, dword [esp + 8]
mov eax, edx
xor eax, 0xffffffbf
or edx, 0x40
and edx, eax
mov dword [esp + 0x18], edx
je 0x1262e
mov edi, 0x258
sub edi, ecx
mov eax, edi
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
lea eax, [edx + edx*2]
sub edi, eax
jmp 0x12630
mov byte [esp + 0xa4], 0x30
lea eax, [esp + 0xa5]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1258e
movzx eax, byte [section..data]
xor al, 0xfd
mov byte [esp + 0xa5], al
lea eax, [esp + 0xa6]
mov dword [esp + 4], eax
neg ecx
mov ebx, edx
cmp edx, ecx
jl 0x12598
mov ebx, ecx
test ebx, ebx
mov ecx, dword [esp + 4]
mov dword [esp], ebx
je 0x125d0
mov eax, ecx
and eax, 3
je 0x125d0
mov edi, ecx
not edi
and edi, 3
dec ebx
cmp edi, ebx
jb 0x125b8
mov edi, ebx
lea eax, [edi + 1]
push eax
push 0x30
push ecx
call fcn.0001cb80
mov ecx, dword [esp + 0x10]
add esp, 0xc
sub ebx, edi
add ecx, edi
inc ecx
cmp ebx, 4
jl 0x1260d
mov eax, ebx
cmp ebx, 7
jl 0x125e1
mov eax, 7
neg eax
lea edi, [ebx + eax]
add edi, 3
and edi, 0xfffffffc
lea eax, [edi + 4]
push eax
push 0x30
push ecx
mov dword [esp + 0x10], ecx
call fcn.0001cb80
mov ecx, dword [esp + 0x10]
add esp, 0xc
add ecx, edi
add ecx, 4
sub ebx, edi
add ebx, 0xfffffffc
test ebx, ebx
je 0x12893
push ebx
push 0x30
push ecx
mov edi, ecx
call fcn.0001cb80
add esp, 0xc
add edi, ebx
mov dword [esp + 4], edi
jmp 0x12897
xor edi, edi
mov dword [esp], edi
cmp ecx, dword [esp + 0x1c]
jae 0x126ae
xor eax, eax
lea ecx, [esp + 0xa4]
mov dword [esp + 0xc], ecx
jmp 0x12672
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + eax]
lea edi, [edx + 1]
mov dword [esp + 0xc], edi
mov byte [edx], cl
inc eax
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jae 0x1271a
cmp dword [esp + 0x18], 0
je 0x12650
mov ecx, dword [esp]
inc ecx
mov dword [esp], ecx
cmp ecx, 4
jne 0x12650
xor ecx, ecx
cmp dword [esp + 0x18], 0
setne cl
mov dword [esp], ecx
movzx ecx, byte [0x5f001]
mov edx, ecx
add dl, cl
and dl, 0xc0
sub cl, dl
add cl, 0xe0
mov edx, dword [esp + 0xc]
mov byte [edx], cl
inc edx
jmp 0x12654
xor eax, eax
mov edi, 0xffffffff
mov ebx, 1
lea edx, [esp + 0xa4]
jmp 0x126eb
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + ebx - 1]
mov byte [edx], cl
mov ecx, edx
inc edx
inc eax
dec edi
inc ebx
cmp eax, dword [esp + 0x1c]
jae 0x127b8
cmp dword [esp + 0x18], 0
je 0x126d0
mov ecx, dword [esp]
inc ecx
mov dword [esp], ecx
cmp ecx, 4
jne 0x126d0
xor ecx, ecx
cmp dword [esp + 0x18], 0
setne cl
mov dword [esp], ecx
movzx ecx, byte [0x5f001]
xor cl, 0xe0
mov byte [edx], cl
inc edx
jmp 0x126d0
mov edi, dword [esp + 0xc]
mov dword [esp + 4], edi
cmp dword [esp + 0x10], 0
je 0x12741
movzx ecx, byte [section..data]
xor cl, 0xfd
mov byte [edx + 1], cl
add edx, 2
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1c]
mov edi, edx
sub edi, ecx
cmp edi, dword [esp + 0x10]
jbe 0x12759
mov edx, dword [esp + 0x10]
add edx, ecx
mov dword [esp + 0x1c], edx
cmp eax, edx
jae 0x1278c
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + eax]
mov byte [edi], cl
inc edi
inc eax
mov edx, dword [esp + 0x1c]
cmp eax, edx
jb 0x12770
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0xa4]
mov edi, dword [esp + 0xc]
sub edi, eax
add edi, 0x3000000
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x10]
sub eax, edx
add eax, ecx
mov dword [esp + 0x10], eax
mov edx, dword [esp + 4]
jmp 0x12ab8
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], ecx
sub ecx, eax
jbe 0x12a86
cmp dword [esp + 0x18], 0
je 0x129c4
mov eax, dword [esp]
mov ebx, ecx
test ebx, ebx
jne 0x12a67
jmp 0x12a86
mov ebx, edx
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], ebx
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edi
cmp edi, 4
jb 0x1282c
mov edx, dword [eax]
mov edi, eax
mov eax, edx
not eax
add edx, 0xfefefeff
and edx, eax
mov ebx, edi
lea eax, [edi + 4]
lea edi, [ecx - 4]
test edx, 0x80808080
mov edx, dword [esp]
je 0x12800
jmp 0x12836
test ecx, ecx
mov ebx, eax
je 0x1298e
mov edi, dword [esp + 0xc]
add edi, dword [esp + 0x18]
xor edx, edx
mov eax, ebx
cmp byte [eax + edx], 0
je 0x12910
inc edx
cmp ecx, edx
jne 0x12842
mov eax, edi
jmp 0x12912
mov byte [esp + 0x34], 3
or dl, 0x30
mov byte [esp + 0x37], dl
add dword [esp + 0x24], 8
mov ecx, dword [esp + 0x28]
mov eax, ecx
sub eax, dword [esp + 0x18]
mov dword [esp + 0x40], eax
lea eax, [esp + 0xa4]
sub ecx, eax
mov dword [esp + 0x1c], ecx
xor ecx, ecx
mov dword [esp + 0xc], 0x3000001
jmp 0x12b4c
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp]
lea ecx, [ebx + eax]
cmp ecx, dword [esp + 0x10]
jle 0x128b2
mov ebx, dword [esp + 0x10]
sub ebx, dword [esp]
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x1290a
mov edi, dword [esp + 0x10]
mov eax, edi
cmp edi, ecx
jl 0x128c2
mov eax, ecx
mov ecx, ebx
and ecx, 3
je 0x12917
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], ebx
xor edi, edi
mov eax, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0x14]
lea edx, [ebx + 1]
mov dword [esp + 0x14], edx
movzx edx, byte [ebx]
mov byte [eax + edi], dl
inc edi
cmp ecx, edi
jne 0x128e0
add eax, edi
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x18]
mov ecx, ebx
sub ecx, edi
mov eax, dword [esp + 0xc]
jmp 0x12919
mov eax, dword [esp + 4]
jmp 0x12972
add eax, edx
mov edx, dword [esp]
jmp 0x12990
mov ecx, ebx
mov edx, dword [esp]
sub edx, eax
cmp edx, 0xfffffffc
mov eax, dword [esp + 4]
ja 0x12972
mov edx, dword [esp + 0x14]
lea edi, [edx + 1]
mov dword [esp + 0x14], edi
movzx edx, byte [edx]
mov byte [eax], dl
mov edx, dword [esp + 0x14]
lea edi, [edx + 1]
mov dword [esp + 0x14], edi
movzx edx, byte [edx]
mov byte [eax + 1], dl
mov edx, dword [esp + 0x14]
lea edi, [edx + 1]
mov dword [esp + 0x14], edi
movzx edx, byte [edx]
mov byte [eax + 2], dl
mov edx, dword [esp + 0x14]
lea edi, [edx + 1]
mov dword [esp + 0x14], edi
movzx edx, byte [edx]
mov byte [eax + 3], dl
add eax, 4
add ecx, 0xfffffffc
jne 0x12927
mov ecx, dword [esp]
add ecx, ebx
sub dword [esp + 0x10], ecx
mov dword [esp + 0xc], 0x3000001
mov edx, eax
jmp 0x12ab8
mov eax, edx
jmp 0x12990
mov eax, ebx
add dword [esp + 0x24], 4
sub eax, edx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x44], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
xor ecx, ecx
jmp 0x12b4f
cmp dword [esp + 0xc], eax
je 0x12a30
mov eax, edx
and eax, 3
je 0x12a30
mov ecx, 2
sub ecx, dword [esp + 4]
and ecx, 3
mov eax, dword [esp + 0xc]
sub eax, ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x30]
jb 0x129f5
mov ecx, eax
mov dword [esp + 0x30], ecx
lea eax, [ecx + 1]
push eax
push 0x30
push edx
call fcn.0001cb80
add esp, 0xc
add edi, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
cmp edi, eax
jb 0x12a16
mov edi, eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x30]
lea edx, [eax + ecx]
add edx, 2
mov eax, dword [esp + 0xc]
sub eax, edi
sub eax, ebx
mov ebx, eax
jmp 0x12a32
mov ebx, ecx
cmp ebx, 4
jb 0x12a55
mov edi, ebx
and edi, 0xfffffffc
push edi
push 0x30
push edx
mov dword [esp + 0x10], edx
call fcn.0001cb80
mov edx, dword [esp + 0x10]
add esp, 0xc
add edx, edi
and ebx, 3
mov eax, dword [esp]
test ebx, ebx
jne 0x12a67
jmp 0x12a86
mov byte [edx], 0x30
dec ebx
inc edx
test ebx, ebx
je 0x12a86
cmp dword [esp + 0x18], 0
je 0x12a5e
inc eax
cmp eax, 4
jne 0x12a5e
movzx eax, byte [0x5f001]
xor al, 0xe0
mov byte [edx], al
xor eax, eax
inc edx
test ebx, ebx
jne 0x12a67
mov ecx, edx
lea eax, [esp + 0xa4]
sub ecx, eax
add ecx, 0x3000000
mov dword [esp + 0xc], ecx
cmp dword [esp + 0x10], 0
je 0x12ab0
movzx eax, byte [section..data]
xor al, 0xfd
mov byte [edx], al
inc edx
jmp 0x12ab8
mov dword [esp + 0x10], 0
mov edi, dword [esp + 8]
test edi, 0x100
je 0x12b3d
mov eax, edi
and eax, 0x400
sete byte [esp + 0x34]
mov byte [esp + 0x35], 0x20
cmp edi, 0x1000000
jb 0x12b3d
mov dword [esp + 4], edx
mov ecx, edi
shr ecx, 0x18
mov ebx, eax
shr ebx, 0xa
mov edx, 2
sub edx, ebx
cmp eax, 1
mov eax, 0
adc al, 1
test edi, 0x800
jne 0x12b11
movzx ecx, byte [ecx + str._kMGT]
mov byte [esp + edx + 0x34], cl
jmp 0x12b35
movzx ecx, byte [ecx + str._KMGT]
mov byte [esp + edx + 0x34], cl
mov ecx, edi
and ecx, 0x1800
cmp ecx, 0x800
jne 0x12b35
movzx eax, al
mov byte [esp + eax + 0x35], 0x69
inc eax
mov edx, dword [esp + 4]
mov byte [esp + 0x34], al
lea eax, [esp + 0xa4]
sub edx, eax
mov dword [esp + 0x1c], edx
xor ecx, ecx
mov dword [esp], eax
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jg 0x12b59
mov ecx, ebx
movsx eax, byte [esp + 0x44]
movsx edi, byte [esp + 0x34]
mov edx, dword [esp + 0x10]
mov dword [esp + 4], ecx
add edx, ecx
add edx, eax
add edx, edi
mov edi, dword [esp + 0x3c]
cmp edi, edx
jg 0x12b7b
mov edi, edx
sub edi, edx
mov dword [esp + 0x3c], edi
sub dword [esp + 4], ebx
mov ecx, dword [esp + 8]
test cl, 1
mov edi, dword [esp + 0x20]
jne 0x12bbb
test cl, 0x10
jne 0x12ba1
mov dword [esp + 8], 0
jmp 0x12bbb
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 4]
cmp ecx, edx
jg 0x12baf
mov ecx, edx
mov dword [esp + 4], ecx
mov dword [esp + 0x3c], 0
mov edx, dword [esp]
mov ecx, dword [esp + 0x3c]
add ecx, dword [esp + 4]
je 0x1306c
test byte [esp + 8], 1
jne 0x12ce5
cmp dword [esp + 0x3c], 0
jle 0x12ce5
mov ecx, dword [esp + 0x3c]
jmp 0x12bfe
mov ecx, dword [esp + 0x3c]
sub ecx, ebx
test ecx, ecx
jle 0x12cdc
mov eax, edi
sub eax, esi
add eax, 0x200
mov ebx, ecx
cmp ecx, eax
jl 0x12c0f
mov ebx, eax
cmp dword [ebp + 8], 0
jne 0x12c17
mov ebx, ecx
mov dword [esp + 0x3c], ecx
test ebx, ebx
mov dword [esp + 0x20], edi
je 0x12c60
mov eax, esi
and eax, 3
je 0x12c60
mov eax, esi
not eax
and eax, 3
mov dword [esp + 0x18], ebx
lea edi, [ebx - 1]
cmp eax, edi
jb 0x12c3e
mov eax, edi
mov ebx, eax
inc eax
push eax
push 0x20
push esi
call fcn.0001cb80
add esp, 0xc
sub edi, ebx
add esi, ebx
inc esi
mov ebx, dword [esp + 0x18]
cmp edi, 4
jl 0x12c8d
jmp 0x12c70
mov edi, ebx
cmp edi, 4
jl 0x12c8d
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], 0x20202020
add esi, 4
mov eax, edi
not eax
and eax, 4
and edi, 0x7ffffffb
sub edi, eax
cmp edi, 3
jg 0x12c70
test edi, edi
je 0x12c9f
push edi
push 0x20
push esi
call fcn.0001cb80
add esp, 0xc
add esi, edi
mov edi, dword [esp + 0x20]
cmp dword [ebp + 8], 0
je 0x12bf0
mov eax, esi
sub eax, edi
cmp eax, 0x1ff
jl 0x12bf0
add dword [esp + 0x2c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x136ee
mov esi, eax
mov edi, eax
jmp 0x12bf0
mov dword [esp + 0x3c], ecx
movzx eax, byte [esp + 0x44]
lea ecx, [esp + 0x45]
mov dword [esp + 0x14], ecx
jmp 0x12cf5
movzx eax, byte [esp + 0x44]
test al, al
je 0x12e1d
movsx edx, al
mov ebx, edi
sub ebx, esi
add ebx, 0x200
cmp ebx, edx
jl 0x12d10
mov ebx, edx
cmp dword [ebp + 8], 0
jne 0x12d18
mov ebx, edx
sub al, bl
mov byte [esp + 0x44], al
test ebx, ebx
je 0x12dbb
mov eax, ebx
and eax, 3
je 0x12e10
mov dword [esp + 0x20], edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x14]
lea ecx, [edi + 1]
mov dword [esp + 0x14], ecx
movzx ecx, byte [edi]
mov byte [esi + edx], cl
inc edx
cmp eax, edx
jne 0x12d40
add esi, edx
mov eax, ebx
sub eax, edx
mov edi, dword [esp + 0x20]
cmp ebx, 4
jb 0x12dbb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
movzx ecx, byte [ecx]
mov byte [esi], cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
movzx ecx, byte [ecx]
mov byte [esi + 1], cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
movzx ecx, byte [ecx]
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
movzx ecx, byte [ecx]
mov byte [esi + 3], cl
add esi, 4
add eax, 0xfffffffc
jne 0x12d70
cmp dword [ebp + 8], 0
je 0x12cf0
mov eax, esi
sub eax, edi
lea ecx, [eax + 1]
cmp ecx, 0x200
jl 0x12cf0
mov ecx, eax
mov edx, dword [esp + 0x2c]
and ecx, edx
xor edx, eax
lea edx, [edx + ecx*2]
mov dword [esp + 0x2c], edx
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x136ee
mov esi, eax
mov edi, eax
jmp 0x12cf0
mov eax, ebx
cmp ebx, 4
jae 0x12d70
jmp 0x12dbb
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0xc]
mov ecx, eax
shr ecx, 0x18
mov dword [esp + 0x18], ecx
xor edi, edi
test byte [esp + 8], 0x40
je 0x12e4d
and eax, 0xffffff
add eax, dword [esp + 4]
mov edi, dword [esp + 0x18]
lea ecx, [edi + 1]
xor edx, edx
div ecx
sub edi, edx
cmp dword [esp + 4], 0
jle 0x1369a
mov ebx, dword [esp + 4]
mov edx, dword [esp]
jmp 0x12e80
mov ebx, dword [esp + 4]
sub ebx, dword [esp + 0xc]
test ebx, ebx
jle 0x13063
mov eax, dword [esp + 0x20]
sub eax, esi
add eax, 0x200
mov ecx, ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 4], ebx
cmp ebx, eax
jl 0x12f00
mov dword [esp + 0xc], eax
cmp dword [ebp + 8], 0
je 0x12f06
test byte [esp + 8], 0x40
jne 0x12f15
cmp dword [esp + 0xc], 0
je 0x12f20
mov eax, esi
and eax, 3
je 0x12f20
mov ecx, esi
not ecx
and ecx, 3
mov eax, dword [esp + 0xc]
lea ebx, [eax - 1]
cmp ecx, ebx
jb 0x12ecc
mov ecx, ebx
mov dword [esp + 0x30], ecx
lea eax, [ecx + 1]
push eax
push 0x30
push esi
call fcn.0001cb80
add esp, 0xc
mov eax, dword [esp + 0x30]
add esi, eax
inc esi
sub ebx, eax
mov edx, dword [esp]
cmp ebx, 4
jge 0x12f29
jmp 0x12f63
cmp dword [ebp + 8], 0
jne 0x12ea3
mov eax, dword [esp + 4]
mov dword [esp + 0xc], eax
test byte [esp + 8], 0x40
je 0x12eaa
mov ebx, dword [esp + 0xc]
jmp 0x12f63
mov ebx, dword [esp + 0xc]
cmp ebx, 4
jl 0x12f63
mov eax, ebx
cmp ebx, 7
jl 0x12f35
mov eax, 7
neg eax
add eax, ebx
add eax, 3
and eax, 0xfffffffc
mov dword [esp + 0x30], eax
add eax, 4
push eax
push 0x30
push esi
call fcn.0001cb80
add esp, 0xc
mov eax, dword [esp + 0x30]
add esi, eax
add esi, 4
sub ebx, eax
add ebx, 0xfffffffc
mov edx, dword [esp]
test ebx, ebx
je 0x12fb0
test bl, 1
jne 0x12f80
mov eax, ebx
cmp ebx, 1
jne 0x1300e
jmp 0x12fb0
mov al, 0x30
test byte [esp + 8], 0x40
je 0x12f9d
cmp edi, dword [esp + 0x18]
jne 0x12f9c
movzx eax, byte [0x5f001]
xor al, 0xe0
xor edi, edi
jmp 0x12f9d
inc edi
mov byte [esi], al
inc esi
lea eax, [ebx - 1]
cmp ebx, 1
jne 0x1300e
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + 8], 0
je 0x12e70
mov eax, esi
mov ecx, dword [esp + 0x20]
sub eax, ecx
cmp eax, 0x1ff
jl 0x12e70
add dword [esp + 0x2c], eax
push eax
push dword [ebp + 0xc]
push ecx
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x136ee
mov esi, eax
mov dword [esp + 0x20], eax
mov edx, dword [esp]
jmp 0x12e70
mov edx, dword [esp]
mov byte [esi + 1], cl
add esi, 2
add eax, 0xfffffffe
je 0x12fb0
mov cl, 0x30
test byte [esp + 8], 0x40
je 0x13031
cmp edi, dword [esp + 0x18]
jne 0x13030
movzx edx, byte [0x5f001]
xor dl, 0xe0
xor edi, edi
jmp 0x13033
inc edi
mov dl, 0x30
mov byte [esi], dl
test byte [esp + 8], 0x40
je 0x13000
cmp edi, dword [esp + 0x18]
mov edx, dword [esp]
jne 0x13060
movzx ecx, byte [0x5f001]
xor cl, 0xe0
xor edi, edi
jmp 0x13003
inc edi
jmp 0x13003
movzx eax, byte [esp + 0x44]
mov edi, dword [esp + 0x20]
lea ecx, [esp + 0x45]
mov dword [esp + 0x14], ecx
jmp 0x1308c
mov esi, eax
mov edi, eax
mov edx, dword [esp]
movzx eax, byte [esp + 0x44]
test al, al
je 0x1318d
movsx edx, al
mov ebx, edi
sub ebx, esi
add ebx, 0x200
cmp ebx, edx
jl 0x130a7
mov ebx, edx
cmp dword [ebp + 8], 0
jne 0x130af
mov ebx, edx
sub al, bl
mov byte [esp + 0x44], al
test ebx, ebx
je 0x1314b
mov eax, ebx
and eax, 3
je 0x13180
mov dword [esp + 0x20], edi
xor edx, edx
nop
nop
mov edi, dword [esp + 0x14]
lea ecx, [edi + 1]
mov dword [esp + 0x14], ecx
movzx ecx, byte [edi]
mov byte [esi + edx], cl
inc edx
cmp eax, edx
jne 0x130d0
add esi, edx
mov eax, ebx
sub eax, edx
mov edi, dword [esp + 0x20]
cmp ebx, 4
jb 0x1314b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
movzx ecx, byte [ecx]
mov byte [esi], cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
movzx ecx, byte [ecx]
mov byte [esi + 1], cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
movzx ecx, byte [ecx]
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x14], edx
movzx ecx, byte [ecx]
mov byte [esi + 3], cl
add esi, 4
add eax, 0xfffffffc
jne 0x13100
cmp dword [ebp + 8], 0
je 0x13084
mov eax, esi
sub eax, edi
cmp eax, 0x1ff
jl 0x13084
add dword [esp + 0x2c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x13080
jmp 0x136ee
mov eax, ebx
cmp ebx, 4
jae 0x13100
jmp 0x1314b
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x133e5
mov ecx, dword [esp + 0x10]
test ecx, ecx
mov edi, dword [esp + 0x20]
jne 0x132ed
lea eax, [esp + 0x35]
mov dword [esp + 0x14], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + 0x34]
test cl, cl
je 0x1357d
movsx edx, cl
mov eax, edi
sub eax, esi
add eax, 0x200
cmp eax, edx
jl 0x131df
mov eax, edx
cmp dword [ebp + 8], 0
jne 0x131e7
mov eax, edx
sub cl, al
mov byte [esp + 0x34], cl
test eax, eax
je 0x1328b
mov ecx, eax
and ecx, 3
je 0x132d0
mov dword [esp + 0x20], edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x14]
lea ebx, [edi + 1]
mov dword [esp + 0x14], ebx
movzx ebx, byte [edi]
mov byte [esi + edx], bl
inc edx
cmp ecx, edx
jne 0x13210
add esi, edx
mov ecx, eax
sub ecx, edx
mov edi, dword [esp + 0x20]
cmp eax, 4
jb 0x1328b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
lea edx, [eax + 1]
mov dword [esp + 0x14], edx
movzx eax, byte [eax]
mov byte [esi], al
mov eax, dword [esp + 0x14]
lea edx, [eax + 1]
mov dword [esp + 0x14], edx
movzx eax, byte [eax]
mov byte [esi + 1], al
mov eax, dword [esp + 0x14]
lea edx, [eax + 1]
mov dword [esp + 0x14], edx
movzx eax, byte [eax]
mov byte [esi + 2], al
mov eax, dword [esp + 0x14]
lea edx, [eax + 1]
mov dword [esp + 0x14], edx
movzx eax, byte [eax]
mov byte [esi + 3], al
add esi, 4
add ecx, 0xfffffffc
jne 0x13240
cmp dword [ebp + 8], 0
je 0x131c0
mov eax, esi
sub eax, edi
lea ecx, [eax + 1]
cmp ecx, 0x200
jl 0x131c0
add dword [esp + 0x2c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x136ee
mov esi, eax
mov edi, eax
jmp 0x131c0
mov ecx, eax
cmp eax, 4
jae 0x13240
jmp 0x1328b
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp]
je 0x131ad
mov eax, edi
sub eax, esi
add eax, 0x200
mov edx, ecx
cmp ecx, eax
jl 0x132fe
mov edx, eax
cmp dword [ebp + 8], 0
jne 0x13306
mov edx, ecx
test edx, edx
mov dword [esp + 0x10], ecx
mov dword [esp], edx
je 0x13350
mov eax, esi
and eax, 3
je 0x13350
mov dword [esp + 0x20], edi
mov edi, esi
not edi
and edi, 3
lea ebx, [edx - 1]
cmp edi, ebx
jb 0x1332c
mov edi, ebx
lea eax, [edi + 1]
push eax
push 0x30
push esi
call fcn.0001cb80
add esp, 0xc
add esi, edi
inc esi
sub ebx, edi
mov edi, dword [esp + 0x20]
cmp ebx, 4
jl 0x1337c
jmp 0x13360
mov ebx, edx
cmp ebx, 4
jl 0x1337c
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], 0x30303030
mov eax, ebx
and eax, 0xfffffffb
add eax, eax
xor ebx, 4
sub eax, ebx
add esi, 4
mov ebx, eax
cmp eax, 3
jg 0x13360
test ebx, ebx
je 0x1338e
push ebx
push 0x30
push esi
call fcn.0001cb80
add esp, 0xc
add esi, ebx
cmp dword [ebp + 8], 0
je 0x132e0
mov eax, esi
sub eax, edi
cmp eax, 0x1ff
jl 0x132e0
add dword [esp + 0x2c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x136ee
mov esi, eax
mov edi, eax
jmp 0x132e0
mov esi, eax
mov dword [esp + 0x20], eax
mov edx, edi
mov edi, ebx
mov ecx, dword [esp]
sub ecx, edi
je 0x1319d
mov eax, dword [esp + 0x20]
sub eax, esi
add eax, 0x200
mov edi, ecx
cmp ecx, eax
jl 0x133f8
mov edi, eax
cmp dword [ebp + 8], 0
jne 0x13400
mov edi, ecx
cmp edi, 4
mov dword [esp], ecx
jl 0x13460
lea ebx, [edi - 4]
mov eax, ebx
shr eax, 2
inc eax
and eax, 7
je 0x13464
mov dword [esp + 0x18], ebx
shl eax, 2
mov ebx, edx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebx + edx]
mov dword [esi + edx], ecx
add edx, 4
cmp eax, edx
jne 0x13430
add esi, edx
mov ecx, edi
sub ecx, edx
add ebx, edx
mov eax, ecx
mov edx, ebx
mov ebx, dword [esp + 0x18]
cmp ebx, 0x1c
jae 0x13470
jmp 0x134b1
mov eax, edi
jmp 0x134b1
mov ecx, edi
cmp ebx, 0x1c
jb 0x134b1
nop
nop
nop
nop
nop
mov eax, dword [edx]
mov dword [esi], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
mov eax, dword [edx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x1c], eax
lea eax, [ecx - 0x20]
add edx, 0x20
add esi, 0x20
add ecx, 0xffffffdc
cmp ecx, 0xfffffff8
mov ecx, eax
jb 0x13470
test eax, eax
je 0x13531
mov ecx, eax
and ecx, 7
je 0x13570
mov dword [esp + 0x18], edi
mov edi, edx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edi + edx]
mov byte [esi + edx], bl
inc edx
cmp ecx, edx
jne 0x134d0
add esi, edx
mov ecx, eax
sub ecx, edx
add edi, edx
mov edx, edi
mov edi, dword [esp + 0x18]
cmp eax, 8
jb 0x13531
nop
movzx eax, byte [edx]
mov byte [esi], al
movzx eax, byte [edx + 1]
mov byte [esi + 1], al
movzx eax, byte [edx + 2]
mov byte [esi + 2], al
movzx eax, byte [edx + 3]
mov byte [esi + 3], al
movzx eax, byte [edx + 4]
mov byte [esi + 4], al
movzx eax, byte [edx + 5]
mov byte [esi + 5], al
movzx eax, byte [edx + 6]
mov byte [esi + 6], al
movzx eax, byte [edx + 7]
add edx, 8
mov byte [esi + 7], al
add esi, 8
add ecx, 0xfffffff8
jne 0x134f0
cmp dword [ebp + 8], 0
je 0x133da
mov eax, esi
mov ecx, dword [esp + 0x20]
sub eax, ecx
cmp eax, 0x1ff
jl 0x133da
mov ebx, edi
mov edi, edx
add dword [esp + 0x2c], eax
push eax
push dword [ebp + 0xc]
push ecx
call dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x133d0
jmp 0x136ee
mov ecx, eax
cmp eax, 8
jae 0x134f0
jmp 0x13531
test byte [esp + 8], 1
je 0x13591
cmp dword [esp + 0x3c], 0
jle 0x13591
mov ecx, dword [esp + 0x3c]
jne 0x135a8
mov ebx, dword [esp + 0x4c]
inc ebx
jmp 0x1103d
mov ecx, dword [esp + 0x3c]
sub ecx, edx
je 0x13591
mov eax, edi
sub eax, esi
add eax, 0x200
mov edx, ecx
mov dword [esp + 0x3c], ecx
cmp ecx, eax
jl 0x135bd
mov edx, eax
cmp dword [ebp + 8], 0
jne 0x135c7
mov edx, dword [esp + 0x3c]
test edx, edx
mov dword [esp + 8], edx
mov dword [esp + 0x20], edi
je 0x13610
mov eax, esi
and eax, 3
je 0x13610
mov ebx, esi
not ebx
and ebx, 3
lea edi, [edx - 1]
cmp ebx, edi
jb 0x135ea
mov ebx, edi
lea eax, [ebx + 1]
push eax
push 0x20
push esi
call fcn.0001cb80
add esp, 0xc
add esi, ebx
inc esi
sub edi, ebx
cmp edi, 4
jge 0x13617
jmp 0x13647
mov edi, edx
cmp edi, 4
jl 0x13647
mov eax, edi
cmp edi, 7
jl 0x13623
mov eax, 7
neg eax
lea ebx, [edi + eax]
add ebx, 3
and ebx, 0xfffffffc
lea eax, [ebx + 4]
push eax
push 0x20
push esi
call fcn.0001cb80
add esp, 0xc
add esi, ebx
add esi, 4
sub edi, ebx
add edi, 0xfffffffc
test edi, edi
je 0x13659
push edi
push 0x20
push esi
call fcn.0001cb80
add esp, 0xc
add esi, edi
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp dword [ebp + 8], 0
je 0x135a0
mov eax, esi
sub eax, edi
cmp eax, 0x1ff
jl 0x135a0
add dword [esp + 0x2c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x136ee
mov esi, eax
mov edi, eax
mov edx, dword [esp + 8]
jmp 0x135a0
lea eax, [esp + 0x45]
mov dword [esp + 0x14], eax
mov edx, dword [esp]
jmp 0x13191
fstp st(1)
or dword [esp + 8], 0x4000000
fdivp st(1)
jmp 0x12265
mov edi, ecx
jmp 0x127eb
mov eax, dword [esp + 0x18]
jmp 0x12990
cmp dword [ebp + 8], 0
je 0x136f4
mov eax, esi
sub eax, edi
test eax, eax
jle 0x136f7
add dword [esp + 0x2c], eax
push eax
push dword [ebp + 0xc]
push edi
call dword [ebp + 8]
add esp, 0xc
mov esi, eax
mov edi, eax
jmp 0x136f7
xor esi, esi
xor edi, edi
jmp 0x136f7
mov byte [esi], 0
mov eax, edi
xor eax, esi
mov ecx, dword [esp + 0x2c]
sub ecx, eax
not edi
and edi, esi
lea eax, [ecx + edi*2]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret