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

Disassembly:
mov ecx, dword [0x9ec7ac]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x194]
cmp eax, dword [ecx + 8]
jbe 0x649c2f
sub esp, 0x214
mov ecx, dword [esp + 0x218]
cmp byte [ecx + 0x18], 8
je 0x647d8d
lea edi, [esp + 0x1a4]
xor eax, eax
call fcn.004686e4
mov ecx, dword [esp + 0x22c]
mov ebx, dword [esp + 0x228]
mov edx, dword [esp + 0x230]
xor ebp, ebp
mov esi, 6
jmp 0x647e3a
mov dword [esp], ecx
mov eax, dword [esp + 0x21c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x220]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x224]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x228]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x22c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x230]
mov dword [esp + 0x18], eax
call fcn.00649c40
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x234], ecx
mov dword [esp + 0x238], edx
mov dword [esp + 0x23c], ebx
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], ebp
add esp, 0x214
ret
mov edi, dword [esp + 0x80]
lea ebp, [edi + 1]
mov ecx, dword [esp + 0x22c]
mov ebx, dword [esp + 0x228]
mov edx, dword [esp + 0x230]
mov esi, dword [esp + 0x7c]
xor eax, eax
cmp ebp, 3
jge 0x647f56
mov edi, ebp
shl ebp, 1
cmp ecx, ebp
jbe 0x649c27
inc ebp
cmp ecx, ebp
jbe 0x649c20
movzx ebp, word [ebx + edi*2]
lea eax, [ebp + esi]
cmp ecx, eax
jle 0x647ef9
cmp edx, eax
jb 0x649c19
cmp esi, eax
ja 0x649c10
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], eax
imul eax, edi, 0x1c
lea eax, [esp + eax + 0x1a4]
mov dword [esp], eax
sub edx, esi
mov ecx, edx
neg edx
sar edx, 0x1f
and esi, edx
lea edx, [ebx + esi]
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
call fcn.0063da20
mov eax, dword [esp + 0x10]
test eax, eax
je 0x647e15
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], ecx
add esp, 0x214
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 + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x240], ecx
mov dword [esp + 0x244], eax
add esp, 0x214
ret
cmp ecx, esi
jb 0x649c09
lea eax, [esp + 0x1f8]
mov dword [esp], eax
sub edx, esi
sub ecx, esi
mov eax, edx
neg edx
sar edx, 0x1f
and esi, edx
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 0x64800b
mov ebx, dword [esp + 0x224]
lea ebp, [ebx + 3]
sar ebp, 0x1f
shr ebp, 0x1e
mov esi, dword [esp + 0x218]
mov edx, dword [esi + 8]
lea ebp, [ebp + ebx + 3]
cmp edx, 0x100
jb 0x649bff
movzx ecx, byte [esi + 0x18]
add ecx, 0xfffffff8
neg ecx
sar ebp, 2
mov dword [esp + 0x50], ebp
and ecx, 7
mov byte [esp + 0x32], cl
mov esi, dword [esi]
mov dword [esp + 0x1a0], esi
lea edi, [esp + 0x94]
xor eax, eax
call fcn.004686c0
mov ecx, dword [esp + 0x21c]
movzx eax, byte [esp + 0x32]
mov edx, ebx
mov edi, ecx
xor ecx, ecx
mov byte [esp + 0x33], cl
mov ecx, edi
xor edx, edx
mov dword [esp + 0x54], edx
mov edx, ebx
jmp 0x648075
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], ecx
add esp, 0x214
ret
mov edx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x224]
mov byte [esp + 0x33], cl
mov ebx, edi
mov ecx, ebp
mov dword [esp + 0x54], esi
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x21c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x194], ecx
cmp dword [esp + 0x1b0], 4
jb 0x649313
cmp dword [esp + 0x1cc], 4
jb 0x649313
cmp dword [esp + 0x1e8], 4
jb 0x649313
cmp dword [esp + 0x204], 4
jb 0x649313
movzx edi, byte [esp + 0x1bc]
nop
xchg edi, eax
cmp al, 0x20
xchg edi, eax
jb 0x64819a
mov edx, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1b0]
cmp edx, ecx
jb 0x649bfa
lea ebx, [ecx - 4]
cmp ecx, ebx
jb 0x649bf3
sub edx, ecx
add edx, 4
mov ecx, edx
neg ecx
sar ecx, 0x1f
and ebx, ecx
cmp edx, 4
jb 0x649be9
mov ecx, dword [esp + 0x1a4]
mov ebx, dword [ecx + ebx]
mov dword [esp + 0x78], ebx
lea ecx, [edi - 0x40]
mov byte [esp + 0x35], cl
mov edx, ebx
shl ebx, cl
neg ecx
mov byte [esp + 0x34], cl
shr edx, cl
add edi, 0xffffffe0
mov ecx, edi
mov ebp, dword [esp + 0x78]
shl ebp, cl
cmp cl, 0x20
sbb edi, edi
and ebp, edi
movzx edi, byte [esp + 0x35]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and ebx, edi
movzx edi, byte [esp + 0x34]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and edi, edx
or ebx, edi
or ebx, dword [esp + 0x1b8]
or dword [esp + 0x1b4], ebp
mov dword [esp + 0x1b8], ebx
movzx ebx, byte [esp + 0x1bc]
add ebx, 0xffffffe0
mov byte [esp + 0x1bc], bl
add dword [esp + 0x1b0], 0xfffffffc
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x224]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x50]
movzx edi, byte [esp + 0x1d8]
nop
xchg edi, eax
cmp al, 0x20
xchg edi, eax
jb 0x64827c
mov edx, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x1cc]
cmp edx, ecx
jb 0x649be4
lea ebx, [ecx - 4]
cmp ecx, ebx
jb 0x649bdd
sub edx, ecx
add edx, 4
mov ecx, edx
neg ecx
sar ecx, 0x1f
and ebx, ecx
cmp edx, 4
jb 0x649bd3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx + ebx]
mov dword [esp + 0x78], ebx
lea ecx, [edi - 0x40]
mov byte [esp + 0x35], cl
mov edx, ebx
shl ebx, cl
neg ecx
mov byte [esp + 0x34], cl
shr edx, cl
add edi, 0xffffffe0
mov ecx, edi
mov ebp, dword [esp + 0x78]
shl ebp, cl
cmp cl, 0x20
sbb edi, edi
and ebp, edi
movzx edi, byte [esp + 0x35]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and ebx, edi
movzx edi, byte [esp + 0x34]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and edx, edi
or ebx, edx
or ebx, dword [esp + 0x1d4]
or dword [esp + 0x1d0], ebp
mov dword [esp + 0x1d4], ebx
movzx ebx, byte [esp + 0x1d8]
add ebx, 0xffffffe0
mov byte [esp + 0x1d8], bl
add dword [esp + 0x1cc], 0xfffffffc
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x224]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x50]
movzx edi, byte [esp + 0x33]
xchg edi, eax
movzx edx, al
xchg edi, eax
lea ecx, [edi + 0x40]
movzx ecx, cl
mov dword [esp + 0x80], ecx
lea ebx, [edi + 1]
movzx ebx, bl
mov dword [esp + 0x7c], ebx
lea ebp, [edi + 0x41]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov dword [esp + 0x74], ebp
lea ebp, [edi + 2]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov dword [esp + 0x70], ebp
lea ebp, [edi + 0x42]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov dword [esp + 0x6c], ebp
lea ebp, [edi + 3]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov dword [esp + 0x68], ebp
add edi, 0x43
xchg edi, eax
movzx eax, al
xchg edi, eax
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x1b8]
shr edi, 0x18
mov ecx, eax
xchg edi, eax
shr al, cl
xchg edi, eax
xchg edi, eax
movzx eax, al
xchg edi, eax
movzx edi, word [esi + edi*2]
mov word [esp + 0x3a], di
shr di, 8
movzx ebp, word [esp + 0x3a]
and ebp, 0x3f
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
lea ebx, [ebp - 0x20]
mov byte [esp + 0x34], bl
neg ebx
xchg edi, eax
mov byte [esp + edx + 0x94], al
xchg edi, eax
movzx edi, byte [esp + 0x1bc]
mov edx, esi
movzx esi, word [esp + 0x3a]
add esi, edi
nop
xchg esi, eax
mov byte [esp + 0x1bc], al
xchg esi, eax
mov esi, dword [esp + 0x1b4]
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0x1b8]
mov ecx, ebp
shl esi, cl
mov dword [esp + 0x60], esi
movzx ecx, byte [esp + 0x34]
mov esi, dword [esp + 0x78]
shl esi, cl
mov ecx, ebp
shl edi, cl
mov dword [esp + 0x5c], edi
mov ecx, ebx
mov edi, dword [esp + 0x78]
shr edi, cl
movzx ebp, byte [esp + 0x34]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and esi, ebp
cmp cl, 0x20
sbb ebx, ebx
and edi, ebx
movzx ebx, byte [esp + 0x35]
cmp bl, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x60]
and ebp, ebx
mov dword [esp + 0x1b4], ebp
mov ebp, dword [esp + 0x5c]
and ebp, ebx
or ebp, edi
or ebp, esi
mov dword [esp + 0x1b8], ebp
mov ebx, dword [esp + 0x1d4]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x35], al
xchg edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x34], al
xchg edi, eax
mov edi, dword [esp + 0x80]
mov byte [esp + edi + 0x94], bl
movzx ebx, byte [esp + 0x1d8]
add ebx, esi
nop
mov byte [esp + 0x1d8], bl
mov ebx, dword [esp + 0x1d0]
mov dword [esp + 0x78], ebx
mov esi, dword [esp + 0x1d4]
mov ecx, ebp
mov edi, ebx
shl ebx, cl
movzx ecx, byte [esp + 0x35]
shl edi, cl
mov dword [esp + 0x60], edi
mov ecx, ebp
shl esi, cl
movzx ecx, byte [esp + 0x34]
mov edi, dword [esp + 0x78]
shr edi, cl
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and ebx, ebp
mov dword [esp + 0x1d0], ebx
and esi, ebp
cmp cl, 0x20
sbb ebx, ebx
and edi, ebx
or esi, edi
movzx ebx, byte [esp + 0x35]
cmp bl, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x60]
and ebp, ebx
or esi, ebp
mov dword [esp + 0x1d4], esi
mov ebx, dword [esp + 0x1b8]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x34], al
xchg edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ebp, dword [esp + 0x7c]
mov byte [esp + ebp + 0x94], bl
movzx ebx, byte [esp + 0x1bc]
add ebx, esi
nop
mov byte [esp + 0x1bc], bl
mov ebx, dword [esp + 0x1b4]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x1b8]
mov ecx, edi
mov esi, ebx
shr ebx, cl
mov dword [esp + 0x60], ebx
movzx ecx, byte [esp + 0x35]
shl ebp, cl
shl esi, cl
movzx ecx, byte [esp + 0x34]
mov ebx, dword [esp + 0x78]
shl ebx, cl
mov dword [esp + 0x78], ebx
movzx ebx, byte [esp + 0x35]
cmp bl, 0x20
sbb ebx, ebx
and esi, ebx
mov dword [esp + 0x1b4], esi
and ebp, ebx
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb ebx, ebx
mov esi, dword [esp + 0x60]
and esi, ebx
or ebp, esi
cmp cl, 0x20
sbb ebx, ebx
mov esi, dword [esp + 0x78]
and esi, ebx
or ebp, esi
mov dword [esp + 0x1b8], ebp
mov ebx, dword [esp + 0x1d4]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x35], al
xchg edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x34], al
xchg edi, eax
mov edi, dword [esp + 0x74]
mov byte [esp + edi + 0x94], bl
movzx ebx, byte [esp + 0x1d8]
add ebx, esi
nop
mov byte [esp + 0x1d8], bl
mov ebx, dword [esp + 0x1d0]
mov dword [esp + 0x78], ebx
mov esi, dword [esp + 0x1d4]
mov ecx, ebp
mov edi, ebx
shl ebx, cl
mov dword [esp + 0x60], ebx
movzx ecx, byte [esp + 0x35]
shl edi, cl
mov ecx, ebp
shl esi, cl
mov dword [esp + 0x5c], esi
movzx ecx, byte [esp + 0x34]
mov esi, dword [esp + 0x78]
shr esi, cl
movzx ebx, byte [esp + 0x35]
cmp bl, 0x20
sbb ebx, ebx
and edi, ebx
cmp cl, 0x20
sbb ebx, ebx
and esi, ebx
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebx, ebx
mov ebp, dword [esp + 0x60]
and ebp, ebx
mov dword [esp + 0x1d0], ebp
mov ebp, dword [esp + 0x5c]
and ebp, ebx
or ebp, esi
or ebp, edi
mov dword [esp + 0x1d4], ebp
mov ebx, dword [esp + 0x1b8]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x35], al
xchg edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x34], al
xchg edi, eax
mov edi, dword [esp + 0x70]
mov byte [esp + edi + 0x94], bl
movzx ebx, byte [esp + 0x1bc]
add ebx, esi
nop
mov byte [esp + 0x1bc], bl
mov ebx, dword [esp + 0x1b4]
mov dword [esp + 0x78], ebx
mov esi, dword [esp + 0x1b8]
mov ecx, ebp
mov edi, ebx
shl ebx, cl
mov dword [esp + 0x60], ebx
movzx ecx, byte [esp + 0x34]
shr edi, cl
movzx ecx, byte [esp + 0x35]
mov ebx, dword [esp + 0x78]
shl ebx, cl
mov ecx, ebp
shl esi, cl
mov dword [esp + 0x78], esi
movzx esi, byte [esp + 0x35]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and ebx, esi
movzx esi, byte [esp + 0x34]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and edi, esi
cmp cl, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x78]
and esi, ebp
or edi, esi
or edi, ebx
mov ebx, dword [esp + 0x60]
and ebx, ebp
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], edi
mov ebx, dword [esp + 0x1d4]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x35], al
xchg edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x34], al
xchg edi, eax
mov edi, dword [esp + 0x6c]
mov byte [esp + edi + 0x94], bl
movzx ebx, byte [esp + 0x1d8]
add ebx, esi
nop
mov byte [esp + 0x1d8], bl
mov ebx, dword [esp + 0x1d0]
mov dword [esp + 0x78], ebx
mov esi, dword [esp + 0x1d4]
mov ecx, ebp
mov edi, ebx
shl ebx, cl
shl esi, cl
movzx ecx, byte [esp + 0x34]
shr edi, cl
mov dword [esp + 0x60], edi
movzx ecx, byte [esp + 0x35]
mov edi, dword [esp + 0x78]
shl edi, cl
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and ebx, ebp
mov dword [esp + 0x1d0], ebx
and esi, ebp
cmp cl, 0x20
sbb ebx, ebx
and edi, ebx
movzx ebx, byte [esp + 0x34]
cmp bl, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x60]
and ebp, ebx
or esi, ebp
or esi, edi
mov dword [esp + 0x1d4], esi
mov ebx, dword [esp + 0x1b8]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x35], al
xchg edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0x34], al
xchg edi, eax
mov edi, dword [esp + 0x68]
mov byte [esp + edi + 0x94], bl
movzx ebx, byte [esp + 0x1bc]
add ebx, esi
nop
mov byte [esp + 0x1bc], bl
mov ebx, dword [esp + 0x1b4]
mov dword [esp + 0x78], ebx
mov esi, dword [esp + 0x1b8]
mov ecx, ebp
shl esi, cl
mov dword [esp + 0x60], esi
movzx ecx, byte [esp + 0x35]
mov edi, ebx
shl ebx, cl
movzx ecx, byte [esp + 0x34]
shr edi, cl
mov ecx, ebp
mov esi, dword [esp + 0x78]
shl esi, cl
mov dword [esp + 0x78], esi
movzx esi, byte [esp + 0x34]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and edi, esi
movzx esi, byte [esp + 0x35]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and ebx, esi
cmp cl, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x78]
and esi, ebp
mov dword [esp + 0x1b4], esi
mov esi, dword [esp + 0x60]
and esi, ebp
or esi, edi
or esi, ebx
mov dword [esp + 0x1b8], esi
mov ebx, dword [esp + 0x1d4]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
movzx ebx, word [edx + ebx*2]
mov ebp, ebx
shr bx, 8
mov esi, ebp
and ebp, 0x3f
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
lea edi, [ebp - 0x20]
xchg edi, eax
mov byte [esp + 0x34], al
xchg edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ebp, dword [esp + 0x64]
mov byte [esp + ebp + 0x94], bl
movzx ebx, byte [esp + 0x1d8]
add ebx, esi
nop
mov byte [esp + 0x1d8], bl
mov ebx, dword [esp + 0x1d0]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x1d4]
mov ecx, edi
mov esi, ebx
shr ebx, cl
movzx ecx, byte [esp + 0x34]
shl esi, cl
mov dword [esp + 0x60], esi
movzx ecx, byte [esp + 0x35]
mov esi, dword [esp + 0x78]
shl esi, cl
shl ebp, cl
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and ebx, edi
mov dword [esp + 0x78], ebx
movzx edi, byte [esp + 0x34]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
mov ebx, dword [esp + 0x60]
and ebx, edi
cmp cl, 0x20
sbb edi, edi
and esi, edi
mov dword [esp + 0x1d0], esi
and ebp, edi
mov esi, dword [esp + 0x78]
or ebp, esi
or ebp, ebx
mov dword [esp + 0x1d4], ebp
movzx ebx, byte [esp + 0x1f4]
nop
cmp bl, 0x20
jb 0x6489c3
mov ebp, dword [esp + 0x1e4]
mov ecx, dword [esp + 0x1e8]
cmp ebp, ecx
jb 0x649bcc
lea esi, [ecx - 4]
cmp ecx, esi
jb 0x649bc5
sub ebp, ecx
add ebp, 4
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and esi, ebp
cmp edi, 4
jb 0x649bb9
mov ebp, dword [esp + 0x1dc]
mov ebp, dword [ebp + esi]
mov dword [esp + 0x78], ebp
lea ecx, [ebx - 0x40]
mov byte [esp + 0x35], cl
mov esi, ebp
shl ebp, cl
mov dword [esp + 0x60], ebp
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ecx, edi
shr esi, cl
add ebx, 0xffffffe0
mov ecx, ebx
mov ebp, dword [esp + 0x78]
shl ebp, cl
mov dword [esp + 0x78], ebp
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and edi, esi
movzx esi, byte [esp + 0x35]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
mov ebp, dword [esp + 0x60]
and esi, ebp
or esi, edi
or esi, dword [esp + 0x1f0]
cmp cl, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x78]
and ebp, ebx
or dword [esp + 0x1ec], ebp
mov dword [esp + 0x1f0], esi
movzx ebx, byte [esp + 0x1f4]
add ebx, 0xffffffe0
mov byte [esp + 0x1f4], bl
add dword [esp + 0x1e8], 0xfffffffc
movzx ebx, byte [esp + 0x210]
nop
cmp bl, 0x20
jb 0x648a97
mov ebp, dword [esp + 0x200]
mov ecx, dword [esp + 0x204]
cmp ebp, ecx
jb 0x649bb2
lea esi, [ecx - 4]
cmp ecx, esi
jb 0x649bab
sub ebp, ecx
add ebp, 4
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and esi, ebp
cmp edi, 4
jb 0x649b9f
mov ebp, dword [esp + 0x1f8]
mov ebp, dword [ebp + esi]
mov dword [esp + 0x78], ebp
lea ecx, [ebx - 0x40]
mov byte [esp + 0x35], cl
mov esi, ebp
shl ebp, cl
mov dword [esp + 0x60], ebp
mov edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ecx, edi
shr esi, cl
add ebx, 0xffffffe0
mov ecx, ebx
mov ebp, dword [esp + 0x78]
shl ebp, cl
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and edi, esi
cmp cl, 0x20
sbb ebx, ebx
and ebp, ebx
movzx ebx, byte [esp + 0x35]
cmp bl, 0x20
sbb ebx, ebx
mov esi, dword [esp + 0x60]
and ebx, esi
or ebx, edi
or ebx, dword [esp + 0x20c]
or dword [esp + 0x208], ebp
mov dword [esp + 0x20c], ebx
movzx ebx, byte [esp + 0x210]
add ebx, 0xffffffe0
mov byte [esp + 0x210], bl
add dword [esp + 0x204], 0xfffffffc
movzx ebx, byte [esp + 0x33]
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 + 0x80], esi
lea edi, [ebx - 0x7f]
xchg edi, eax
movzx eax, al
xchg edi, eax
mov dword [esp + 0x7c], edi
lea ecx, [ebx - 0x3f]
movzx ecx, cl
mov dword [esp + 0x74], ecx
lea ecx, [ebx - 0x7e]
movzx ecx, cl
mov dword [esp + 0x70], ecx
lea ecx, [ebx - 0x3e]
movzx ecx, cl
mov dword [esp + 0x6c], ecx
lea ecx, [ebx - 0x7d]
movzx ecx, cl
mov dword [esp + 0x68], ecx
lea ecx, [ebx - 0x3d]
movzx ecx, cl
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x1f0]
shr ecx, 0x18
mov dword [esp + 0x78], ecx
mov ecx, eax
mov edi, dword [esp + 0x78]
xchg edi, eax
shr al, cl
xchg edi, eax
xchg edi, eax
movzx eax, al
xchg edi, eax
movzx edi, word [edx + edi*2]
mov word [esp + 0x38], di
shr di, 8
movzx esi, word [esp + 0x38]
and esi, 0x3f
lea edx, [esi - 0x20]
mov byte [esp + 0x35], dl
neg edx
xchg edi, eax
mov byte [esp + ebp + 0x94], al
xchg edi, eax
movzx ebp, byte [esp + 0x1f4]
movzx edi, word [esp + 0x38]
add ebp, edi
nop
xchg ebp, eax
mov byte [esp + 0x1f4], al
xchg ebp, eax
mov ebp, dword [esp + 0x1ec]
mov dword [esp + 0x78], ebp
mov edi, dword [esp + 0x1f0]
mov ecx, esi
shl ebp, cl
mov dword [esp + 0x60], ebp
mov ecx, edx
mov ebp, dword [esp + 0x78]
shr ebp, cl
mov ecx, esi
shl edi, cl
mov dword [esp + 0x5c], edi
movzx ecx, byte [esp + 0x35]
mov edi, dword [esp + 0x78]
shl edi, cl
add ebx, 4
mov byte [esp + 0x35], bl
cmp cl, 0x20
sbb ecx, ecx
and edi, ecx
cmp dl, 0x20
sbb ecx, ecx
and ebp, ecx
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
mov ebx, dword [esp + 0x60]
and ebx, esi
mov dword [esp + 0x1ec], ebx
mov ebx, dword [esp + 0x5c]
and ebx, esi
or ebx, ebp
or edi, ebx
mov dword [esp + 0x1f0], edi
mov ebx, dword [esp + 0x20c]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
mov ebp, dword [esp + 0x1a0]
movzx ebx, word [ebp + ebx*2]
mov esi, ebx
shr bx, 8
mov edi, esi
and esi, 0x3f
lea edx, [esi - 0x20]
mov byte [esp + 0x34], dl
neg edx
mov ebp, dword [esp + 0x80]
mov byte [esp + ebp + 0x94], bl
movzx ebx, byte [esp + 0x210]
add ebx, edi
nop
mov byte [esp + 0x210], bl
mov ebx, dword [esp + 0x208]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x20c]
mov ecx, esi
mov edi, ebx
shl ebx, cl
movzx ecx, byte [esp + 0x34]
shl edi, cl
mov dword [esp + 0x60], edi
mov ecx, edx
mov edi, dword [esp + 0x78]
shr edi, cl
mov ecx, esi
shl ebp, cl
cmp cl, 0x20
sbb esi, esi
and ebp, esi
and ebx, esi
mov dword [esp + 0x208], ebx
cmp dl, 0x20
sbb ebx, ebx
and edi, ebx
or edi, ebp
movzx ebx, byte [esp + 0x34]
cmp bl, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x60]
and ebp, ebx
or ebp, edi
mov dword [esp + 0x20c], ebp
mov ebx, dword [esp + 0x1f0]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
mov ebp, dword [esp + 0x1a0]
movzx ebx, word [ebp + ebx*2]
mov esi, ebx
shr bx, 8
mov edi, esi
and esi, 0x3f
lea edx, [esi - 0x20]
mov byte [esp + 0x34], dl
neg edx
mov ebp, dword [esp + 0x7c]
mov byte [esp + ebp + 0x94], bl
movzx ebx, byte [esp + 0x1f4]
add ebx, edi
nop
mov byte [esp + 0x1f4], bl
mov ebx, dword [esp + 0x1ec]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x1f0]
mov ecx, edx
mov edi, ebx
shr ebx, cl
movzx ecx, byte [esp + 0x34]
shl edi, cl
mov dword [esp + 0x60], edi
mov ecx, esi
shl ebp, cl
mov edi, dword [esp + 0x78]
shl edi, cl
cmp cl, 0x20
sbb esi, esi
and edi, esi
mov dword [esp + 0x1ec], edi
and ebp, esi
cmp dl, 0x20
sbb esi, esi
and ebx, esi
or ebp, ebx
movzx ebx, byte [esp + 0x34]
cmp bl, 0x20
sbb ebx, ebx
mov esi, dword [esp + 0x60]
and esi, ebx
or esi, ebp
mov dword [esp + 0x1f0], esi
mov ebx, dword [esp + 0x20c]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
mov ebp, dword [esp + 0x1a0]
movzx ebx, word [ebp + ebx*2]
mov esi, ebx
shr bx, 8
mov edi, esi
and esi, 0x3f
lea edx, [esi - 0x20]
mov byte [esp + 0x34], dl
neg edx
mov ebp, dword [esp + 0x74]
mov byte [esp + ebp + 0x94], bl
movzx ebx, byte [esp + 0x210]
add ebx, edi
nop
mov byte [esp + 0x210], bl
mov ebx, dword [esp + 0x208]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x20c]
mov ecx, esi
mov edi, ebx
shl ebx, cl
mov dword [esp + 0x60], ebx
movzx ecx, byte [esp + 0x34]
shl edi, cl
mov ecx, edx
mov ebx, dword [esp + 0x78]
shr ebx, cl
mov ecx, esi
shl ebp, cl
mov dword [esp + 0x78], ebp
movzx ebp, byte [esp + 0x34]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and edi, ebp
cmp dl, 0x20
sbb ebp, ebp
and ebx, ebp
cmp cl, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x78]
and esi, ebp
or ebx, esi
or edi, ebx
mov ebx, dword [esp + 0x60]
and ebx, ebp
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], edi
mov ebx, dword [esp + 0x1f0]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
mov ebp, dword [esp + 0x1a0]
movzx ebx, word [ebp + ebx*2]
mov esi, ebx
shr bx, 8
mov edi, esi
and esi, 0x3f
lea edx, [esi - 0x20]
mov byte [esp + 0x34], dl
neg edx
mov ebp, dword [esp + 0x70]
mov byte [esp + ebp + 0x94], bl
movzx ebx, byte [esp + 0x1f4]
add ebx, edi
nop
mov byte [esp + 0x1f4], bl
mov ebx, dword [esp + 0x1ec]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x1f0]
mov ecx, esi
mov edi, ebx
shl ebx, cl
movzx ecx, byte [esp + 0x34]
shl edi, cl
mov dword [esp + 0x60], edi
mov ecx, edx
mov edi, dword [esp + 0x78]
shr edi, cl
mov ecx, esi
shl ebp, cl
cmp cl, 0x20
sbb esi, esi
and ebp, esi
and ebx, esi
mov dword [esp + 0x1ec], ebx
movzx ebx, byte [esp + 0x34]
cmp bl, 0x20
sbb ebx, ebx
mov esi, dword [esp + 0x60]
and esi, ebx
cmp dl, 0x20
sbb ebx, ebx
and edi, ebx
or edi, ebp
or esi, edi
mov dword [esp + 0x1f0], esi
mov ebx, dword [esp + 0x20c]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
mov ebp, dword [esp + 0x1a0]
movzx ebx, word [ebp + ebx*2]
mov esi, ebx
shr bx, 8
mov edi, esi
and esi, 0x3f
lea edx, [esi - 0x20]
mov byte [esp + 0x34], dl
neg edx
mov ebp, dword [esp + 0x6c]
mov byte [esp + ebp + 0x94], bl
movzx ebx, byte [esp + 0x210]
add ebx, edi
nop
mov byte [esp + 0x210], bl
mov ebx, dword [esp + 0x208]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x20c]
mov ecx, esi
mov edi, ebx
shl ebx, cl
mov dword [esp + 0x60], ebx
movzx ecx, byte [esp + 0x34]
shl edi, cl
mov ecx, edx
mov ebx, dword [esp + 0x78]
shr ebx, cl
mov ecx, esi
shl ebp, cl
mov dword [esp + 0x78], ebp
movzx ebp, byte [esp + 0x34]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and edi, ebp
cmp dl, 0x20
sbb ebp, ebp
and ebx, ebp
cmp cl, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x60]
and esi, ebp
mov dword [esp + 0x208], esi
mov esi, dword [esp + 0x78]
and esi, ebp
or ebx, esi
or edi, ebx
mov dword [esp + 0x20c], edi
mov ebx, dword [esp + 0x1f0]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
mov ebp, dword [esp + 0x1a0]
movzx ebx, word [ebp + ebx*2]
mov esi, ebx
shr bx, 8
mov edi, esi
and esi, 0x3f
lea edx, [esi - 0x20]
mov byte [esp + 0x34], dl
neg edx
mov ebp, dword [esp + 0x68]
mov byte [esp + ebp + 0x94], bl
movzx ebx, byte [esp + 0x1f4]
add ebx, edi
nop
mov byte [esp + 0x1f4], bl
mov ebx, dword [esp + 0x1ec]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x1f0]
mov ecx, esi
mov edi, ebx
shl ebx, cl
movzx ecx, byte [esp + 0x34]
shl edi, cl
mov dword [esp + 0x60], edi
mov ecx, edx
mov edi, dword [esp + 0x78]
shr edi, cl
mov ecx, esi
shl ebp, cl
cmp cl, 0x20
sbb esi, esi
and ebx, esi
mov dword [esp + 0x1ec], ebx
and ebp, esi
movzx ebx, byte [esp + 0x34]
cmp bl, 0x20
sbb ebx, ebx
mov esi, dword [esp + 0x60]
and esi, ebx
cmp dl, 0x20
sbb ebx, ebx
and edi, ebx
or ebp, edi
or esi, ebp
mov dword [esp + 0x1f0], esi
mov ebx, dword [esp + 0x20c]
shr ebx, 0x18
mov ecx, eax
shr bl, cl
movzx ebx, bl
mov ebp, dword [esp + 0x1a0]
movzx ebx, word [ebp + ebx*2]
mov esi, ebx
shr bx, 8
mov edi, esi
and esi, 0x3f
lea edx, [esi - 0x20]
mov byte [esp + 0x34], dl
neg edx
mov ebp, dword [esp + 0x64]
mov byte [esp + ebp + 0x94], bl
movzx ebx, byte [esp + 0x210]
add ebx, edi
nop
mov byte [esp + 0x210], bl
mov ebx, dword [esp + 0x208]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x20c]
mov ecx, esi
mov edi, ebx
shl ebx, cl
mov dword [esp + 0x60], ebx
movzx ecx, byte [esp + 0x34]
shl edi, cl
mov ecx, edx
mov ebx, dword [esp + 0x78]
shr ebx, cl
mov ecx, esi
shl ebp, cl
mov dword [esp + 0x78], ebp
movzx ebp, byte [esp + 0x34]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and edi, ebp
cmp dl, 0x20
sbb ebp, ebp
and ebx, ebp
cmp cl, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x60]
and esi, ebp
mov dword [esp + 0x208], esi
mov esi, dword [esp + 0x78]
and esi, ebp
or esi, ebx
or edi, esi
mov dword [esp + 0x20c], edi
movzx ebx, byte [esp + 0x33]
cmp bl, 0x3c
jne 0x649240
mov ebx, dword [esp + 0x50]
cmp ebx, 0x40
jl 0x6492b6
mov ecx, dword [esp + 0x40]
cmp ecx, 0x40
jle 0x6490d0
mov edx, 0x40
jmp 0x6490d2
mov edx, ecx
mov ebp, dword [esp + 0x194]
lea esi, [esp + 0x94]
cmp ebp, esi
je 0x64910f
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.00468df0
movzx eax, byte [esp + 0x32]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x194]
lea esi, [esp + 0x94]
cmp ecx, ebx
jb 0x649b98
mov edi, ecx
sub edi, ebx
mov edx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ebx
add edi, ebp
cmp edx, 0x40
jle 0x649134
mov edx, 0x40
lea esi, [esp + 0xd4]
cmp esi, edi
je 0x649163
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.00468df0
movzx eax, byte [esp + 0x32]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x194]
mov esi, ebx
shl ebx, 1
cmp ecx, ebx
jb 0x649b91
mov edi, ecx
sub edi, ebx
mov edx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and ebx, edi
add ebx, ebp
cmp edx, 0x40
jle 0x64918c
mov edx, 0x40
lea edi, [esp + 0x114]
cmp edi, ebx
je 0x6491bb
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], edx
call fcn.00468df0
movzx eax, byte [esp + 0x32]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x194]
mov esi, dword [esp + 0x50]
lea ebx, [esi + esi*2]
cmp ecx, ebx
jb 0x649b8a
mov edi, ecx
sub ecx, ebx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, ebx
add ecx, ebp
cmp edx, 0x40
jle 0x6491df
mov edx, 0x40
lea esi, [esp + 0x154]
cmp esi, ecx
je 0x649218
mov dword [esp + 0x80], ebx
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.00468df0
movzx eax, byte [esp + 0x32]
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x194]
mov edi, dword [esp + 0x40]
lea esi, [edi - 0x40]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 0x40
add ebp, esi
cmp ebx, edi
jg 0x649259
mov esi, dword [esp + 0x54]
add esi, 0x100
xor ecx, ecx
jmp 0x648049
movzx ecx, byte [esp + 0x35]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x194]
mov esi, dword [esp + 0x54]
jmp 0x648049
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 + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x240], ecx
mov dword [esp + 0x244], eax
add esp, 0x214
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 + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x240], ecx
mov dword [esp + 0x244], eax
add esp, 0x214
ret
movzx edi, byte [esp + 0x33]
xchg edi, eax
test al, al
xchg edi, eax
jbe 0x649590
xchg edi, eax
movzx eax, al
xchg edi, eax
lea edx, [ebp + ebp*2]
lea esi, [edi + edx]
cmp ebx, esi
jl 0x649533
cmp edi, 0x100
ja 0x649b7e
mov dword [esp + 0x48], edi
cmp ebx, edi
jg 0x64934c
mov edi, ebx
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], esi
lea esi, [esp + 0x94]
cmp ecx, esi
je 0x64938d
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
call fcn.00468df0
movzx eax, byte [esp + 0x32]
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
lea edi, [ebp + esi]
cmp ebx, edi
jb 0x649b75
cmp ebp, edi
ja 0x649b6c
mov edi, ebx
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebx, ebp
add ebx, ecx
cmp esi, 0x40
jle 0x6493d1
mov byte [esp + 0x8c], al
mov eax, 0x40
mov dword [esp + 0x74], eax
movzx eax, byte [esp + 0x8c]
jmp 0x6493d5
mov dword [esp + 0x74], esi
lea edi, [esp + 0xd4]
cmp edi, ebx
je 0x64940f
mov dword [esp], ebx
mov dword [esp + 4], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 8], eax
call fcn.00468df0
movzx eax, byte [esp + 0x32]
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
lea ebx, [esi + ebp*2]
mov edi, dword [esp + 0x40]
cmp edi, ebx
jb 0x649b63
shl ebp, 1
cmp ebx, ebp
jb 0x649b5a
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 0x649445
mov edi, 0x40
jmp 0x649447
mov edi, esi
lea esi, [esp + 0x114]
cmp esi, ebp
je 0x649487
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
call fcn.00468df0
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x7c]
cmp edx, ecx
movzx eax, byte [esp + 0x32]
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x40]
mov ebp, ecx
mov ecx, dword [esp + 0x194]
jmp 0x64948d
mov ebp, dword [esp + 0x7c]
cmp ebx, ebp
jb 0x649b51
cmp edx, ebp
ja 0x649b48
mov ebp, ebx
sub ebx, edx
neg ebx
sar ebx, 0x1f
and edx, ebx
lea ebx, [ecx + edx]
mov esi, dword [esp + 0x48]
cmp esi, 0x40
jle 0x6494b9
mov edx, 0x40
jmp 0x6494bb
mov edx, esi
lea edi, [esp + 0x154]
cmp edi, ebx
je 0x6494f2
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], edx
call fcn.00468df0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
cmp ecx, eax
mov ebp, ecx
mov esi, eax
movzx eax, byte [esp + 0x32]
mov ecx, dword [esp + 0x194]
jmp 0x6494f4
cmp ebp, esi
mov ebx, dword [esp + 0x54]
lea ebx, [ebx + esi*4]
jb 0x649b3f
sub ebp, esi
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, esi
add ecx, ebp
mov edx, dword [esp + 0x224]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x1a0]
mov edx, ebx
mov ebx, edi
mov edi, edx
mov edx, dword [esp + 0x224]
jmp 0x649594
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 + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x240], ecx
mov dword [esp + 0x244], eax
add esp, 0x214
ret
mov edi, dword [esp + 0x54]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x194], ecx
mov byte [esp + 0x84], al
xor eax, eax
mov dword [esp + 0x4c], eax
movzx eax, byte [esp + 0x84]
jmp 0x6495da
mov edx, dword [esp + 0x4c]
inc edx
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x4c], edx
mov edi, esi
mov edx, dword [esp + 0x224]
mov esi, dword [esp + 0x1a0]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x4c]
cmp edi, 4
jge 0x64968f
imul edx, edi, 0x1c
mov dword [esp + 0x80], edx
mov ecx, dword [esp + edx + 0x1b0]
movzx esi, byte [esp + edx + 0x1bc]
add esi, 0xffffffc0
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg esi, eax
movzx eax, al
xchg esi, eax
imul edi, ebp
mov dword [esp + 0x44], edi
lea ebp, [esp + edx + 0x1a4]
mov dword [esp + 0x198], ebp
lea esi, [esi + ecx*8]
mov ecx, dword [esp + 0x1a0]
jmp 0x649769
mov ebp, dword [esp + 0x44]
sub edi, ebp
lea ebp, [esp + edx + 0x1bc]
mov esi, dword [esp + 0x54]
add esi, edi
mov dword [esp + edx + 0x1a8], 0
mov dword [esp + edx + 0x1ac], 0
mov dword [esp + edx + 0x1a4], 0
cmp byte [ebp], 0x40
jbe 0x64967e
mov ebp, dword [0x9a3bd8]
mov edi, dword [0x9a3bdc]
jmp 0x649682
xor ebp, ebp
xor edi, edi
test ebp, ebp
je 0x6495b6
jmp 0x6499b9
mov eax, dword [esp + 0x54]
cmp edx, eax
je 0x6496f4
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 + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x240], ecx
mov dword [esp + 0x244], eax
add esp, 0x214
ret
mov eax, dword [esp + 0x21c]
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], edx
mov dword [esp + 0x23c], edx
mov dword [esp + 0x240], 0
mov dword [esp + 0x244], 0
add esp, 0x214
ret
movzx ebp, word [esp + 0x36]
shr bp, 8
mov esi, dword [esp + 0x194]
xchg ebp, ebx
mov byte [esi + eax], bl
xchg ebp, ebx
lea edi, [eax + 1]
mov eax, dword [esp + 0x1a0]
movzx ebp, byte [esp + 0x32]
mov eax, ebp
mov ecx, dword [esp + 0x1a0]
mov ebp, dword [esp + 0x198]
mov esi, ebx
mov ebx, dword [esp + 0x3c]
test esi, esi
jle 0x649636
mov dword [esp + 0x58], esi
mov ebp, dword [esp + edx + 0x1b0]
test ebp, ebp
jne 0x649794
lea esi, [esp + edx + 0x1bc]
cmp byte [esi], 0x40
jae 0x649977
mov esi, dword [esp + 0x58]
mov dword [esp + 0x7c], edi
movzx esi, byte [esp + edx + 0x1bc]
xchg esi, eax
cmp al, 0x38
xchg esi, eax
jb 0x649896
cmp ebp, 4
jb 0x649aef
mov ecx, dword [esp + edx + 0x1a8]
lea eax, [ebp - 4]
mov ebx, dword [esp + edx + 0x1a4]
mov edi, dword [esp + edx + 0x1ac]
cmp ecx, eax
jb 0x649b3a
sub edi, ebp
lea ebp, [edi + 4]
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and eax, ebp
cmp edi, 4
jb 0x649b2e
mov ebx, dword [eax + ebx]
mov dword [esp + 0x78], ebx
lea ebp, [esp + edx + 0x1b4]
mov dword [esp + 0x19c], ebp
lea ecx, [esi - 0x40]
mov byte [esp + 0x35], cl
mov edi, ebx
shl ebx, cl
mov eax, ecx
neg eax
mov ecx, eax
shr edi, cl
add esi, 0xffffffe0
mov ecx, esi
mov ebp, dword [esp + 0x78]
shl ebp, cl
lea edx, [esp + edx + 0x1b0]
cmp cl, 0x20
sbb esi, esi
and esi, ebp
cmp al, 0x20
sbb ebp, ebp
and ebp, edi
movzx edi, byte [esp + 0x35]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and edi, ebx
or edi, ebp
mov ebx, dword [esp + 0x198]
or edi, dword [ebx + 0x14]
mov ebp, dword [esp + 0x19c]
or dword [ebp], esi
mov ebp, dword [esp + 0x80]
mov dword [esp + ebp + 0x1b8], edi
movzx esi, byte [esp + ebp + 0x1bc]
add esi, 0xffffffe0
xchg esi, eax
mov byte [esp + ebp + 0x1bc], al
xchg esi, eax
add dword [edx], 0xfffffffc
movzx eax, byte [esp + 0x32]
mov ecx, dword [esp + 0x1a0]
mov edx, ebp
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x7c]
cmp edi, ebx
jge 0x6499ef
mov ebp, dword [esp + edx + 0x1b8]
shr ebp, 0x18
mov esi, ecx
mov ecx, eax
xchg ebp, eax
shr al, cl
xchg ebp, eax
xchg ebp, eax
movzx eax, al
xchg ebp, eax
movzx ebp, word [esi + ebp*2]
mov word [esp + 0x36], bp
xchg ebp, eax
movzx esi, al
xchg ebp, eax
movzx eax, byte [esp + edx + 0x1bc]
add eax, ebp
and ebp, 0x3f
lea ecx, [ebp - 0x20]
mov byte [esp + 0x35], cl
neg ecx
mov byte [esp + 0x34], cl
nop
mov byte [esp + edx + 0x1bc], al
mov eax, dword [esp + edx + 0x1b4]
mov dword [esp + 0x78], eax
mov ebx, dword [esp + edx + 0x1b8]
mov ecx, ebp
shl ebx, cl
mov dword [esp + 0x60], ebx
movzx ecx, byte [esp + 0x34]
shr eax, cl
movzx ecx, byte [esp + 0x35]
mov edi, dword [esp + 0x78]
shl edi, cl
mov ecx, ebp
mov ebx, dword [esp + 0x78]
shl ebx, cl
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x58]
sub ebx, esi
movzx esi, byte [esp + 0x34]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and eax, esi
movzx esi, byte [esp + 0x35]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and edi, esi
cmp cl, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x60]
and esi, ebp
or eax, esi
or edi, eax
mov esi, dword [esp + 0x78]
and esi, ebp
mov dword [esp + edx + 0x1b4], esi
mov dword [esp + edx + 0x1b8], edi
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jb 0x64972d
jmp 0x649a4c
mov eax, dword [0x9a3bd8]
mov ecx, dword [0x9a3bdc]
mov dword [esp + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], ecx
add esp, 0x214
ret
mov dword [esp + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
mov dword [esp + 0x240], ebp
mov dword [esp + 0x244], edi
add esp, 0x214
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 + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
lea ecx, [0x7aaeb4]
mov dword [esp + 0x240], ecx
mov dword [esp + 0x244], eax
add esp, 0x214
ret
call fcn.004684c0
movzx ebp, byte [ebp + edi - 1]
mov dword [esp + 0x78], ebp
movzx esi, byte [esp + edx + 0x1bc]
lea ecx, [esi - 0x28]
mov byte [esp + 0x35], cl
mov edi, ebp
shl ebp, cl
mov dword [esp + 0x60], ebp
neg ecx
mov byte [esp + 0x34], cl
shr edi, cl
add esi, 0xfffffff8
mov ecx, esi
mov ebp, dword [esp + 0x78]
shl ebp, cl
cmp cl, 0x20
sbb esi, esi
and esi, ebp
or dword [ebx], esi
movzx ebp, byte [esp + 0x34]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and edi, ebp
movzx ebp, byte [esp + 0x35]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
mov esi, dword [esp + 0x60]
and ebp, esi
or edi, ebp
or edi, eax
mov dword [esp + edx + 0x1b8], edi
movzx ebp, byte [esp + edx + 0x1bc]
add ebp, 0xfffffff8
xchg ebp, eax
mov byte [esp + edx + 0x1bc], al
xchg ebp, eax
mov ebp, dword [esp + edx + 0x1b0]
dec ebp
mov dword [esp + edx + 0x1b0], ebp
movzx eax, byte [esp + 0x32]
mov ecx, dword [esp + 0x1a0]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x7c]
mov ebp, dword [esp + edx + 0x1b0]
test ebp, ebp
jbe 0x649896
mov esi, dword [esp + edx + 0x1a8]
lea ecx, [ebp - 1]
mov eax, dword [esp + edx + 0x1b8]
lea ebx, [esp + edx + 0x1b4]
mov edi, dword [esp + edx + 0x1a4]
cmp esi, ecx
ja 0x649a51
mov eax, ecx
mov ecx, esi
call fcn.004684d0
mov ecx, 4
mov edx, edi
call fcn.00468500
call fcn.00468530
mov eax, esi
mov ecx, ebp
call fcn.00468520
mov eax, edx
mov ecx, ebp
call fcn.00468520
mov ecx, ebp
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
mov eax, ebx
call fcn.00468520
mov ecx, 4
mov edx, edi
call fcn.00468500
mov eax, esi
call fcn.00468530
mov edx, ebp
call fcn.00468510
mov ecx, 4
mov edx, edi
call fcn.00468500
mov eax, esi
call fcn.00468530
mov edx, ebp
call fcn.00468510
mov ecx, 4
call fcn.00468500
mov eax, ebx
call fcn.00468530
call fcn.00468510
mov ecx, 4
call fcn.00468500
mov eax, ebx
call fcn.00468530
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
call fcn.00468500
mov eax, ebp
call fcn.004684c0
mov eax, ebp
call fcn.004684c0
nop
call fcn.00467050
jmp fcn.00647d30