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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x1cc]
cmp eax, dword [ecx + 8]
jbe 0x5318c4
sub esp, 0x24c
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov ecx, dword [esp + 0x254]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x258]
mov dword [esp + 8], edx
call fcn.004b4670
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x268]
mov edi, dword [esp + 0x260]
cmp esi, edi
jne 0x52f1f9
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
lea edi, [esp + 0xc]
lea esi, [esp + 0x26c]
call fcn.0045e974
call fcn.005318d0
movzx eax, byte [esp + 0x24]
test al, al
je 0x52f1d7
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x268]
mov dword [esp + 0x284], edx
mov dword [esp + 0x288], eax
mov dword [esp + 0x28c], ecx
add esp, 0x24c
ret
lea eax, [0x5d37ed]
mov dword [esp], eax
mov dword [esp + 4], 0x12
call fcn.00409170
mov ecx, dword [esp + 8]
lea eax, [0x610c34]
jmp 0x52f1b4
mov dword [esp + 0xa0], eax
mov dword [esp + 0x110], ecx
mov dword [esp + 0x10c], edx
mov dword [esp + 0x108], ebp
mov dword [esp + 0xbc], ebx
mov ecx, dword [eax + 0x50]
mov dword [esp], ebx
call ecx
cmp dword [esp + 4], 0x14
je 0x531875
xor eax, eax
test al, al
je 0x52fabb
mov eax, dword [esp + 0x25c]
mov dword [esp], eax
mov ecx, dword [esp + 0x260]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x264]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x268]
mov dword [esp + 0xc], ebx
call fcn.0052e820
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
movzx ebp, byte [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x108], esi
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ecx
xchg ebp, eax
mov byte [esp + 0xb8], al
xchg ebp, eax
test esi, esi
jne 0x52fa98
mov dword [esp + 0x4c], eax
mov dword [esp + 0xa0], esi
lea esi, [ecx + eax]
cmp eax, esi
jle 0x52f309
lea eax, [0x5d22fa]
mov dword [esp], eax
mov dword [esp + 4], 0xe
call fcn.00409170
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x284], ecx
lea ecx, [0x610c34]
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x260]
cmp ebx, esi
jl 0x52f2c9
mov dword [esp + 0x98], esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x52f44b
mov eax, dword [esp + 0xa0]
xor ecx, ecx
xor edx, edx
test eax, eax
jne 0x52f42f
mov dword [esp + 0x108], edi
mov dword [esp + 0xa0], eax
test ecx, ecx
je 0x52f3dc
nop
movzx ebx, byte [0x7016e8]
test bl, bl
je 0x52f37b
mov dword [0x7016ec], ecx
mov ebx, dword [0x71e9f0]
test ebx, ebx
jne 0x52f415
mov dword [0x7016f0], edx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], edx
mov ecx, dword [esp + 0x11c]
test ecx, ecx
je 0x52f40d
nop
movzx ebx, byte [ecx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x52f3ab
or ebx, 0x80
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.004b3c00
mov eax, dword [esp + 0x98]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x288], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
xor ebx, ebx
xor ecx, ecx
xor edx, edx
jmp 0x52f3ab
mov ebx, edi
lea edi, [0x7016f0]
mov ebp, eax
mov eax, edx
call fcn.0045e220
mov eax, ebp
mov edi, ebx
jmp 0x52f37b
mov dword [esp + 0x284], esi
mov dword [esp + 0x288], eax
mov dword [esp + 0x28c], edi
add esp, 0x24c
ret
mov ebx, dword [esp + 0x9c]
test ebx, ebx
jne 0x52f32c
mov ebx, dword [esp + 0x264]
cmp esi, ebx
ja 0x5318ba
cmp eax, esi
ja 0x5318b3
sub ebx, eax
mov dword [esp + 0x80], ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
mov eax, esi
mov esi, dword [esp + 0x25c]
lea ebp, [ebx + esi]
cmp edx, 0x12
jg 0x52f82a
cmp edx, 4
jg 0x52f694
cmp edx, 2
je 0x52f636
cmp edx, 3
jne 0x52f5e4
test ecx, ecx
je 0x52f5b7
movzx edx, byte [ebx + esi]
movzx ebx, dl
cmp ebx, 7
jle 0x52f55a
lea eax, [0x5d948e]
mov dword [esp], eax
mov dword [esp + 4], 0x22
call fcn.00409170
mov eax, dword [esp + 8]
xor ecx, ecx
xor edx, edx
xor ebx, ebx
lea ebp, [0x610c34]
xor esi, esi
mov dword [esp + 0x74], ebp
mov dword [esp + 0xd0], eax
mov dword [esp + 0x134], esi
mov dword [esp + 0x138], edx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], ebx
lea ecx, [0x5bbfe0]
mov dword [esp], ecx
lea ecx, [esp + 0x134]
mov dword [esp + 4], ecx
call fcn.00408f80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0xd0]
mov esi, dword [esp + 0x98]
mov edi, ebx
mov ebp, eax
mov eax, edx
mov edx, ecx
mov ecx, ebp
jmp 0x52f337
cmp ecx, 1
jne 0x52f567
test ebx, ebx
jg 0x52f4c9
movzx esi, byte [ecx + ebp - 1]
mov edi, ecx
mov ecx, edx
mov eax, 1
shl eax, cl
dec eax
xchg esi, ebx
test al, bl
xchg esi, ebx
jne 0x52f4c9
lea edx, [edi - 1]
mov edi, edx
shl edx, 3
sub edx, ebx
mov eax, edi
mov edi, dword [esp + 0x80]
lea ecx, [edi - 1]
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
lea esi, [ebp + ecx]
mov ecx, edi
mov ebx, edx
xor ebp, ebp
mov edx, eax
xor eax, eax
jmp 0x52f4f1
lea eax, [0x5d5219]
mov dword [esp], eax
mov dword [esp + 4], 0x16
call fcn.00409170
mov eax, dword [esp + 8]
xor ecx, ecx
xor edx, edx
xor ebx, ebx
lea ebp, [0x610c34]
xor esi, esi
jmp 0x52f4f1
cmp edx, 4
je 0x52f5fb
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0xa0]
mov ebx, edi
jmp 0x52f544
mov dword [esp + 0x104], edi
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.004091f0
mov ecx, dword [esp + 0xc]
lea eax, [0x59f6e0]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x104]
jmp 0x52f544
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0052d2d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x108], ebx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004090c0
mov ecx, dword [esp + 8]
lea eax, [0x5a54e0]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x108]
jmp 0x52f544
cmp edx, 6
je 0x52f7c4
cmp edx, 0xc
je 0x52f709
cmp edx, 0x12
jne 0x52f5e9
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0052e3b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x108], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409170
mov ecx, dword [esp + 8]
lea eax, [0x5a5ba0]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x108]
jmp 0x52f544
mov dword [esp + 0xd8], ebp
mov dword [esp + 0x9c], ecx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.004893c0
movzx eax, byte [esp + 0xc]
test al, al
je 0x52f796
mov dword [esp], 0
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00448840
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
xor ebx, ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x78], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409170
mov ecx, dword [esp + 8]
lea eax, [0x5a5ba0]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0xd4]
jmp 0x52f544
nop
lea eax, [0x5abc80]
mov dword [esp], eax
call fcn.0040b910
mov ebx, dword [esp + 4]
mov dword [ebx + 4], 0x1a
lea eax, [0x5d67d2]
mov dword [ebx], eax
xor ecx, ecx
lea edx, [0x61098c]
xor eax, eax
jmp 0x52f765
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0052d9f0
mov eax, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x108], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.004091f0
mov ecx, dword [esp + 0xc]
lea eax, [0x5af140]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x108]
jmp 0x52f544
cmp edx, 0x16
jg 0x52f941
cmp edx, 0x13
je 0x52f8e3
cmp edx, 0x14
je 0x52f8a8
cmp edx, 0x16
jne 0x52f5e9
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0052e570
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x108], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409170
mov ecx, dword [esp + 8]
lea eax, [0x5a5ba0]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x108]
jmp 0x52f544
mov dword [esp], 0
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call fcn.00448840
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409170
mov ecx, dword [esp + 8]
lea eax, [0x5a5ba0]
xor edx, edx
xor ebx, ebx
jmp 0x52f544
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0052e470
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x108], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409170
mov ecx, dword [esp + 8]
lea eax, [0x5a5ba0]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x108]
jmp 0x52f544
cmp edx, 0x17
je 0x52fa27
cmp edx, 0x18
je 0x52f9b6
cmp edx, 0x1e
jne 0x52f5e9
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0052e620
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x108], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.00409170
mov ecx, dword [esp + 8]
lea eax, [0x5a5ba0]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x108]
jmp 0x52f544
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0052e170
mov eax, dword [esp + 0x20]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x108], ecx
lea edi, [esp + 0x144]
lea esi, [esp + 0xc]
call fcn.0045e97e
lea ecx, [0x5cdba0]
mov dword [esp], ecx
lea ecx, [esp + 0x144]
mov dword [esp + 4], ecx
call fcn.00408f80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x108]
jmp 0x52f544
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0052de10
mov eax, dword [esp + 0x20]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x108], ecx
lea edi, [esp + 0x158]
lea esi, [esp + 0xc]
call fcn.0045e97e
lea ecx, [0x5cdba0]
mov dword [esp], ecx
lea ecx, [esp + 0x158]
mov dword [esp + 4], ecx
call fcn.00408f80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x108]
jmp 0x52f544
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x288], eax
mov dword [esp + 0x28c], edi
add esp, 0x24c
ret
mov eax, dword [esp + 0x25c]
mov dword [esp], eax
mov ecx, dword [esp + 0x260]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x264]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x268]
mov dword [esp + 0xc], ebx
call fcn.0052e820
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x104], ebx
mov ebp, dword [esp + 0x18]
movzx esi, byte [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ebp
xchg esi, eax
mov byte [esp + 0xb8], al
xchg esi, eax
test edx, edx
jne 0x531852
mov dword [esp + 0x9c], eax
movzx eax, byte [esp + 0x26d]
test al, al
je 0x531831
movzx eax, byte [esp + 0x26e]
test al, al
je 0x531827
mov eax, 1
mov dword [esp + 0x94], edx
mov dword [esp + 0x100], ebx
mov edx, dword [esp + 0x260]
mov ebx, dword [esp + 0x9c]
cmp edx, ebx
je 0x5317e4
cmp eax, ecx
jne 0x53174c
mov eax, dword [esp + 0x274]
cmp dword [eax], edi
jne 0x53174c
test ebp, ebp
jne 0x531742
mov dword [esp + 0x98], ecx
mov eax, dword [0x701254]
mov ecx, dword [esp + 0x110]
cmp dword [0x701250], ecx
je 0x5316b7
test ebp, ebp
jg 0x52fc9c
mov eax, dword [0x70123c]
cmp dword [0x701238], ecx
je 0x52fc21
lea eax, [0x5dbff1]
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.00409170
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x284], ecx
lea ecx, [0x610c20]
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
mov dword [esp], ecx
mov ecx, dword [esp + 0x10c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004037d0
movzx eax, byte [esp + 0xc]
test al, al
je 0x52fbde
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.004b3d30
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x288], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
mov eax, dword [esp + 0x25c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x264]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call fcn.0052e820
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
movzx edx, byte [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x104], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], esi
mov byte [esp + 0xb8], dl
test ebx, ebx
jne 0x531694
mov dword [esp + 0x104], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x41], dl
mov dword [esp + 0x7c], esi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], eax
mov ebx, dword [esp + 0x108]
mov dword [esp], ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 4], ebx
call fcn.005322d0
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 8]
movzx edx, byte [esp + 0x11]
movzx ebx, byte [esp + 0x10]
test dl, dl
je 0x5315e1
cmp eax, 0x13
jne 0x5315d0
mov ebp, dword [esp + 0x48]
test ebp, ebp
jne 0x5315b6
mov edx, ebx
mov ebx, dword [esp + 0x44]
cmp ebx, 0x14
jg 0x531599
cmp ebx, 0xc
jne 0x53157c
mov eax, ebx
cmp ebx, 0x17
jne 0x52fda3
cmp eax, 0x18
jne 0x52fda3
test ebp, ebp
jne 0x52fda3
mov ebx, 0x18
mov esi, ebp
movzx ebp, byte [esp + 0x280]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x52fdb8
mov ebx, 0x11
mov byte [esp + 0x42], cl
movzx ebp, byte [esp + 0x26d]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x53153d
mov edi, ebx
mov ebx, 0
mov dword [esp + 0x64], ebx
mov ebx, edi
je 0x5314ea
mov ebp, dword [esp + 0x64]
je 0x5314af
mov dword [esp + 0x60], ebx
test cl, cl
je 0x53149a
movzx ebp, byte [esp + 0x42]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x531272
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x50]
lea ecx, [ebp + ebx]
cmp ecx, ebp
jge 0x52fe56
lea eax, [0x5d22fa]
mov dword [esp], eax
mov dword [esp + 4], 0xe
call fcn.00409170
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x284], ecx
lea ecx, [0x610c34]
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
mov esi, dword [esp + 0x260]
cmp esi, ecx
jl 0x52fe16
mov esi, dword [esp + 0x264]
cmp esi, ecx
jb 0x5318ac
cmp ecx, ebp
jb 0x5318a5
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], edi
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov ecx, dword [esp + 0x254]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x258]
mov dword [esp + 8], edx
call fcn.004b1be0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004b2d80
mov eax, dword [esp + 0x264]
mov ecx, dword [esp + 0x50]
sub eax, ecx
mov ebx, eax
neg eax
sar eax, 0x1f
and eax, ecx
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x25c]
lea ebp, [eax + ecx]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [esp + 0xfc], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0xf8], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0xf4], edi
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
test esi, esi
je 0x52ffc4
mov dword [esp + 0xe8], edx
mov edx, dword [esi + 8]
cmp edx, 0x4c618499
ja 0x530f4b
cmp edx, 0x1c87085b
jne 0x530d2e
lea eax, [0x5979c0]
cmp edi, eax
jne 0x52ffc4
mov dword [esp], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0052d520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ecx, ecx
je 0x52ffb9
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], edx
mov dword [esp + 0x28c], ebx
add esp, 0x24c
ret
mov ecx, dword [esp + 0xec]
mov dword [ecx], eax
jmp 0x52ff96
mov dword [esp + 0x8c], ebx
mov dword [esp + 0xdc], ebp
nop
mov eax, dword [esp + 0x258]
mov edx, eax
and eax, 0x1f
cmp eax, 6
ja 0x5302de
cmp eax, 1
jne 0x5300e0
mov eax, dword [esp + 0x7c]
cmp eax, 1
jne 0x5300b2
mov eax, dword [esp + 0x90]
movzx eax, byte [eax + ecx]
test al, al
jne 0x530074
xor eax, eax
xor ecx, ecx
xor ebx, ebx
test ecx, ecx
je 0x53003a
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], ebx
add esp, 0x24c
ret
mov dword [esp + 0x68], ecx
mov dword [esp + 0xc4], ebx
mov ecx, dword [esp + 0x250]
mov dword [esp], ecx
mov ecx, dword [esp + 0x254]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
call fcn.004b3d30
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0xc4]
jmp 0x530017
cmp al, 0xff
jne 0x530084
mov eax, 1
xor ecx, ecx
xor ebx, ebx
jmp 0x530013
lea eax, [0x5d27b1]
mov dword [esp], eax
mov dword [esp + 4], 0xf
call fcn.00409170
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x258]
xor eax, eax
lea ecx, [0x610c34]
jmp 0x530013
lea eax, [0x5d27b1]
mov dword [esp], eax
mov dword [esp + 4], 0xf
call fcn.00409170
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x258]
lea ecx, [0x610c34]
xor eax, eax
jmp 0x530013
cmp eax, 2
jne 0x530235
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov ecx, dword [esp + 0x254]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004b4670
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x7c]
mov dword [esp], ecx
call eax
cmp dword [esp + 4], 4
jne 0x5301c1
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 8], eax
call fcn.0052d520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test ecx, ecx
je 0x530177
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], edx
add esp, 0x24c
ret
mov dword [esp + 0xcc], edx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x250]
mov dword [esp], ecx
mov ecx, dword [esp + 0x254]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x258]
mov dword [esp + 8], ecx
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.004b4060
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0xcc]
jmp 0x530154
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 8], eax
call fcn.0052d2d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x5301f8
mov edx, ecx
mov ecx, eax
jmp 0x530154
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
call fcn.004b4060
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc8]
jmp 0x5301ef
cmp eax, 5
jae 0x5300e9
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004b4670
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x80]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x5d1fef]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xd
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.004486c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409170
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x284], ecx
lea ecx, [0x610c20]
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
cmp eax, 0x17
je 0x530aa5
cmp eax, 0x18
jne 0x5305b4
mov eax, dword [esp + 0x98]
cmp eax, 0x13
jg 0x5304ef
cmp eax, 0xc
je 0x530468
cmp eax, 0x12
je 0x53043f
cmp eax, 0x13
je 0x530416
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
mov dword [esp], eax
call fcn.00409060
mov eax, dword [esp + 4]
lea ecx, [0x5a5420]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], eax
lea eax, [0x5da77f]
mov dword [esp], eax
mov dword [esp + 4], 0x26
lea eax, [esp + 0x12c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004bc200
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x610c34]
xor edx, edx
xor ebx, ebx
test ecx, ecx
je 0x5303cb
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x284], edx
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
mov dword [esp + 0x108], eax
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.004b4260
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0xa0]
jmp 0x5303a8
mov dword [esp], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0052e470
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x5303a4
mov dword [esp], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0052e3b0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x5303a4
mov dword [esp], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004893c0
movzx eax, byte [esp + 0xc]
test al, al
je 0x5304c1
mov dword [esp], 0
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 8], eax
call fcn.00448840
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
xor ebx, ebx
mov ebp, ecx
mov ecx, edx
mov edx, ebp
mov esi, eax
mov eax, ebx
mov ebx, esi
jmp 0x5303a4
nop
lea eax, [0x5abc80]
mov dword [esp], eax
call fcn.0040b910
mov ebx, dword [esp + 4]
mov dword [ebx + 4], 0x1a
lea eax, [0x5d67d2]
mov dword [ebx], eax
xor ecx, ecx
lea edx, [0x61098c]
xor eax, eax
jmp 0x5304b0
cmp eax, 0x16
jg 0x530554
cmp eax, 0x14
je 0x53052b
cmp eax, 0x16
jne 0x53031b
mov dword [esp], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0052e570
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x5303a4
mov dword [esp], 0
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 8], eax
call fcn.00448840
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
jmp 0x5303a4
cmp eax, 0x1b
je 0x53058b
cmp eax, 0x1e
jne 0x53031b
mov dword [esp], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0052e620
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x5303a4
mov dword [esp], 0
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 8], eax
call fcn.00448840
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
jmp 0x5303a4
cmp eax, 0x19
jne 0x53023e
xor eax, eax
jmp 0x5305c8
mov ecx, dword [esp + 0x58]
lea eax, [ecx + 1]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx + 0x64]
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
call edx
mov eax, dword [esp + 0x58]
cmp dword [esp + 4], eax
jle 0x530664
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edx
lea edi, [esp + 0x218]
lea esi, [esp + 8]
call fcn.0045e92e
mov eax, dword [esp + 0x224]
test eax, eax
je 0x5305c1
lea eax, [0x5d91a9]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call fcn.00409170
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x284], ecx
lea ecx, [0x610c20]
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x64]
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
test eax, eax
jg 0x530a3d
xor eax, eax
test al, al
je 0x5307c6
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x9c]
cmp eax, ecx
ja 0x531899
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov ecx, dword [esp + 0x254]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x258]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.004b2670
mov eax, dword [esp + 0x264]
mov ecx, dword [esp + 0x268]
sub eax, ecx
mov edx, eax
neg eax
sar eax, 0x1f
and eax, ecx
mov ebx, dword [esp + 0x25c]
add eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xe4], ebx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x10c], ebp
mov esi, dword [esp + 0x18]
mov dword [esp + 0x88], esi
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
sub eax, ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004091f0
mov eax, dword [esp + 0xc]
nop
movzx ecx, byte [0x7016e8]
test cl, cl
je 0x530a32
lea ecx, [0x5a6200]
mov dword [0x7016ec], ecx
mov edx, dword [0x71e9f0]
test edx, edx
jne 0x530a22
mov dword [0x7016f0], eax
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
mov ecx, dword [esp + 0x114]
test ecx, ecx
je 0x530a17
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x530795
or edx, 0x80
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004b3c00
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x104]
jmp 0x5307db
inc eax
mov dword [esp + 0x108], ebx
mov dword [esp + 0x94], edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], ecx
mov ebp, dword [esp + 0xa0]
mov esi, dword [ebp + 0x64]
mov edi, dword [esp + 0xbc]
mov dword [esp], edi
call esi
mov eax, dword [esp + 0x5c]
cmp dword [esp + 4], eax
jle 0x5309e6
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edx
lea edi, [esp + 0x1e4]
lea esi, [esp + 8]
call fcn.0045e92e
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x5309df
mov ecx, dword [esp + 0x1f4]
mov edx, dword [esp + 0x1f8]
mov ebx, dword [0x70124c]
cmp dword [0x701248], ecx
je 0x5309c1
xor ecx, ecx
test cl, cl
je 0x530888
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x108]
jmp 0x5307da
mov ecx, dword [esp + 0x250]
mov dword [esp], ecx
mov edx, dword [esp + 0x254]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.004b2670
mov eax, dword [esp + 0x10]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10c], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0x1fc]
mov ebp, dword [esp + 0x200]
mov dword [esp], ebx
mov dword [esp + 4], ebp
lea ebx, [0x5d0060]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 4
call fcn.004aceb0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00531d70
lea edi, [esp + 0x180]
lea esi, [esp + 8]
call fcn.0045e974
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x18], ebx
lea edi, [esp + 0x1c]
lea esi, [esp + 0x180]
call fcn.0045e974
call fcn.0052f100
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
test ecx, ecx
jne 0x53099e
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x5c]
jmp 0x5307da
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], edx
mov dword [esp + 0x28c], ebx
add esp, 0x24c
ret
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.004037d0
movzx ecx, byte [esp + 0xc]
mov eax, dword [esp + 0x5c]
jmp 0x53086d
xor ecx, ecx
jmp 0x53086d
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x288], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x530795
lea edi, [0x7016f0]
call fcn.0045e220
jmp 0x530763
lea ecx, [0x5a6200]
jmp 0x530763
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
mov dword [esp + 4], 0
call ecx
lea edi, [esp + 0x218]
lea esi, [esp + 8]
call fcn.0045e92e
mov eax, dword [esp + 0x228]
mov ecx, dword [esp + 0x22c]
mov edx, dword [0x70124c]
cmp dword [0x701248], eax
je 0x530a8e
xor eax, eax
jmp 0x530688
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004037d0
movzx eax, byte [esp + 0xc]
jmp 0x530a89
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x50]
mov dword [esp], ecx
call eax
cmp dword [esp + 4], 8
jne 0x530c42
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.004b4c20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x250]
mov dword [esp], ebx
mov ebp, dword [esp + 0x254]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x258]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004b3c00
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 8], eax
call fcn.004091f0
mov eax, dword [esp + 0xc]
nop
movzx ecx, byte [0x7016e8]
test cl, cl
je 0x530c37
lea ecx, [0x59f6e0]
mov dword [0x7016ec], ecx
mov edx, dword [0x71e9f0]
test edx, edx
jne 0x530c27
mov dword [0x7016f0], eax
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
mov ecx, dword [esp + 0x124]
test ecx, ecx
je 0x530c1f
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x530bbd
or edx, 0x80
mov ebx, dword [esp + 0x250]
mov dword [esp], ebx
mov ebx, dword [esp + 0x254]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004b48e0
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x288], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x530bbd
lea edi, [0x7016f0]
call fcn.0045e220
jmp 0x530b8f
lea ecx, [0x59f6e0]
jmp 0x530b8f
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xdc]
mov dword [esp], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x108]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
call fcn.0052ecd0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
test eax, eax
je 0x530cdf
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], ebp
mov dword [esp + 0x28c], esi
add esp, 0x24c
ret
mov dword [esp + 0xc0], esi
mov dword [esp + 0x108], ebp
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.004b3c00
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0xc0]
jmp 0x530cbc
cmp edx, 0x26ca392d
jne 0x530ec6
lea edx, [0x5ceb40]
cmp edi, edx
jne 0x52ffc4
mov ecx, dword [esp + 0x98]
cmp ecx, 0x17
jne 0x530e0f
lea edi, [esp + 0x16c]
xor eax, eax
call fcn.0045e49b
mov dword [esp], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.0052de10
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x108], ecx
mov edx, dword [esp + 0x24]
lea edi, [esp + 0x16c]
lea esi, [esp + 0xc]
call fcn.0045e97e
mov edi, dword [esp + 0xf0]
test byte [edi], al
mov ecx, dword [0x71e9f0]
test ecx, ecx
jne 0x530de2
lea esi, [esp + 0x16c]
call fcn.0045e97e
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x288], eax
mov dword [esp + 0x28c], edx
add esp, 0x24c
ret
mov dword [esp + 0x104], edx
lea eax, [0x5cdba0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x16c]
mov dword [esp + 8], eax
call fcn.004106e0
mov edx, dword [esp + 0x104]
jmp 0x530db8
lea edi, [esp + 0x16c]
xor eax, eax
call fcn.0045e49b
mov dword [esp], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.0052e170
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x108], ecx
mov edx, dword [esp + 0x24]
lea edi, [esp + 0x16c]
lea esi, [esp + 0xc]
call fcn.0045e97e
mov edi, dword [esp + 0xf0]
test byte [edi], al
mov ecx, dword [0x71e9f0]
test ecx, ecx
jne 0x530e99
lea esi, [esp + 0x16c]
call fcn.0045e97e
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x288], eax
mov dword [esp + 0x28c], edx
add esp, 0x24c
ret
mov dword [esp + 0x104], edx
lea eax, [0x5cdba0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x16c]
mov dword [esp + 8], eax
call fcn.004106e0
mov edx, dword [esp + 0x104]
jmp 0x530e6f
cmp edx, 0x4c618499
jne 0x52ffc4
lea eax, [0x5adac0]
cmp edi, eax
jne 0x52ffc4
mov dword [esp], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0052d9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0xf8]
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, dword [0x71e9f0]
test ecx, ecx
jne 0x530f44
mov dword [edi], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], ebx
mov dword [esp + 0x28c], ebp
add esp, 0x24c
ret
call fcn.0045e220
jmp 0x530f21
cmp edx, 0x7418f6b4
ja 0x531032
cmp edx, 0x4d10f6f9
jne 0x530fa8
lea eax, [0x597a00]
cmp edi, eax
jne 0x52ffc4
mov eax, dword [esp + 0xe8]
mov byte [eax], 1
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x288], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
cmp edx, 0x7418f6b4
jne 0x52ffc4
lea edx, [0x596c00]
cmp edi, edx
jne 0x52ffc4
mov dword [esp + 0xe0], eax
mov dword [esp], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0052d6a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ecx, ecx
je 0x531014
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], edx
mov dword [esp + 0x28c], ebx
add esp, 0x24c
ret
mov edi, dword [esp + 0xe0]
test byte [edi], al
mov ecx, dword [0x71e9f0]
test ecx, ecx
jne 0x53102b
mov dword [edi], eax
jmp 0x530ff1
call fcn.0045e220
jmp 0x530ff1
cmp edx, 0x8faab972
jne 0x53114e
lea edx, [0x597a80]
cmp edi, edx
jne 0x52ffc4
mov eax, dword [esp + 0x268]
mov edx, dword [esp + 0x9c]
cmp eax, edx
ja 0x53189e
lea edi, [esp + 0x198]
mov esi, eax
xor eax, eax
call fcn.0045e497
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x198], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x19c], ecx
movzx ecx, byte [esp + 0x41]
mov byte [esp + 0x1a0], cl
mov dword [esp + 0x1a4], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], ebx
mov ecx, dword [esp + 0x264]
sub ecx, esi
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, esi
mov ebp, dword [esp + 0x25c]
add ecx, ebp
mov dword [esp + 0x1b0], ecx
sub edx, esi
mov dword [esp + 0x1b4], edx
mov dword [esp + 0x1b8], ebx
mov edi, dword [esp + 0xfc]
test byte [edi], al
mov edx, dword [0x71e9f0]
test edx, edx
jne 0x53112f
lea esi, [esp + 0x198]
call fcn.0045e956
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x288], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
lea eax, [0x5bc6e0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x198]
mov dword [esp + 8], eax
call fcn.004106e0
jmp 0x5310fe
cmp edx, 0xeb2625b9
jne 0x52ffc4
lea edx, [0x5ada60]
cmp edi, edx
jne 0x52ffc4
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x531245
mov esi, dword [esp + 0x90]
movzx ecx, byte [esi + ecx]
movzx esi, cl
cmp esi, 7
jle 0x5311fb
lea eax, [0x5d948e]
mov dword [esp], eax
mov dword [esp + 4], 0x22
call fcn.00409170
mov eax, dword [esp + 8]
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
lea esi, [0x610c34]
mov edi, dword [esp + 0xf4]
mov dword [edi + 4], ebx
mov dword [edi + 8], edx
mov dword [edi + 0xc], ebp
mov edx, dword [0x71e9f0]
test edx, edx
jne 0x5311ee
mov dword [edi], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x284], ecx
mov dword [esp + 0x288], esi
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
mov edx, eax
mov eax, ecx
call fcn.0045e220
mov eax, edx
jmp 0x5311cb
cmp edx, 1
jne 0x531204
test esi, esi
jg 0x531187
mov eax, ebp
movzx ebp, byte [edx + ebp - 1]
mov edi, ebx
mov ebx, 1
shl ebx, cl
dec ebx
xchg ebp, eax
test bl, al
xchg ebp, eax
jne 0x531187
lea ebp, [edx - 1]
mov ebx, ebp
shl ebp, 3
sub ebp, esi
lea edx, [edi - 1]
mov ecx, edx
neg edx
sar edx, 0x1f
and edx, 1
add eax, edx
mov edx, ecx
xor esi, esi
mov ecx, eax
xor eax, eax
jmp 0x5311af
lea eax, [0x5d5219]
mov dword [esp], eax
mov dword [esp + 4], 0x16
call fcn.00409170
mov eax, dword [esp + 8]
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
lea esi, [0x610c34]
jmp 0x5311af
movzx ebp, byte [esp + 0x41]
xchg ebp, eax
cmp dl, al
xchg ebp, eax
je 0x52fe06
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
lea edi, [esp + 0xc]
lea esi, [esp + 0x26c]
call fcn.0045e974
call fcn.005318d0
movzx eax, byte [esp + 0x24]
test al, al
je 0x5312f0
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x104]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], edx
add esp, 0x24c
ret
mov eax, dword [esp + 0x48]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xb4], eax
movzx eax, byte [esp + 0x41]
mov byte [esp + 0xb8], al
lea edi, [esp + 0x180]
lea esi, [esp + 0x26c]
call fcn.0045e974
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x60]
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov dword [esp + 0x108], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x9c], ecx
lea edi, [esp + 0x1bc]
xor eax, eax
call fcn.0045e496
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00409060
mov eax, dword [esp + 4]
lea ecx, [0x5a5420]
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1c0], eax
lea eax, [0x5b95e0]
mov dword [esp], eax
lea eax, [esp + 0xac]
mov dword [esp + 4], eax
call fcn.00409270
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
lea eax, [0x5c3100]
mov dword [esp], eax
lea eax, [esp + 0x180]
mov dword [esp + 4], eax
call fcn.00408f80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x5a5ba0]
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00409060
mov eax, dword [esp + 4]
lea ecx, [0x5a5420]
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x1e0], eax
lea eax, [0x5dac06]
mov dword [esp], eax
mov dword [esp + 4], 0x27
lea eax, [esp + 0x1bc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 5
mov dword [esp + 0x10], 5
call fcn.004bc200
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409170
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x50]
lea ecx, [0x610c20]
jmp 0x5312d4
cmp esi, ebp
jne 0x531281
cmp eax, ebx
jne 0x531281
jmp 0x52fdf7
mov dword [esp + 0x60], ebx
movzx ebx, byte [esp + 0x26f]
test bl, bl
je 0x5314e1
mov ebx, dword [esp + 0x274]
test ebx, ebx
je 0x5314d8
mov ebx, dword [ebx]
xor ecx, ecx
mov ebp, 3
jmp 0x52fdeb
mov ebx, dword [esp + 0x60]
jmp 0x52fdeb
mov ebx, dword [esp + 0x60]
jmp 0x52fdeb
mov dword [esp + 0x90], ebx
movzx ebx, byte [esp + 0x26e]
test bl, bl
je 0x53152d
mov ebx, dword [esp + 0x274]
test ebx, ebx
je 0x53151d
mov ebx, dword [ebx]
xchg ebp, eax
test al, al
xchg ebp, eax
mov ebp, 1
mov ecx, 0
jmp 0x52fde5
xchg ebp, eax
test al, al
xchg ebp, eax
mov ebx, dword [esp + 0x90]
jmp 0x52fde1
xchg ebp, eax
test al, al
xchg ebp, eax
mov ebx, dword [esp + 0x90]
jmp 0x52fde1
mov edi, ebx
mov ebx, dword [esp + 0x274]
test ebx, ebx
je 0x531571
mov ebx, dword [ebx]
xchg ebp, eax
test al, al
xchg ebp, eax
mov dword [esp + 0xa4], eax
mov eax, 2
mov dword [esp + 0x64], eax
mov ecx, 0
mov eax, dword [esp + 0xa4]
jmp 0x52fddb
xchg ebp, eax
test al, al
xchg ebp, eax
mov ebx, edi
jmp 0x52fdce
cmp ebx, 0x12
je 0x52fd8e
cmp ebx, 0x14
je 0x52fd8e
mov ebx, eax
mov eax, dword [esp + 0x44]
jmp 0x52fd90
cmp ebx, 0x16
je 0x52fd8e
cmp ebx, 0x1b
je 0x52fd8e
cmp ebx, 0x1e
je 0x52fd8e
jmp 0x53158e
mov edx, ebx
mov ebx, dword [esp + 0x278]
test ebx, ebx
je 0x5315cc
mov eax, dword [esp + 0x44]
jmp 0x52fd90
mov ebx, eax
jmp 0x5315c3
mov edx, ebx
mov ebp, dword [esp + 0x48]
mov ebx, eax
mov eax, dword [esp + 0x44]
jmp 0x52fd90
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
mov eax, dword [esp + 0x110]
test eax, eax
je 0x53168d
mov ecx, dword [eax + 4]
mov dword [esp + 0x12c], ecx
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x130], eax
lea eax, [0x5d3f62]
mov dword [esp], eax
mov dword [esp + 4], 0x13
lea eax, [esp + 0x12c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004bc200
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409170
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x284], ecx
lea ecx, [0x610c20]
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
mov ecx, eax
jmp 0x531609
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x288], eax
mov dword [esp + 0x28c], edi
add esp, 0x24c
ret
xchg esi, eax
mov byte [esp + 0x43], al
xchg esi, eax
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x84], edi
mov dword [esp], ecx
mov edx, dword [esp + 0x10c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004037d0
movzx eax, byte [esp + 0xc]
test al, al
je 0x53171f
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x94]
movzx edx, byte [esp + 0x43]
mov edi, dword [esp + 0x100]
jmp 0x52fd0a
mov eax, dword [esp + 0x8c]
test eax, eax
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x260]
mov ebx, dword [esp + 0x9c]
jmp 0x52fbca
xchg esi, eax
test al, al
xchg esi, eax
jne 0x52fba8
mov eax, dword [esp + 0x250]
mov dword [esp], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
lea edi, [esp + 0xc]
lea esi, [esp + 0x26c]
call fcn.0045e974
call fcn.005318d0
movzx eax, byte [esp + 0x24]
test al, al
je 0x5317bb
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x100]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], edx
add esp, 0x24c
ret
lea eax, [0x5da286]
mov dword [esp], eax
mov dword [esp + 4], 0x25
call fcn.00409170
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x9c]
lea ecx, [0x610c20]
jmp 0x53179f
lea eax, [0x5d628f]
mov dword [esp], eax
mov dword [esp + 4], 0x19
call fcn.00409170
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x284], ecx
lea ecx, [0x610c20]
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
add esp, 0x24c
ret
mov eax, 2
jmp 0x52fb65
mov eax, dword [esp + 0x9c]
mov eax, esi
mov esi, ebp
mov ebp, ecx
mov ecx, edi
mov edi, ebx
mov ebx, edx
mov edx, eax
mov eax, dword [esp + 0x9c]
jmp 0x52fd0a
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x288], eax
mov dword [esp + 0x28c], ebx
add esp, 0x24c
ret
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x6c]
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
test eax, eax
sete al
jmp 0x52f231
call fcn.0045e300
mov ecx, edx
call fcn.0045e300
mov eax, ebp
call fcn.0045e300
mov edx, esi
call fcn.0045e2e0
mov ecx, esi
call fcn.0045e300
mov ecx, esi
mov edx, ebx
call fcn.0045e2e0
nop
call fcn.0045ccc0
jmp fcn.0052f100