Function at 0x649c40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x9ec7ac]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x180]
cmp eax, dword [ecx + 8]
jbe 0x64b979
sub esp, 0x200
lea edi, [esp + 0x190]
xor eax, eax
call fcn.004686e4
mov ecx, dword [esp + 0x218]
mov ebx, dword [esp + 0x214]
mov ebp, dword [esp + 0x21c]
xor edx, edx
mov esi, 6
jmp 0x649caf
mov edi, dword [esp + 0x6c]
lea edx, [edi + 1]
mov ecx, dword [esp + 0x218]
mov ebx, dword [esp + 0x214]
mov ebp, dword [esp + 0x21c]
mov esi, dword [esp + 0x68]
xor eax, eax
cmp edx, 3
jge 0x649dcb
mov edi, edx
shl edx, 1
cmp ecx, edx
jbe 0x64b971
inc edx
cmp ecx, edx
jbe 0x64b96a
movzx edx, word [ebx + edi*2]
lea eax, [edx + esi]
cmp ecx, eax
jle 0x649d6e
cmp ebp, eax
jb 0x64b961
cmp esi, eax
ja 0x64b958
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], eax
imul eax, edi, 0x1c
lea eax, [esp + eax + 0x190]
mov dword [esp], eax
sub ebp, esi
mov ecx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and esi, ebp
lea ebp, [ebx + esi]
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.0063da20
mov eax, dword [esp + 0x10]
test eax, eax
je 0x649c8d
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], ecx
add esp, 0x200
ret
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x23
lea ecx, [0x742cc9]
mov dword [eax], ecx
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], eax
add esp, 0x200
ret
cmp ecx, esi
jb 0x64b951
lea eax, [esp + 0x1e4]
mov dword [esp], eax
sub ebp, esi
sub ecx, esi
mov eax, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and esi, ebp
lea edx, [ebx + esi]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.0063da20
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x649e70
mov ebx, dword [esp + 0x210]
lea ebp, [ebx + 3]
sar ebp, 0x1f
shr ebp, 0x1e
mov esi, dword [esp + 0x204]
mov edx, dword [esi + 8]
lea ebp, [ebp + ebx + 3]
cmp edx, 0x100
jb 0x64b947
sar ebp, 2
mov dword [esp + 0x38], ebp
mov ecx, dword [esi]
mov dword [esp + 0x18c], ecx
lea edi, [esp + 0x80]
xor eax, eax
call fcn.004686c0
mov ecx, dword [esp + 0x208]
mov esi, dword [esp + 0x18c]
mov eax, ebx
mov edx, ecx
xor edi, edi
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, ebx
jmp 0x649ed1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], ecx
add esp, 0x200
ret
mov eax, dword [esp + 0x210]
mov edx, dword [esp + 0x208]
mov edi, ecx
mov ecx, ebx
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x38]
mov ebx, esi
mov esi, dword [esp + 0x18c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x180], ecx
cmp dword [esp + 0x19c], 4
jb 0x64b0b5
cmp dword [esp + 0x1b8], 4
jb 0x64b0b5
cmp dword [esp + 0x1d4], 4
jb 0x64b0b5
cmp dword [esp + 0x1f0], 4
jb 0x64b0b5
movzx edx, byte [esp + 0x1a8]
nop
cmp dl, 0x20
jb 0x649ff9
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
cmp eax, ecx
jb 0x64b940
lea ebx, [ecx - 4]
cmp ecx, ebx
jb 0x64b939
sub eax, ecx
add eax, 4
mov ecx, eax
neg eax
sar eax, 0x1f
and ebx, eax
cmp ecx, 4
jb 0x64b92d
mov eax, dword [esp + 0x190]
mov ebx, dword [eax + ebx]
mov dword [esp + 0x64], ebx
lea ecx, [edx - 0x40]
mov byte [esp + 0x1d], cl
mov eax, ebx
shl ebx, cl
neg ecx
mov byte [esp + 0x1c], cl
shr eax, cl
add edx, 0xffffffe0
mov ecx, edx
mov ebp, dword [esp + 0x64]
shl ebp, cl
movzx esi, byte [esp + 0x1d]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and esi, ebx
movzx ebx, byte [esp + 0x1c]
cmp bl, 0x20
sbb ebx, ebx
and eax, ebx
or esi, eax
or esi, dword [esp + 0x1a4]
cmp cl, 0x20
sbb ebx, ebx
and ebx, ebp
or dword [esp + 0x1a0], ebx
mov dword [esp + 0x1a4], esi
movzx ebx, byte [esp + 0x1a8]
add ebx, 0xffffffe0
mov byte [esp + 0x1a8], bl
add dword [esp + 0x19c], 0xfffffffc
mov eax, dword [esp + 0x210]
mov ecx, dword [esp + 0x180]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x18c]
movzx edx, byte [esp + 0x1c4]
nop
cmp dl, 0x20
jb 0x64a0d7
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x1b8]
cmp eax, ecx
jb 0x64b926
lea ebx, [ecx - 4]
cmp ecx, ebx
jb 0x64b91f
sub eax, ecx
add eax, 4
mov ecx, eax
neg eax
sar eax, 0x1f
and ebx, eax
cmp ecx, 4
jb 0x64b913
mov eax, dword [esp + 0x1ac]
mov ebx, dword [eax + ebx]
mov dword [esp + 0x64], ebx
lea ecx, [edx - 0x40]
mov byte [esp + 0x1d], cl
mov eax, ebx
shl ebx, cl
neg ecx
mov byte [esp + 0x1c], cl
shr eax, cl
add edx, 0xffffffe0
mov ecx, edx
mov ebp, dword [esp + 0x64]
shl ebp, cl
cmp cl, 0x20
sbb ecx, ecx
and ebp, ecx
movzx esi, byte [esp + 0x1d]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and esi, ebx
movzx ebx, byte [esp + 0x1c]
cmp bl, 0x20
sbb ebx, ebx
and ebx, eax
or esi, ebx
or esi, dword [esp + 0x1c0]
or dword [esp + 0x1bc], ebp
mov dword [esp + 0x1c0], esi
movzx ebx, byte [esp + 0x1c4]
add ebx, 0xffffffe0
mov byte [esp + 0x1c4], bl
add dword [esp + 0x1b8], 0xfffffffc
mov ecx, dword [esp + 0x180]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x18c]
xchg edi, eax
mov byte [esp + 0x1b], al
xchg edi, eax
xchg edi, eax
movzx edx, al
xchg edi, eax
lea eax, [edi + 0x40]
movzx eax, al
lea ecx, [edi + 1]
movzx ecx, cl
mov dword [esp + 0x6c], ecx
lea ebx, [edi + 0x41]
movzx ebx, bl
mov dword [esp + 0x68], ebx
lea ebp, [edi + 2]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov dword [esp + 0x60], ebp
lea ebp, [edi + 0x42]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov dword [esp + 0x5c], ebp
lea ebp, [edi + 3]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov dword [esp + 0x58], ebp
add edi, 0x43
xchg edi, eax
movzx eax, al
xchg edi, eax
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x1a4]
shr edi, 0x18
movzx edi, word [esi + edi*2]
mov word [esp + 0x22], di
shr di, 8
movzx ebp, word [esp + 0x22]
and ebp, 0x3f
lea ebx, [ebp - 0x20]
mov byte [esp + 0x1d], bl
neg ebx
xchg edi, eax
mov byte [esp + edx + 0x80], al
xchg edi, eax
movzx edi, byte [esp + 0x1a8]
mov edx, esi
movzx esi, word [esp + 0x22]
add esi, edi
nop
xchg esi, eax
mov byte [esp + 0x1a8], al
xchg esi, eax
mov esi, dword [esp + 0x1a0]
mov dword [esp + 0x64], esi
mov edi, dword [esp + 0x1a4]
mov ecx, ebx
shr esi, cl
mov dword [esp + 0x50], esi
mov ecx, ebp
shl edi, cl
movzx ecx, byte [esp + 0x1d]
mov esi, dword [esp + 0x64]
shl esi, cl
mov dword [esp + 0x4c], esi
mov ecx, ebp
mov esi, dword [esp + 0x64]
shl esi, cl
cmp cl, 0x20
sbb ebp, ebp
and esi, ebp
mov dword [esp + 0x1a0], esi
and edi, ebp
cmp bl, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x50]
and ebp, ebx
or edi, ebp
movzx ebx, byte [esp + 0x1d]
cmp bl, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x4c]
and ebp, ebx
or edi, ebp
mov dword [esp + 0x1a4], edi
mov ebx, dword [esp + 0x1c0]
shr ebx, 0x18
movzx ecx, word [edx + ebx*2]
mov ebx, ecx
shr bx, 8
mov ebp, ecx
and ebp, 0x3f
lea esi, [ebp - 0x20]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
mov byte [esp + eax + 0x80], bl
movzx ebx, byte [esp + 0x1c4]
add ebx, ecx
nop
mov byte [esp + 0x1c4], bl
mov ebx, dword [esp + 0x1bc]
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x1c0]
mov ecx, ebp
shl ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, esi
mov ebx, dword [esp + 0x64]
shr ebx, cl
mov dword [esp + 0x4c], ebx
mov ecx, edi
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov ecx, ebp
shl eax, cl
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and ebx, edi
cmp cl, 0x20
sbb ebp, ebp
mov edi, dword [esp + 0x50]
and edi, ebp
mov dword [esp + 0x1bc], edi
and eax, ebp
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb ebp, ebp
mov esi, dword [esp + 0x4c]
and esi, ebp
or eax, esi
or eax, ebx
mov dword [esp + 0x1c0], eax
mov ebx, dword [esp + 0x1a4]
shr ebx, 0x18
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
lea ecx, [ebp - 0x20]
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov eax, ebp
mov ebp, dword [esp + 0x6c]
mov byte [esp + ebp + 0x80], bl
movzx ebx, byte [esp + 0x1a8]
add ebx, esi
nop
mov byte [esp + 0x1a8], bl
mov ebx, dword [esp + 0x1a0]
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0x1a4]
mov esi, ecx
mov ecx, edi
shr ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, esi
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 0x4c], ebx
mov ecx, eax
shl ebp, cl
mov ebx, dword [esp + 0x64]
shl ebx, cl
cmp al, 0x20
sbb eax, eax
and ebx, eax
mov dword [esp + 0x1a0], ebx
and ebp, eax
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb ebx, ebx
mov edi, dword [esp + 0x50]
and edi, ebx
or ebp, edi
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb ebx, ebx
mov esi, dword [esp + 0x4c]
and esi, ebx
or ebp, esi
mov dword [esp + 0x1a4], ebp
mov ebx, dword [esp + 0x1c0]
shr ebx, 0x18
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
lea ecx, [ebp - 0x20]
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov eax, ebp
mov ebp, dword [esp + 0x68]
mov byte [esp + ebp + 0x80], bl
movzx ebx, byte [esp + 0x1c4]
add ebx, esi
nop
mov byte [esp + 0x1c4], bl
mov ebx, dword [esp + 0x1bc]
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0x1c0]
mov esi, ecx
mov ecx, edi
shr ebx, cl
mov ecx, eax
shl ebp, cl
mov dword [esp + 0x50], ebp
mov ecx, esi
mov ebp, dword [esp + 0x64]
shl ebp, cl
mov dword [esp + 0x4c], ebp
mov ecx, eax
mov ebp, dword [esp + 0x64]
shl ebp, cl
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and ebx, edi
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
mov edi, dword [esp + 0x4c]
and edi, esi
cmp al, 0x20
sbb esi, esi
and ebp, esi
mov dword [esp + 0x1bc], ebp
mov ebp, dword [esp + 0x50]
and ebp, esi
or ebp, ebx
or ebp, edi
mov dword [esp + 0x1c0], ebp
mov ebx, dword [esp + 0x1a4]
shr ebx, 0x18
movzx ecx, word [edx + ebx*2]
mov ebx, ecx
shr bx, 8
mov ebp, ecx
and ebp, 0x3f
lea esi, [ebp - 0x20]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
mov eax, edi
mov edi, dword [esp + 0x60]
mov byte [esp + edi + 0x80], bl
movzx ebx, byte [esp + 0x1a8]
add ebx, ecx
nop
mov byte [esp + 0x1a8], bl
mov ebx, dword [esp + 0x1a0]
mov dword [esp + 0x64], ebx
mov edi, dword [esp + 0x1a4]
mov ecx, ebp
shl ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, esi
mov ebx, dword [esp + 0x64]
shr ebx, cl
mov dword [esp + 0x4c], ebx
mov ecx, eax
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov ecx, ebp
shl edi, cl
cmp cl, 0x20
sbb ebp, ebp
mov ecx, esi
mov esi, dword [esp + 0x50]
and esi, ebp
mov dword [esp + 0x1a0], esi
and edi, ebp
cmp al, 0x20
sbb ebp, ebp
and ebx, ebp
cmp cl, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x4c]
and esi, ebp
or esi, edi
or ebx, esi
mov dword [esp + 0x1a4], ebx
mov ebx, dword [esp + 0x1c0]
shr ebx, 0x18
movzx ecx, word [edx + ebx*2]
mov ebx, ecx
shr bx, 8
mov ebp, ecx
and ebp, 0x3f
lea esi, [ebp - 0x20]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
mov eax, edi
mov edi, dword [esp + 0x5c]
mov byte [esp + edi + 0x80], bl
movzx ebx, byte [esp + 0x1c4]
add ebx, ecx
nop
mov byte [esp + 0x1c4], bl
mov ebx, dword [esp + 0x1bc]
mov dword [esp + 0x64], ebx
mov edi, dword [esp + 0x1c0]
mov ecx, ebp
shl ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, esi
mov ebx, dword [esp + 0x64]
shr ebx, cl
mov dword [esp + 0x4c], ebx
mov ecx, eax
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov ecx, ebp
shl edi, cl
cmp al, 0x20
sbb eax, eax
and ebx, eax
cmp cl, 0x20
sbb ebp, ebp
mov eax, ebx
mov ebx, dword [esp + 0x50]
and ebx, ebp
mov dword [esp + 0x1bc], ebx
and edi, ebp
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb ebx, ebx
mov ebp, dword [esp + 0x4c]
and ebp, ebx
or edi, ebp
or edi, eax
mov dword [esp + 0x1c0], edi
mov ebx, dword [esp + 0x1a4]
shr ebx, 0x18
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
lea ecx, [ebp - 0x20]
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x1d], al
xchg edi, eax
mov eax, ebp
mov ebp, dword [esp + 0x58]
mov byte [esp + ebp + 0x80], bl
movzx ebx, byte [esp + 0x1a8]
add ebx, esi
nop
mov byte [esp + 0x1a8], bl
mov ebx, dword [esp + 0x1a0]
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0x1a4]
mov esi, ecx
mov ecx, edi
shr ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, eax
mov ebx, dword [esp + 0x64]
shl ebx, cl
shl ebp, cl
mov ecx, esi
mov edi, dword [esp + 0x64]
shl edi, cl
cmp al, 0x20
sbb eax, eax
and ebx, eax
mov dword [esp + 0x1a0], ebx
and ebp, eax
movzx ebx, byte [esp + 0x1d]
cmp bl, 0x20
sbb ebx, ebx
mov eax, edi
mov edi, dword [esp + 0x50]
and edi, ebx
or ebp, edi
cmp cl, 0x20
sbb ebx, ebx
and eax, ebx
or ebp, eax
mov dword [esp + 0x1a4], ebp
mov ebx, dword [esp + 0x1c0]
shr ebx, 0x18
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
lea ecx, [ebp - 0x20]
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov eax, ebp
mov ebp, dword [esp + 0x54]
mov byte [esp + ebp + 0x80], bl
movzx ebx, byte [esp + 0x1c4]
add ebx, esi
nop
mov byte [esp + 0x1c4], bl
mov ebx, dword [esp + 0x1bc]
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0x1c0]
mov esi, ecx
mov ecx, edi
shr ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, esi
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 0x4c], ebx
mov ecx, eax
mov ebx, dword [esp + 0x64]
shl ebx, cl
shl ebp, cl
mov dword [esp + 0x64], ebp
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
mov ebp, dword [esp + 0x50]
and ebp, edi
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
mov edi, dword [esp + 0x4c]
and edi, esi
cmp al, 0x20
sbb esi, esi
and ebx, esi
mov dword [esp + 0x1bc], ebx
mov ebx, dword [esp + 0x64]
and ebx, esi
or ebx, ebp
or ebx, edi
mov dword [esp + 0x1c0], ebx
movzx ebx, byte [esp + 0x1e0]
nop
cmp bl, 0x20
jb 0x64a75b
mov ebp, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d4]
cmp ebp, ecx
jb 0x64b90c
lea eax, [ecx - 4]
cmp ecx, eax
jb 0x64b907
sub ebp, ecx
add ebp, 4
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and eax, ebp
cmp esi, 4
jb 0x64b8fb
mov ebp, dword [esp + 0x1c8]
mov ebp, dword [ebp + eax]
mov dword [esp + 0x64], ebp
lea ecx, [ebx - 0x40]
mov esi, ebp
shl ebp, cl
mov dword [esp + 0x50], ebp
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov eax, ecx
mov ecx, edi
shr esi, cl
add ebx, 0xffffffe0
mov ecx, ebx
mov ebp, dword [esp + 0x64]
shl ebp, cl
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and edi, esi
cmp al, 0x20
sbb esi, esi
mov eax, ebp
mov ebp, dword [esp + 0x50]
and esi, ebp
or esi, edi
or esi, dword [esp + 0x1dc]
cmp cl, 0x20
sbb ebx, ebx
and eax, ebx
or dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], esi
movzx ebx, byte [esp + 0x1e0]
add ebx, 0xffffffe0
mov byte [esp + 0x1e0], bl
add dword [esp + 0x1d4], 0xfffffffc
movzx ebx, byte [esp + 0x1fc]
nop
cmp bl, 0x20
jb 0x64a828
mov ebp, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1f0]
cmp ebp, ecx
jb 0x64b8f4
lea eax, [ecx - 4]
cmp ecx, eax
jb 0x64b8ef
sub ebp, ecx
add ebp, 4
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and eax, ebp
cmp esi, 4
jb 0x64b8e3
mov ebp, dword [esp + 0x1e4]
mov ebp, dword [ebp + eax]
mov dword [esp + 0x64], ebp
lea ecx, [ebx - 0x40]
mov esi, ebp
shl ebp, cl
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov eax, ecx
mov ecx, edi
shr esi, cl
mov dword [esp + 0x50], esi
add ebx, 0xffffffe0
mov ecx, ebx
mov esi, dword [esp + 0x64]
shl esi, cl
cmp cl, 0x20
sbb ebx, ebx
and esi, ebx
cmp al, 0x20
sbb ebx, ebx
and ebp, ebx
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb ebx, ebx
mov edi, dword [esp + 0x50]
and ebx, edi
or ebp, ebx
or ebp, dword [esp + 0x1f8]
or dword [esp + 0x1f4], esi
mov dword [esp + 0x1f8], ebp
movzx ebx, byte [esp + 0x1fc]
add ebx, 0xffffffe0
mov byte [esp + 0x1fc], bl
add dword [esp + 0x1f0], 0xfffffffc
movzx ebx, byte [esp + 0x1b]
lea ebp, [ebx - 0x80]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
lea esi, [ebx - 0x40]
xchg esi, eax
movzx eax, al
xchg esi, eax
mov dword [esp + 0x6c], esi
lea edi, [ebx - 0x7f]
xchg edi, eax
movzx eax, al
xchg edi, eax
mov dword [esp + 0x68], edi
lea eax, [ebx - 0x3f]
movzx eax, al
mov dword [esp + 0x60], eax
lea ecx, [ebx - 0x7e]
movzx ecx, cl
mov dword [esp + 0x5c], ecx
lea ecx, [ebx - 0x3e]
movzx ecx, cl
mov dword [esp + 0x58], ecx
lea ecx, [ebx - 0x7d]
movzx ecx, cl
mov dword [esp + 0x54], ecx
lea ecx, [ebx - 0x3d]
movzx ecx, cl
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x1dc]
shr ecx, 0x18
movzx ecx, word [edx + ecx*2]
mov word [esp + 0x20], cx
shr cx, 8
movzx edi, word [esp + 0x20]
and edi, 0x3f
lea eax, [edi - 0x20]
mov byte [esp + 0x1d], al
neg eax
mov byte [esp + ebp + 0x80], cl
movzx ebp, byte [esp + 0x1e0]
movzx esi, word [esp + 0x20]
add ebp, esi
nop
xchg ebp, eax
mov byte [esp + 0x1e0], al
xchg ebp, eax
mov ebp, dword [esp + 0x1d8]
mov dword [esp + 0x64], ebp
mov esi, dword [esp + 0x1dc]
mov ecx, edi
shl ebp, cl
mov dword [esp + 0x50], ebp
mov ecx, eax
mov ebp, dword [esp + 0x64]
shr ebp, cl
mov ecx, edi
shl esi, cl
mov dword [esp + 0x4c], esi
movzx ecx, byte [esp + 0x1d]
mov esi, dword [esp + 0x64]
shl esi, cl
add ebx, 4
cmp al, 0x20
sbb eax, eax
and ebp, eax
cmp cl, 0x20
sbb eax, eax
and esi, eax
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
mov eax, ebx
mov ebx, dword [esp + 0x50]
and ebx, edi
mov dword [esp + 0x1d8], ebx
mov ebx, dword [esp + 0x4c]
and ebx, edi
or ebx, ebp
or esi, ebx
mov dword [esp + 0x1dc], esi
mov ebx, dword [esp + 0x1f8]
shr ebx, 0x18
movzx ecx, word [edx + ebx*2]
mov ebx, ecx
shr bx, 8
mov ebp, ecx
and ebp, 0x3f
lea esi, [ebp - 0x20]
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x1c], al
xchg esi, eax
mov edi, dword [esp + 0x6c]
mov byte [esp + edi + 0x80], bl
movzx ebx, byte [esp + 0x1fc]
add ebx, ecx
nop
mov byte [esp + 0x1fc], bl
mov ebx, dword [esp + 0x1f4]
mov dword [esp + 0x64], ebx
mov edi, dword [esp + 0x1f8]
mov ecx, ebp
shl edi, cl
mov ecx, esi
shr ebx, cl
mov dword [esp + 0x50], ebx
movzx ecx, byte [esp + 0x1d]
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov ecx, ebp
mov esi, dword [esp + 0x64]
shl esi, cl
mov dword [esp + 0x64], esi
movzx esi, byte [esp + 0x1d]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and ebx, esi
cmp cl, 0x20
sbb ebp, ebp
and edi, ebp
mov esi, dword [esp + 0x64]
and esi, ebp
mov dword [esp + 0x1f4], esi
movzx ebp, byte [esp + 0x1c]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
mov esi, dword [esp + 0x50]
and esi, ebp
or esi, edi
or ebx, esi
mov dword [esp + 0x1f8], ebx
mov ebx, dword [esp + 0x1dc]
shr ebx, 0x18
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
xchg ebp, eax
mov byte [esp + 0x1d], al
xchg ebp, eax
lea ecx, [ebp - 0x20]
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ebp, dword [esp + 0x68]
mov byte [esp + ebp + 0x80], bl
movzx ebx, byte [esp + 0x1e0]
add ebx, esi
nop
mov byte [esp + 0x1e0], bl
mov ebx, dword [esp + 0x1d8]
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0x1dc]
mov esi, ecx
mov ecx, edi
shr ebx, cl
mov dword [esp + 0x50], ebx
movzx ecx, byte [esp + 0x1d]
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 0x4c], ebx
shl ebp, cl
mov dword [esp + 0x44], ebp
mov ecx, esi
mov ebp, dword [esp + 0x64]
shl ebp, cl
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
mov ebx, dword [esp + 0x50]
and ebx, edi
cmp cl, 0x20
sbb esi, esi
and ebp, esi
movzx esi, byte [esp + 0x1d]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
mov edi, dword [esp + 0x4c]
and edi, esi
mov dword [esp + 0x1d8], edi
mov edi, dword [esp + 0x44]
and edi, esi
or edi, ebx
or ebp, edi
mov dword [esp + 0x1dc], ebp
mov ebx, dword [esp + 0x1f8]
shr ebx, 0x18
movzx ecx, word [edx + ebx*2]
mov ebx, ecx
shr bx, 8
mov ebp, ecx
and ebp, 0x3f
lea esi, [ebp - 0x20]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
mov esi, dword [esp + 0x60]
mov byte [esp + esi + 0x80], bl
movzx ebx, byte [esp + 0x1fc]
add ebx, ecx
nop
mov byte [esp + 0x1fc], bl
mov ebx, dword [esp + 0x1f4]
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x1f8]
mov ecx, ebp
shl ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, edi
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov ecx, ebp
shl esi, cl
mov dword [esp + 0x4c], esi
movzx ecx, byte [esp + 0x1d]
mov esi, dword [esp + 0x64]
shr esi, cl
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and ebx, edi
cmp cl, 0x20
sbb edi, edi
and esi, edi
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
mov edi, dword [esp + 0x4c]
and edi, ebp
mov ecx, ebx
mov ebx, dword [esp + 0x50]
and ebx, ebp
mov dword [esp + 0x1f4], ebx
or esi, edi
or esi, ecx
mov dword [esp + 0x1f8], esi
mov ebx, dword [esp + 0x1dc]
shr ebx, 0x18
movzx ecx, word [edx + ebx*2]
mov ebx, ecx
shr bx, 8
mov ebp, ecx
and ebp, 0x3f
lea esi, [ebp - 0x20]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
mov esi, dword [esp + 0x5c]
mov byte [esp + esi + 0x80], bl
movzx ebx, byte [esp + 0x1e0]
add ebx, ecx
nop
mov byte [esp + 0x1e0], bl
mov ebx, dword [esp + 0x1d8]
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x1dc]
mov ecx, ebp
shl ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, edi
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 0x4c], ebx
movzx ecx, byte [esp + 0x1d]
mov ebx, dword [esp + 0x64]
shr ebx, cl
mov ecx, ebp
shl esi, cl
cmp cl, 0x20
sbb ebp, ebp
and esi, ebp
mov ecx, esi
mov esi, dword [esp + 0x50]
and esi, ebp
mov dword [esp + 0x1d8], esi
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb ebp, ebp
mov esi, dword [esp + 0x4c]
and esi, ebp
movzx ebp, byte [esp + 0x1d]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and ebx, ebp
or ebx, ecx
or esi, ebx
mov dword [esp + 0x1dc], esi
mov ebx, dword [esp + 0x1f8]
shr ebx, 0x18
movzx ecx, word [edx + ebx*2]
mov ebx, ecx
shr bx, 8
mov ebp, ecx
and ebp, 0x3f
lea esi, [ebp - 0x20]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
mov esi, dword [esp + 0x58]
mov byte [esp + esi + 0x80], bl
movzx ebx, byte [esp + 0x1fc]
add ebx, ecx
nop
mov byte [esp + 0x1fc], bl
mov ebx, dword [esp + 0x1f4]
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x1f8]
mov ecx, ebp
shl ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, edi
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 0x4c], ebx
movzx ecx, byte [esp + 0x1d]
mov ebx, dword [esp + 0x64]
shr ebx, cl
mov ecx, ebp
shl esi, cl
cmp cl, 0x20
sbb ebp, ebp
mov ecx, ebx
mov ebx, dword [esp + 0x50]
and ebx, ebp
mov dword [esp + 0x1f4], ebx
and esi, ebp
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb ebx, ebx
mov ebp, dword [esp + 0x4c]
and ebp, ebx
movzx ebx, byte [esp + 0x1d]
cmp bl, 0x20
sbb ebx, ebx
and ecx, ebx
or esi, ecx
or esi, ebp
mov dword [esp + 0x1f8], esi
mov ebx, dword [esp + 0x1dc]
shr ebx, 0x18
movzx ecx, word [edx + ebx*2]
mov ebx, ecx
shr bx, 8
mov ebp, ecx
and ebp, 0x3f
lea esi, [ebp - 0x20]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
mov esi, dword [esp + 0x54]
mov byte [esp + esi + 0x80], bl
movzx ebx, byte [esp + 0x1e0]
add ebx, ecx
nop
mov byte [esp + 0x1e0], bl
mov ebx, dword [esp + 0x1d8]
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x1dc]
mov ecx, ebp
shl ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, edi
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 0x4c], ebx
movzx ecx, byte [esp + 0x1d]
mov ebx, dword [esp + 0x64]
shr ebx, cl
mov ecx, ebp
shl esi, cl
cmp cl, 0x20
sbb ebp, ebp
mov ecx, ebx
mov ebx, dword [esp + 0x50]
and ebx, ebp
mov dword [esp + 0x1d8], ebx
and esi, ebp
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb ebx, ebx
mov ebp, dword [esp + 0x4c]
and ebp, ebx
movzx ebx, byte [esp + 0x1d]
cmp bl, 0x20
sbb ebx, ebx
and ecx, ebx
or ecx, esi
or ebp, ecx
mov dword [esp + 0x1dc], ebp
mov ebx, dword [esp + 0x1f8]
shr ebx, 0x18
movzx ecx, word [edx + ebx*2]
mov ebx, ecx
shr bx, 8
mov ebp, ecx
and ebp, 0x3f
lea esi, [ebp - 0x20]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
mov esi, dword [esp + 0x48]
mov byte [esp + esi + 0x80], bl
movzx ebx, byte [esp + 0x1fc]
add ebx, ecx
nop
mov byte [esp + 0x1fc], bl
mov ebx, dword [esp + 0x1f4]
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x1f8]
mov ecx, ebp
shl ebx, cl
mov dword [esp + 0x50], ebx
mov ecx, edi
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 0x4c], ebx
movzx ecx, byte [esp + 0x1d]
mov ebx, dword [esp + 0x64]
shr ebx, cl
mov ecx, ebp
shl esi, cl
mov dword [esp + 0x64], esi
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
mov esi, dword [esp + 0x4c]
and esi, edi
movzx edi, byte [esp + 0x1d]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and ebx, edi
cmp cl, 0x20
sbb ebp, ebp
mov edi, dword [esp + 0x64]
and edi, ebp
mov ecx, esi
mov esi, dword [esp + 0x50]
and esi, ebp
mov dword [esp + 0x1f4], esi
or ebx, edi
or ebx, ecx
mov dword [esp + 0x1f8], ebx
movzx ebx, byte [esp + 0x1b]
cmp bl, 0x3c
jne 0x64afe1
mov eax, dword [esp + 0x38]
cmp eax, 0x40
jl 0x64b058
mov ecx, dword [esp + 0x28]
cmp ecx, 0x40
jle 0x64ae73
mov ebx, 0x40
jmp 0x64ae75
mov ebx, ecx
mov ebp, dword [esp + 0x180]
lea esi, [esp + 0x80]
cmp ebp, esi
je 0x64aeb4
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.00468df0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18c]
mov ebp, dword [esp + 0x180]
lea esi, [esp + 0x80]
cmp ecx, eax
jb 0x64b8de
mov ebx, ecx
sub ebx, eax
mov edi, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
add ebx, ebp
cmp edi, 0x40
jle 0x64aed5
mov edi, 0x40
lea esi, [esp + 0xc0]
cmp esi, ebx
je 0x64af06
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
call fcn.00468df0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18c]
mov ebp, dword [esp + 0x180]
mov ebx, eax
shl ebx, 1
cmp ecx, ebx
jb 0x64b8d7
mov esi, ecx
sub esi, ebx
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
add ebx, ebp
cmp edi, 0x40
jle 0x64af2f
mov edi, 0x40
lea esi, [esp + 0x100]
cmp esi, ebx
je 0x64af60
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
call fcn.00468df0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18c]
mov ebp, dword [esp + 0x180]
lea ebx, [eax + eax*2]
cmp ecx, ebx
jb 0x64b8d0
mov esi, ecx
sub ecx, ebx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, ebx
add ecx, ebp
cmp edi, 0x40
jle 0x64af84
mov edi, 0x40
mov dword [esp + 0x6c], ebx
lea ebx, [esp + 0x140]
cmp ebx, ecx
je 0x64afb9
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call fcn.00468df0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x18c]
mov ebp, dword [esp + 0x180]
mov esi, dword [esp + 0x28]
lea ebx, [esi - 0x40]
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 0x40
add ebx, ebp
mov ebp, dword [esp + 0x6c]
cmp ebp, esi
jg 0x64affb
mov ebp, dword [esp + 0x3c]
add ebp, 0x100
xor ecx, ecx
jmp 0x649eae
mov ecx, eax
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x180]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
jmp 0x649eae
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x25
lea ecx, [0x744374]
mov dword [eax], ecx
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], eax
add esp, 0x200
ret
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x25
lea ecx, [0x74434f]
mov dword [eax], ecx
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], eax
add esp, 0x200
ret
xchg edi, eax
test al, al
xchg edi, eax
jbe 0x64b306
xchg edi, eax
movzx eax, al
xchg edi, eax
lea edx, [ebp + ebp*2]
lea eax, [edi + edx]
cmp ebx, eax
jl 0x64b2a9
cmp edi, 0x100
ja 0x64b8c4
mov dword [esp + 0x30], edi
cmp ebx, edi
jg 0x64b0e9
mov edi, ebx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
lea esi, [esp + 0x80]
cmp ecx, esi
je 0x64b123
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
call fcn.00468df0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x180]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
lea edi, [ebp + esi]
cmp ebx, edi
jb 0x64b8bb
cmp ebp, edi
ja 0x64b8b2
mov edi, ebx
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebx, ebp
add ebx, ecx
cmp esi, 0x40
jle 0x64b160
mov dword [esp + 0x78], eax
mov eax, 0x40
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x78]
jmp 0x64b164
mov dword [esp + 0x60], esi
lea edi, [esp + 0xc0]
cmp edi, ebx
je 0x64b19a
mov dword [esp], ebx
mov dword [esp + 4], edi
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
call fcn.00468df0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x180]
mov edx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
lea ebx, [esi + ebp*2]
mov edi, dword [esp + 0x28]
cmp edi, ebx
jb 0x64b8a9
shl ebp, 1
cmp ebx, ebp
jb 0x64b8a0
mov ebx, edi
sub edi, ebp
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and ebp, edi
add ebp, ecx
cmp esi, 0x40
jle 0x64b1d0
mov edi, 0x40
jmp 0x64b1d2
mov edi, esi
lea esi, [esp + 0x100]
cmp esi, ebp
je 0x64b20a
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
call fcn.00468df0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x68]
cmp edx, ecx
mov eax, ecx
mov ecx, dword [esp + 0x180]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x28]
jmp 0x64b20c
cmp ebx, eax
jb 0x64b897
cmp edx, eax
ja 0x64b88e
mov ebp, ebx
sub ebx, edx
neg ebx
sar ebx, 0x1f
and edx, ebx
lea ebx, [ecx + edx]
mov eax, dword [esp + 0x30]
cmp eax, 0x40
jle 0x64b238
mov edx, 0x40
jmp 0x64b23a
mov edx, eax
lea esi, [esp + 0x140]
cmp esi, ebx
je 0x64b26a
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.00468df0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
cmp ecx, eax
mov ebp, ecx
mov ecx, dword [esp + 0x180]
jmp 0x64b26c
cmp ebp, eax
mov ebx, dword [esp + 0x3c]
lea ebx, [ebx + eax*4]
jb 0x64b887
sub ebp, eax
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
add ecx, ebp
mov eax, dword [esp + 0x210]
mov edx, dword [esp + 0x208]
mov ebp, dword [esp + 0x38]
mov edi, ebx
mov ebx, esi
mov esi, dword [esp + 0x18c]
jmp 0x64b30a
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x25
lea ecx, [0x744399]
mov dword [eax], ecx
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], eax
add esp, 0x200
ret
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x70]
jmp 0x64b349
mov edx, dword [esp + 0x34]
inc edx
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x210]
mov dword [esp + 0x34], edx
mov edi, esi
mov edx, dword [esp + 0x208]
mov esi, dword [esp + 0x18c]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x34]
cmp edi, 4
jge 0x64b3f7
imul edx, edi, 0x1c
mov dword [esp + 0x6c], edx
mov eax, dword [esp + edx + 0x19c]
movzx ecx, byte [esp + edx + 0x1a8]
add ecx, 0xffffffc0
neg ecx
movzx ecx, cl
imul edi, ebp
mov dword [esp + 0x2c], edi
lea ebp, [esp + edx + 0x190]
mov dword [esp + 0x184], ebp
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x180]
jmp 0x64b4c1
mov ebp, dword [esp + 0x2c]
sub edi, ebp
lea ebp, [esp + edx + 0x1a8]
mov eax, esi
mov esi, dword [esp + 0x3c]
add esi, edi
mov dword [esp + edx + 0x194], 0
mov dword [esp + edx + 0x198], 0
mov dword [esp + edx + 0x190], 0
cmp byte [ebp], 0x40
jbe 0x64b3e6
mov ebp, dword [0x9a3bd8]
mov edi, dword [0x9a3bdc]
jmp 0x64b3ea
xor ebp, ebp
xor edi, edi
test ebp, ebp
je 0x64b325
jmp 0x64b6fc
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
je 0x64b45c
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x27
lea ecx, [0x745700]
mov dword [eax], ecx
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], eax
add esp, 0x200
ret
mov dword [esp + 0x220], edx
mov dword [esp + 0x224], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], 0
mov dword [esp + 0x230], 0
add esp, 0x200
ret
movzx ebp, word [esp + 0x1e]
shr bp, 8
mov esi, dword [esp + 0x180]
xchg ebp, eax
mov byte [esi + ebx], al
xchg ebp, eax
lea edi, [ebx + 1]
mov ebx, dword [esp + 0x18c]
mov ebp, dword [esp + 0x184]
mov ecx, esi
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x18c]
test eax, eax
jle 0x64b39c
mov ecx, dword [esp + edx + 0x19c]
test ecx, ecx
jne 0x64b4ec
lea ebp, [esp + edx + 0x1a8]
cmp byte [ebp], 0x40
jae 0x64b6ba
mov ebp, dword [esp + 0x184]
mov dword [esp + 0x68], edi
movzx ebp, byte [esp + edx + 0x1a8]
xchg ebp, eax
cmp al, 0x38
xchg ebp, eax
jb 0x64b5f3
mov dword [esp + 0x40], eax
cmp ecx, 4
jb 0x64b837
mov eax, dword [esp + edx + 0x194]
lea esi, [ecx - 4]
mov ebx, dword [esp + edx + 0x190]
mov edi, dword [esp + edx + 0x198]
cmp eax, esi
jb 0x64b87e
sub edi, ecx
add edi, 4
mov eax, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and esi, edi
cmp eax, 4
jb 0x64b872
mov ebx, dword [esi + ebx]
mov dword [esp + 0x64], ebx
lea esi, [esp + edx + 0x1a0]
mov dword [esp + 0x188], esi
lea ecx, [ebp - 0x40]
mov byte [esp + 0x1d], cl
mov edi, ebx
shl ebx, cl
mov eax, ecx
neg eax
mov ecx, eax
shr edi, cl
add ebp, 0xffffffe0
mov ecx, ebp
mov esi, dword [esp + 0x64]
shl esi, cl
mov dword [esp + 0x64], esi
lea edx, [esp + edx + 0x19c]
movzx esi, byte [esp + 0x1d]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and ebx, esi
cmp al, 0x20
sbb esi, esi
and edi, esi
or ebx, edi
mov esi, dword [esp + 0x184]
or ebx, dword [esi + 0x14]
cmp cl, 0x20
sbb ebp, ebp
mov edi, dword [esp + 0x64]
and ebp, edi
mov edi, dword [esp + 0x188]
or dword [edi], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + ebp + 0x1a4], ebx
movzx ebx, byte [esp + ebp + 0x1a8]
add ebx, 0xffffffe0
mov byte [esp + ebp + 0x1a8], bl
add dword [edx], 0xfffffffc
mov eax, dword [esp + 0x40]
mov edx, ebp
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x18c]
mov edi, dword [esp + 0x68]
cmp edi, ebx
jge 0x64b732
mov ebp, dword [esp + edx + 0x1a4]
shr ebp, 0x18
movzx ecx, word [esi + ebp*2]
mov word [esp + 0x1e], cx
movzx ebp, cl
movzx esi, byte [esp + edx + 0x1a8]
add esi, ecx
and ecx, 0x3f
mov byte [esp + 0x1d], cl
lea ebx, [ecx - 0x20]
mov byte [esp + 0x1c], bl
neg ebx
nop
xchg esi, eax
mov byte [esp + edx + 0x1a8], al
xchg esi, eax
mov esi, dword [esp + edx + 0x1a0]
mov dword [esp + 0x64], esi
mov edi, dword [esp + edx + 0x1a4]
shl edi, cl
mov dword [esp + 0x50], edi
mov ecx, ebx
shr esi, cl
movzx ecx, byte [esp + 0x1c]
mov edi, dword [esp + 0x64]
shl edi, cl
mov dword [esp + 0x4c], edi
movzx ecx, byte [esp + 0x1d]
mov edi, dword [esp + 0x64]
shl edi, cl
sub eax, ebp
cmp bl, 0x20
sbb ebx, ebx
and esi, ebx
movzx ebx, byte [esp + 0x1c]
cmp bl, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x4c]
and ebp, ebx
cmp cl, 0x20
sbb ebx, ebx
mov ecx, edi
mov edi, dword [esp + 0x50]
and edi, ebx
or esi, edi
or ebp, esi
and ecx, ebx
mov dword [esp + edx + 0x1a0], ecx
mov dword [esp + edx + 0x1a4], ebp
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cmp ebx, ecx
jb 0x64b48e
jmp 0x64b78f
mov eax, dword [0x9a3bd8]
mov ecx, dword [0x9a3bdc]
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], ecx
add esp, 0x200
ret
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
mov dword [esp + 0x22c], ebp
mov dword [esp + 0x230], edi
add esp, 0x200
ret
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x25
lea ecx, [0x7443be]
mov dword [eax], ecx
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], eax
add esp, 0x200
ret
mov eax, ebx
call fcn.004684c0
movzx ebp, byte [ebp + edi - 1]
mov dword [esp + 0x64], ebp
movzx eax, byte [esp + edx + 0x1a8]
lea ecx, [eax - 0x28]
mov byte [esp + 0x1d], cl
mov edi, ebp
shl ebp, cl
mov dword [esp + 0x50], ebp
neg ecx
mov byte [esp + 0x1c], cl
shr edi, cl
add eax, 0xfffffff8
mov ecx, eax
mov ebp, dword [esp + 0x64]
shl ebp, cl
cmp al, 0x20
sbb eax, eax
and ebp, eax
or dword [ebx], ebp
movzx ebp, byte [esp + 0x1d]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
mov eax, ebp
mov ebp, dword [esp + 0x50]
and ebp, eax
mov eax, ebp
movzx ebp, byte [esp + 0x1c]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and edi, ebp
or edi, eax
or edi, esi
mov dword [esp + edx + 0x1a4], edi
movzx ebp, byte [esp + edx + 0x1a8]
add ebp, 0xfffffff8
xchg ebp, eax
mov byte [esp + edx + 0x1a8], al
xchg ebp, eax
mov ebp, dword [esp + edx + 0x19c]
dec ebp
mov dword [esp + edx + 0x19c], ebp
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x18c]
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + edx + 0x19c]
test ebp, ebp
jbe 0x64b5f3
mov ecx, dword [esp + edx + 0x194]
lea eax, [ebp - 1]
mov esi, dword [esp + edx + 0x1a4]
lea ebx, [esp + edx + 0x1a0]
mov edi, dword [esp + edx + 0x190]
cmp ecx, eax
ja 0x64b796
call fcn.004684d0
mov ecx, 4
mov edx, eax
call fcn.00468500
mov ecx, eax
mov eax, esi
call fcn.00468530
mov ecx, ebp
call fcn.00468520
mov ecx, eax
mov eax, edx
call fcn.00468520
mov ecx, eax
mov edx, ebx
call fcn.00468500
mov eax, ebp
mov ecx, ebx
call fcn.00468520
mov ecx, ebx
mov edx, edi
call fcn.00468500
mov eax, ebp
mov ecx, edi
call fcn.00468520
mov ecx, edi
mov edx, ebx
call fcn.00468500
mov ecx, edi
mov edx, 0x100
call fcn.004684e0
mov eax, ebx
call fcn.00468520
mov eax, ebx
call fcn.00468520
call fcn.00468520
mov ecx, 4
mov edx, esi
call fcn.00468500
call fcn.00468530
mov edx, ebp
call fcn.00468510
mov ecx, 4
mov edx, esi
call fcn.00468500
call fcn.00468530
mov edx, ebp
call fcn.00468510
mov edx, ecx
mov ecx, 4
call fcn.00468500
mov eax, ebx
call fcn.00468530
mov edx, eax
call fcn.00468510
mov edx, ecx
mov ecx, 4
call fcn.00468500
mov eax, ebx
call fcn.00468530
mov edx, eax
call fcn.00468510
mov ecx, 0x100
call fcn.00468500
mov eax, esi
call fcn.00468520
mov ecx, eax
mov eax, esi
call fcn.00468520
mov ecx, eax
mov edx, ebp
call fcn.00468500
mov eax, edx
call fcn.004684c0
mov eax, edx
call fcn.004684c0
nop
call fcn.00467050
jmp fcn.00649c40