Function at 0x643500
Capabilities:
Reference http user-agent string
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x70]
cmp eax, dword [ecx + 8]
jbe 0x644c09
sub esp, 0xf0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x73a4b5]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.004d10d0
movzx eax, byte [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
test al, al
je 0x6438b7
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x94], ebx
test eax, eax
jne 0x6435ae
xor ebp, ebp
jmp 0x6435e2
mov dword [esp], ebx
mov dword [esp + 4], eax
lea ecx, [0x758c14]
mov dword [esp + 8], ecx
call fcn.004d00e0
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x94]
mov ebp, eax
mov eax, dword [esp + 0x44]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x64389a
test ecx, ecx
jne 0x6435f4
xor ebp, ebp
jmp 0x643628
mov dword [esp], edx
mov dword [esp + 4], ecx
lea eax, [0x758c14]
mov dword [esp + 8], eax
call fcn.004d00e0
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x94]
mov ebp, eax
mov eax, dword [esp + 0x44]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x64389a
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004cfb30
mov eax, dword [esp + 0xb0]
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
je 0x643662
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x643670
jmp 0x644bf0
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ecx + ebx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x6436d4
mov dword [esp + 0x68], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x8c], edx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0xac], esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004697f0
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb0]
nop
nop
test eax, eax
je 0x643736
lea ecx, [esp + 0xb0]
cmp eax, ecx
je 0x643744
jmp 0x644bd8
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
inc ecx
mov edx, dword [esp + 0xb4]
cmp eax, ecx
jae 0x64379a
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ecx
mov byte [ecx + edx - 1], 0x2f
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
call fcn.004cfb30
mov eax, dword [esp + 0xb0]
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
je 0x6437de
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x6437ec
jmp 0x644bc0
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ecx + ebx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x643850
mov dword [esp + 0x68], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x88], edx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0xac], esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004697f0
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
jmp 0x6439e4
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xf0
ret
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x643a5f
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x758c14]
mov dword [esp + 8], edx
call fcn.004d00e0
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x643a5f
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
call fcn.004cfb30
mov eax, dword [esp + 0xb0]
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
je 0x64392d
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x64393b
jmp 0x644ba8
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ecx + ebx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x64399f
mov dword [esp + 0x68], ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x90], edx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0xac], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004697f0
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x6439f3
mov ecx, dword [eax]
jmp 0x6439f5
xor ecx, ecx
mov dword [esp + 0x50], ecx
lea eax, [0x6f44e0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
call fcn.0044e560
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa8], eax
lea edi, [esp + 0xc0]
xor eax, eax
call fcn.004690f4
lea eax, [0x6f7340]
mov dword [esp], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 4], ecx
lea edx, [esp + 0xc0]
mov dword [esp + 8], edx
call fcn.0040e110
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xa8]
xor edx, edx
jmp 0x643a9c
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xf0
ret
mov dword [esi], ebp
lea eax, [esp + 0xc0]
mov dword [esp], eax
call fcn.0040e350
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xc0]
test ebx, ebx
je 0x643b31
inc edx
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
cmp eax, edx
jae 0x643af9
mov dword [esp + 0x58], ebx
mov dword [esp + 0xa0], ebp
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6f44e0]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
lea esi, [ecx + edx*8 - 4]
mov dword [esi], ebx
mov ebx, dword [0x995310]
lea esi, [ecx + edx*8 - 8]
test ebx, ebx
je 0x643a7c
call fcn.00468e70
mov dword [edi], ebp
mov ebx, dword [esi]
mov dword [edi + 4], ebx
jmp 0x643a7c
mov dword [esp + 0x4c], edx
mov dword [esp + 0xa4], ecx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00409dc0
mov eax, dword [esp + 0xc]
lea ecx, [0x7b2220]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00494e10
xor eax, eax
jmp 0x643b6d
mov ecx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jge 0x6441e1
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0xa4]
lea edx, [ecx + eax*8]
mov ebx, dword [edx + 4]
mov dword [esp + 0x54], ebx
mov edx, dword [edx]
mov dword [esp + 0x9c], edx
lea ebp, [0x6f7340]
mov dword [esp], ebp
mov esi, dword [esp + 0xfc]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.004109f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb0]
mov edx, dword [eax + 4]
mov eax, dword [eax]
nop
nop
test ecx, ecx
je 0x643bde
lea ebx, [esp + 0xb0]
cmp ecx, ebx
je 0x643bec
jmp 0x644b90
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp ecx, ebx
jae 0x643c52
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x3b
mov ecx, dword [esp + 0xb0]
nop
nop
test ecx, ecx
je 0x643c7b
lea ebx, [esp + 0xb0]
cmp ecx, ebx
je 0x643c89
jmp 0x644b78
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp ecx, ebx
jae 0x643ce7
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x20
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x6441c4
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea edx, [0x758c14]
mov dword [esp + 8], edx
call fcn.004d00e0
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x6441c4
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.004cfb30
mov eax, dword [esp + 0xb0]
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
je 0x643d63
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x643d71
jmp 0x644b60
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ebx + ecx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x643dd5
mov dword [esp + 0x30], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x64], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0xac], esi
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebp
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004697f0
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
xor edx, edx
jmp 0x64421c
cmp edx, eax
jge 0x643ecb
mov ebx, dword [esp + 0xb0]
nop
nop
test ebx, ebx
je 0x643e4f
lea ebp, [esp + 0xb0]
cmp ebx, ebp
je 0x643e5d
jmp 0x644b48
lea ebx, [esp + 0xb0]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
inc ebp
mov esi, dword [esp + 0xb4]
cmp ebx, ebp
jae 0x643ebf
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], esi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esp + 0xb8], ebp
mov byte [ebp + esi - 1], 0x2a
mov ebx, dword [esp + 0xb0]
nop
nop
test ebx, ebx
je 0x643ee8
lea ebp, [esp + 0xb0]
cmp ebx, ebp
je 0x643ef6
jmp 0x644b30
lea ebx, [esp + 0xb0]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
inc ebp
mov esi, dword [esp + 0xb4]
cmp ebx, ebp
jb 0x643f14
cmp edx, eax
jmp 0x643f60
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], esi
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
mov eax, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xb8], ebp
mov byte [ebp + esi - 1], 0x3d
jge 0x644023
mov edx, dword [esp + 0xb0]
nop
test edx, edx
je 0x643f8e
lea ebx, [esp + 0xb0]
cmp edx, ebx
je 0x643f9c
jmp 0x644b18
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xb8]
lea ebx, [edx + 7]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0xb4]
cmp ebp, ebx
jae 0x643ff6
mov dword [esp + 0x64], edx
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 7
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esi + edx], 0x2d667475
mov dword [esi + edx + 3], 0x2727382d
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xb4], esi
xor edx, edx
xor ebx, ebx
jmp 0x644625
test eax, eax
jne 0x64402b
xor edx, edx
jmp 0x644054
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x758c14]
mov dword [esp + 8], edx
call fcn.004d00e0
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov ecx, dword [esp + 0x6c]
mov edx, eax
mov eax, dword [esp + 0x28]
test dl, dl
jne 0x6440f9
mov edx, dword [esp + 0xb0]
nop
test edx, edx
je 0x644078
lea ebx, [esp + 0xb0]
cmp edx, ebx
je 0x644086
jmp 0x64460c
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp edx, ebx
jae 0x6440e4
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x22
xor edx, edx
xor ebx, ebx
jmp 0x644288
mov edx, dword [esp + 0xb0]
nop
nop
test edx, edx
je 0x644116
lea ebx, [esp + 0xb0]
cmp edx, ebx
je 0x644124
jmp 0x64426f
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [eax + ebx]
mov esi, dword [esp + 0xb4]
cmp edx, ebp
jae 0x64417a
mov dword [esp + 0x64], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x6f4820]
mov dword [esp + 0x10], ecx
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], ebp
mov dword [esp + 0xac], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004697f0
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
jmp 0x643b66
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xf0
ret
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
mov edx, ecx
neg ecx
cmp eax, ecx
ja 0x64420c
mov dword [esp + 0x100], edx
mov dword [esp + 0x104], eax
add esp, 0xf0
ret
test edx, edx
je 0x644215
call fcn.0045ff10
call fcn.0045ff50
mov edx, ebp
mov dword [esp + 0x64], edx
cmp edx, eax
jge 0x643e2c
movzx ebx, byte [ecx + edx]
cmp ebx, 0x80
jge 0x644239
lea ebp, [edx + 1]
jmp 0x64425d
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004600b0
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
lea esi, [ebx - 0x20]
cmp esi, 0x5e
jbe 0x64421a
cmp ebx, 9
je 0x64421a
jmp 0x643e2a
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
inc edx
cmp edx, eax
jge 0x64442a
movzx ebp, byte [edx + ecx]
xchg ebp, eax
cmp al, 0x22
xchg ebp, eax
je 0x6442a2
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
jne 0x644287
cmp ebx, edx
ja 0x644603
mov ebp, edx
sub edx, ebx
mov esi, edx
neg edx
sar edx, 0x1f
and ebx, edx
mov edx, dword [esp + 0xb0]
add ebx, ecx
nop
test edx, edx
je 0x6442d5
lea edi, [esp + 0xb0]
cmp edx, edi
je 0x6442e3
jmp 0x6445eb
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov dword [esp + 0x64], ebp
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
lea ecx, [esi + edi]
mov eax, dword [esp + 0xb4]
cmp edx, ecx
jae 0x644345
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x78], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x60], edx
mov dword [esp + 0xac], eax
mov dword [esp + 0x5c], ecx
lea ebp, [eax + edi]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.004697f0
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb0]
nop
test eax, eax
je 0x6443a7
lea edx, [esp + 0xb0]
cmp eax, edx
je 0x6443b5
jmp 0x6445d3
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp edx, ebx
jae 0x64440b
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x5c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov ebx, edx
jmp 0x644287
cmp ebx, eax
ja 0x6445ca
sub eax, ebx
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
mov eax, dword [esp + 0xb0]
add ecx, ebx
nop
test eax, eax
je 0x64445b
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x644469
jmp 0x6445b2
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ebx + edx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x6444c7
mov dword [esp + 0x64], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x60], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebp
mov dword [esp + 0xac], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004697f0
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb0]
nop
test eax, eax
je 0x644525
lea ecx, [esp + 0xb0]
cmp eax, ecx
je 0x644533
jmp 0x64459a
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
inc ecx
mov edx, dword [esp + 0xb4]
cmp eax, ecx
jae 0x644589
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ecx
mov byte [ecx + edx - 1], 0x22
jmp 0x643b66
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
mov ecx, eax
mov eax, ebx
call fcn.00468f30
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
mov eax, ebx
mov ecx, edx
call fcn.00468f30
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
inc edx
cmp edx, eax
jge 0x6449a7
mov dword [esp + 0x48], edx
movzx ebp, byte [edx + ecx]
xchg ebp, eax
mov byte [esp + 0x25], al
xchg ebp, eax
lea esi, [ebp - 0x21]
xchg esi, eax
cmp al, 0x5e
xchg esi, eax
jb 0x64464c
mov esi, 1
jmp 0x6446bc
xchg ebp, eax
cmp al, 0x2a
xchg ebp, eax
jne 0x64465a
mov esi, 1
jmp 0x6446bc
xchg ebp, eax
cmp al, 0x27
xchg ebp, eax
jne 0x644668
mov esi, 1
jmp 0x6446bc
xchg ebp, eax
cmp al, 0x25
xchg ebp, eax
jne 0x644676
mov esi, 1
jmp 0x6446bc
mov dword [esp + 0x40], ebx
xchg ebp, ebx
movzx eax, bl
xchg ebp, ebx
nop
lea ecx, [0x73e0dd]
mov dword [esp], ecx
mov dword [esp + 4], 0xf
mov dword [esp + 8], eax
call fcn.004cebd0
mov eax, dword [esp + 0xc]
test eax, eax
setge al
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
movzx ebp, byte [esp + 0x25]
mov esi, eax
mov eax, dword [esp + 0x28]
xchg esi, eax
test al, al
xchg esi, eax
je 0x644624
cmp ebx, edx
ja 0x644b0f
mov esi, edx
sub edx, ebx
mov edi, edx
neg edx
sar edx, 0x1f
and ebx, edx
mov edx, dword [esp + 0xb0]
add ebx, ecx
nop
test edx, edx
je 0x6446fe
lea ecx, [esp + 0xb0]
cmp edx, ecx
jne 0x644af7
mov ecx, dword [esp + 0x6c]
jmp 0x64470c
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
lea eax, [edi + ecx]
mov esi, dword [esp + 0xb4]
cmp edx, eax
jae 0x644770
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], edi
mov dword [esp + 0x80], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0xac], esi
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call fcn.004697f0
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb0]
nop
nop
test eax, eax
je 0x6447d2
lea edx, [esp + 0xb0]
cmp eax, edx
je 0x6447e0
jmp 0x644adf
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp edx, ebx
jae 0x644836
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x25
movzx edx, byte [esp + 0x25]
mov ebx, edx
shr dl, 4
movzx edx, dl
mov ebp, dword [esp + 0xb0]
lea esi, [0x73e51c]
movzx edx, byte [esi + edx]
nop
test ebp, ebp
je 0x644875
lea edi, [esp + 0xb0]
cmp ebp, edi
je 0x644883
jmp 0x644ac7
lea ebp, [esp + 0xb0]
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
inc edi
mov eax, dword [esp + 0xb4]
cmp ebp, edi
jae 0x6448ed
mov byte [esp + 0x27], dl
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb4], eax
movzx edx, byte [esp + 0x27]
movzx ebx, byte [esp + 0x25]
lea esi, [0x73e51c]
mov dword [esp + 0xb8], edi
mov byte [edi + eax - 1], dl
and ebx, 0xf
mov edx, dword [esp + 0xb0]
movzx ebx, byte [ebx + esi]
nop
test edx, edx
je 0x64491b
lea ebp, [esp + 0xb0]
cmp edx, ebp
je 0x644929
jmp 0x644aaf
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
inc ebp
mov esi, dword [esp + 0xb4]
cmp edx, ebp
jae 0x644988
mov byte [esp + 0x26], bl
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], esi
movzx ebx, byte [esp + 0x26]
mov dword [esp + 0xb8], ebp
mov byte [ebp + esi - 1], bl
mov edx, dword [esp + 0x48]
lea ebx, [edx + 1]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
jmp 0x644624
cmp ebx, eax
ja 0x644aa6
sub eax, ebx
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
mov eax, dword [esp + 0xb0]
add ecx, ebx
nop
test eax, eax
je 0x6449d8
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x6449e6
jmp 0x644a8e
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ebx + edx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x644a44
mov dword [esp + 0x64], edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x60], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], eax
mov dword [esp + 0xac], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004697f0
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
jmp 0x643b66
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
mov ecx, eax
mov eax, ebx
call fcn.00468f30
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
mov eax, ebx
mov ecx, edx
call fcn.00468f30
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
nop
call fcn.00467a60
jmp fcn.00643500