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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c8]
cmp eax, dword [ecx + 8]
jbe 0x5175c5
sub esp, 0x448
mov eax, 0
lea edi, [esp + 0x2a8]
call fcn.0044cad6
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x240], eax
lea edi, [esp + 0x130]
call fcn.0044cac8
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov ecx, dword [esp + 0x450]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x454]
mov dword [esp + 8], edx
call fcn.004a8370
lea edi, [esp + 0xc]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x464]
mov ebx, dword [esp + 0x45c]
cmp edx, ebx
jne 0x5145ce
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
lea esi, [esp + 0x468]
call fcn.0044cfb4
call fcn.005175d0
movzx eax, byte [esp + 0x24]
test al, al
je 0x51457d
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x464]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov dword [esp + 0x230], 0
mov dword [esp + 0x234], 0
lea eax, [0x798c79]
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], 0x12
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x230]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
jmp 0x51455a
mov dword [esp + 0x12c], edi
mov dword [esp + 0x50], eax
mov dword [esp + 0xd8], ecx
mov edx, dword [eax + 0x50]
mov dword [esp], ecx
call edx
lea eax, [esp + 0xc]
mov dword [esp + 0x128], eax
mov ecx, dword [esp + 4]
cmp ecx, 0x14
je 0x516be4
mov eax, dword [esp + 0x458]
mov dword [esp], eax
mov ecx, dword [esp + 0x45c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x460]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x464]
mov dword [esp + 0xc], ebx
call fcn.005138f0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x10]
movzx ebp, byte [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
test edx, edx
jne 0x516bc8
mov dword [esp + 0xbc], eax
movzx eax, byte [esp + 0x469]
test al, al
je 0x516b9e
movzx eax, byte [esp + 0x46a]
test al, al
je 0x516b94
mov eax, 1
mov dword [esp + 0x124], ecx
mov dword [esp + 0xb8], edx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x45c]
cmp ecx, edx
je 0x516b22
cmp eax, ebx
jne 0x516a58
mov eax, dword [esp + 0x470]
mov eax, dword [eax]
cmp edi, eax
jne 0x516a58
test esi, esi
jne 0x516a4e
mov dword [esp + 0xb4], ebx
mov eax, dword [0xa7cf30]
mov ebx, dword [esp + 0x50]
cmp eax, ebx
je 0x5169c0
test esi, esi
jg 0x5147e8
mov eax, dword [0xa7cf18]
cmp ebx, eax
je 0x514763
mov dword [esp + 0x200], 0
mov dword [esp + 0x204], 0
lea eax, [0x7a5a15]
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], 0x2d
lea eax, [0x7fed00]
mov dword [esp], eax
lea eax, [esp + 0x200]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], eax
mov dword [esp + 0x488], ecx
add esp, 0x448
ret
mov dword [esp], ebx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov eax, dword [0xa7cf1c]
mov dword [esp + 8], eax
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x5146f1
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.004a73e0
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x480], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov eax, dword [esp + 0x458]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x460]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.005138f0
mov eax, dword [esp + 0x20]
movzx ecx, byte [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
test esi, esi
jne 0x5169a4
mov dword [esp + 0x124], edi
mov dword [esp + 0xb8], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], ebp
mov byte [esp + 0x42], cl
mov dword [esp + 0x48], edx
mov dword [esp + 0x54], eax
mov esi, dword [esp + 0x50]
mov dword [esp], esi
mov edi, dword [esp + 0xd8]
mov dword [esp + 4], edi
call fcn.00517e70
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x10]
movzx ebx, byte [esp + 0x11]
test bl, bl
je 0x5168d0
cmp ecx, 0x13
jne 0x5168c1
mov ebx, dword [esp + 0x4c]
test ebx, ebx
jne 0x5168a9
mov ebp, dword [esp + 0x44]
cmp ebp, 0x12
jg 0x51688c
cmp ebp, 0xc
jne 0x516878
mov ecx, ebp
cmp ebp, 0x17
jne 0x5148c3
cmp ecx, 0x18
jne 0x5148c3
test ebx, ebx
jne 0x5148c3
mov ebp, 0x18
mov esi, edx
movzx edx, byte [esp + 0x47c]
test dl, dl
je 0x516871
mov edx, 0x11
mov dword [esp + 0x70], edx
movzx ebp, byte [esp + 0x469]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x516826
mov edi, eax
mov eax, 0
mov dword [esp + 0x74], eax
mov eax, edi
je 0x5167d4
mov ebp, dword [esp + 0x74]
je 0x516799
mov dword [esp + 0xbc], edx
test al, al
je 0x516784
xchg edi, eax
test al, al
xchg edi, eax
je 0x51651b
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
lea ebp, [edx + eax]
cmp ebp, edx
jge 0x516506
mov esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x516497
test ebp, ebp
jl 0x5175b7
cmp edx, ebp
ja 0x5175b7
mov esi, dword [esp + 0x460]
cmp ebp, esi
ja 0x5175b7
mov dword [esp + 0xbc], ebp
sub esi, edx
mov dword [esp + 0xa4], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and edx, esi
mov dword [esp + 0xb4], edx
mov esi, dword [esp + 0x458]
lea edi, [esi + edx]
mov dword [esp + 0x10c], edi
mov edi, dword [0xa7cf30]
mov ecx, dword [esp + 0x50]
cmp edi, ecx
je 0x51628e
mov ebx, dword [0xa7cf20]
cmp ebx, ecx
je 0x516047
mov ebx, dword [0xa7cf08]
cmp ebx, ecx
je 0x515d86
mov ebx, dword [0xa7cf38]
cmp ebx, ecx
je 0x515b37
mov ebx, dword [0xa7cf10]
cmp ebx, ecx
je 0x515a56
mov ebx, dword [0xa7cf18]
cmp ebx, ecx
je 0x5159b3
mov ebx, dword [0xa7cf00]
cmp ebx, ecx
je 0x515843
mov ebx, dword [esp + 0x454]
mov edi, ebx
and ebx, 0x1f
cmp ebx, 6
ja 0x514daa
cmp ebx, 1
jne 0x514b74
cmp eax, 1
jne 0x514b10
movzx eax, byte [esi + edx]
test al, al
jne 0x514a9c
xor eax, eax
xor ecx, ecx
xor edx, edx
test edx, edx
je 0x514a55
mov dword [esp + 0x480], ebp
mov dword [esp + 0x484], edx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov dword [esp + 0x88], edx
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov byte [esp + 0xc], cl
call fcn.004a73e0
mov eax, dword [esp + 0xfc]
mov edx, dword [esp + 0x88]
mov ebp, dword [esp + 0xbc]
jmp 0x514a39
cmp al, 0xff
jne 0x514aac
xor eax, eax
mov ecx, 1
xor edx, edx
jmp 0x514a35
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
lea eax, [0x796f8e]
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], 0xf
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x1b0]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0x454]
xor ecx, ecx
jmp 0x514a35
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1bc], 0
lea eax, [0x796f8e]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], 0xf
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x1b8]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0x454]
xor ecx, ecx
jmp 0x514a35
cmp ebx, 2
jne 0x514ccf
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov ecx, dword [esp + 0x450]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x7c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
cmp eax, 4
jne 0x514c57
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00512380
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
je 0x514c0d
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov dword [esp + 0xe4], eax
mov dword [esp + 0x8c], ecx
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
sar edx, 0x1f
mov dword [esp + 0x10], edx
call fcn.004a7750
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x8c]
jmp 0x514bea
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.005120f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x514bea
mov dword [esp + 0xf0], eax
mov dword [esp + 0x94], ecx
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
call fcn.004a7750
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x94]
jmp 0x514bea
lea ecx, [ebx - 5]
cmp ecx, 1
jbe 0x514b7d
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.004a8370
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 + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp], 0
lea edx, [0x7960d1]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xd
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0043bce0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
lea eax, [0x7fed00]
mov dword [esp], eax
lea eax, [esp + 0x190]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
cmp ebx, 0x17
je 0x5155ae
cmp ebx, 0x18
jne 0x515063
mov ecx, dword [esp + 0x70]
cmp ecx, 0x13
jg 0x514faf
cmp ecx, 0xc
je 0x514f7c
cmp ecx, 0x12
je 0x514f49
cmp ecx, 0x13
je 0x514f16
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
lea eax, [0x730440]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00407490
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
lea eax, [0x7a2d8e]
mov dword [esp], eax
mov dword [esp + 4], 0x26
lea eax, [esp + 0x1a0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004b4fd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], eax
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x198]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
xor edx, edx
xor ebx, ebx
test ecx, ecx
je 0x514ecb
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.004a7cc0
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0xb8]
jmp 0x514ea8
mov ecx, dword [esp + 0x10c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00513590
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
jmp 0x514ea4
mov ecx, dword [esp + 0x10c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.005134a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x514ea4
mov ecx, dword [esp + 0x10c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00513800
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x514ea4
cmp ecx, 0x14
je 0x51502c
cmp ecx, 0x16
je 0x514ff9
cmp ecx, 0x1b
jne 0x514de4
mov dword [esp], 0
mov ecx, dword [esp + 0x10c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xc], eax
call fcn.0043be60
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
jmp 0x514ea4
mov ecx, dword [esp + 0x10c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00513720
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x514ea4
mov dword [esp], 0
mov ecx, dword [esp + 0x10c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xc], eax
call fcn.0043be60
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
jmp 0x514ea4
cmp ebx, 0x19
jne 0x514cdb
lea edx, [esp + 8]
mov dword [esp + 0x120], edx
xor ebx, ebx
jmp 0x515086
mov eax, dword [esp + 0x68]
lea ebx, [eax + 1]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x68], ebx
mov eax, dword [ecx + 0x64]
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x68]
cmp ecx, eax
jge 0x515150
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x2c]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0xd8]
mov dword [esp], ebx
call edx
lea edi, [esp + 0x414]
mov esi, dword [esp + 0x120]
call fcn.0044cf6e
mov eax, dword [esp + 0x420]
test eax, eax
je 0x51507b
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
lea eax, [0x7a0e00]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], 0x21
lea eax, [0x7fed00]
mov dword [esp], eax
lea eax, [esp + 0x1a8]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x64]
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
test eax, eax
jg 0x5153cd
lea eax, [esp + 8]
mov dword [esp + 0x11c], eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x118], ecx
xor edx, edx
xor ebx, ebx
mov ebp, dword [esp + 0xb8]
mov esi, dword [esp + 0x124]
jmp 0x5151a6
mov edi, dword [esp + 0x6c]
inc edi
mov ebx, eax
mov ebp, ecx
mov esi, edx
mov edx, edi
mov dword [esp + 0xb8], ebp
mov dword [esp + 0x124], esi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x64]
mov edi, dword [esp + 0xd8]
mov dword [esp], edi
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x6c]
cmp ecx, eax
jge 0x51539c
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x2c]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0xd8]
mov dword [esp], ebx
call edx
lea edi, [esp + 0x3ac]
mov esi, dword [esp + 0x120]
call fcn.0044cf6e
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x51525f
mov ecx, dword [esp + 0x3c0]
mov edx, dword [esp + 0x3bc]
mov ebx, dword [0xa7cf28]
cmp ebx, edx
jne 0x51525f
mov dword [esp], edx
mov dword [esp + 4], ecx
mov eax, dword [0xa7cf2c]
mov dword [esp + 8], eax
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x51525f
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x124]
jmp 0x515199
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov ecx, dword [esp + 0x450]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x454]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xc], ebx
call fcn.004a50b0
mov eax, dword [esp + 0x18]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x114], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x110], edx
mov ebx, dword [esp + 0x3c8]
mov ebp, dword [esp + 0x3c4]
mov dword [esp], ebp
mov dword [esp + 4], ebx
lea ebx, [0x78ff60]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 4
call fcn.0049deb0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005178f0
lea edi, [esp + 0x30c]
mov esi, dword [esp + 0x11c]
call fcn.0044cfb4
mov eax, dword [esp + 0x110]
mov dword [esp], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0x118]
lea esi, [esp + 0x30c]
call fcn.0044cfb4
call fcn.00514480
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x515379
mov ebx, ecx
mov ecx, edx
mov edx, ebx
jmp 0x515199
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], edx
mov dword [esp + 0x488], ecx
add esp, 0x448
ret
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x480], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 4], 0
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
call ecx
lea edi, [esp + 0x3e0]
mov esi, dword [esp + 0x120]
call fcn.0044cf6e
mov eax, dword [esp + 0x3f4]
mov ecx, dword [esp + 0x3f0]
mov edx, dword [0xa7cf28]
cmp edx, ecx
jne 0x51516f
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [0xa7cf2c]
mov dword [esp + 8], eax
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x51516f
mov eax, dword [esp + 0x464]
mov ecx, dword [esp + 0xbc]
cmp eax, ecx
ja 0x5175a9
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov ecx, dword [esp + 0x450]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x454]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.004a50b0
mov eax, dword [esp + 0x18]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x114], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x110], edx
mov ebx, dword [esp + 0x460]
mov ebp, dword [esp + 0x464]
sub ebx, ebp
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, ebp
mov edi, dword [esp + 0x458]
add ebx, edi
mov dword [esp + 0x250], ebx
mov ebx, dword [esp + 0xbc]
sub ebx, ebp
mov dword [esp + 0x254], ebx
mov dword [esp + 0x258], esi
lea ebx, [0x732040]
mov dword [esp], ebx
lea ebx, [esp + 0x250]
mov dword [esp + 4], ebx
call fcn.004075f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x5155a6
movzx edx, byte [0xa7d7a8]
test dl, dl
je 0x515528
mov dword [0xa7d7ac], eax
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x515593
mov dword [0xa7d7b0], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], ecx
mov eax, dword [esp + 0x140]
test eax, eax
je 0x51558b
movzx edx, byte [eax + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x515555
or edx, 0x80
mov ebx, dword [esp + 0x110]
mov dword [esp], ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004a7300
jmp 0x51516f
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x515555
lea edi, [0xa7d7b0]
mov edx, eax
mov eax, ecx
call fcn.0044c9e0
mov eax, edx
jmp 0x515528
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x515555
mov eax, dword [ecx + 0x28]
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x50]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
cmp eax, 8
jne 0x515761
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.004a8b30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x44c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x450]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x454]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a7300
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24c], eax
lea eax, [0x719580]
mov dword [esp], eax
lea eax, [esp + 0x244]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x515756
movzx edx, byte [0xa7d7a8]
test dl, dl
je 0x5156af
mov dword [0xa7d7ac], ecx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x515746
mov dword [0xa7d7b0], eax
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
mov ecx, dword [esp + 0x150]
test ecx, ecx
je 0x51573e
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x5156dc
or edx, 0x80
mov ebx, dword [esp + 0x44c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x450]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x454]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a8800
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x480], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x488], eax
add esp, 0x448
ret
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x5156dc
lea edi, [0xa7d7b0]
call fcn.0044c9e0
jmp 0x5156af
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x5156dc
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x10c]
mov dword [esp], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
call fcn.00513fc0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
test ecx, ecx
je 0x5157f4
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov dword [esp + 0xf4], eax
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
call fcn.004a7300
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x80]
jmp 0x5157d1
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xa7cf04]
mov dword [esp + 8], edx
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
jne 0x51588b
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x458]
jmp 0x514a00
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00512550
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test edx, edx
je 0x5158e0
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], edx
mov dword [esp + 0x488], ecx
add esp, 0x448
ret
movzx ebx, byte [0xa7d7a8]
test bl, bl
je 0x5159a8
lea ebx, [0x78daa0]
mov dword [0xa7d7ac], ebx
mov ebp, dword [0xa8f2d0]
test ebp, ebp
jne 0x515998
mov dword [0xa7d7b0], eax
mov dword [esp + 0x100], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x148], ebx
mov dword [esp + 0x14c], eax
mov ebx, dword [esp + 0x148]
test ebx, ebx
je 0x515990
movzx ebp, byte [ebx + 0xf]
mov esi, ebp
and ebp, 0x1f
xchg esi, eax
test al, 0x20
xchg esi, eax
jne 0x51594c
or ebp, 0x80
mov ecx, dword [esp + 0x44c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.004a7300
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x90]
jmp 0x5158bd
xor ebp, ebp
xor eax, eax
xor ebx, ebx
jmp 0x51594c
lea edi, [0xa7d7b0]
call fcn.0044c9e0
jmp 0x51590f
lea ebx, [0x78daa0]
jmp 0x51590f
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xa7cf1c]
mov dword [esp + 8], edx
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5159fb
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x458]
jmp 0x5149f2
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.004a73e0
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x480], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xa7cf14]
mov dword [esp + 8], edx
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
jne 0x515a9e
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x458]
jmp 0x5149e4
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00512380
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
je 0x515af3
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov dword [esp + 0xec], eax
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
sar edx, 0x1f
mov dword [esp + 0x10], edx
call fcn.004a7750
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0x78]
jmp 0x515ad0
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xa7cf3c]
mov dword [esp + 8], edx
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x515d64
lea edi, [esp + 0x294]
xor eax, eax
call fcn.0044cadb
mov ecx, dword [esp + 0x70]
cmp ecx, 0x17
jne 0x515d03
lea edi, [esp + 0x2f8]
call fcn.0044cadb
mov ecx, dword [esp + 0x10c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
call fcn.00512f40
lea edi, [esp + 0x2f8]
mov esi, dword [esp + 0x128]
call fcn.0044cfbe
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xe0], ecx
mov edx, dword [esp + 0x20]
lea edi, [esp + 0x294]
lea esi, [esp + 0x2f8]
call fcn.0044cfbe
mov eax, dword [esp + 0xe0]
test edx, edx
je 0x515c0d
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x480], ecx
mov dword [esp + 0x484], edx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov dword [esp + 0x7c], edx
mov dword [esp + 0xe0], eax
lea edi, [esp + 0x2d0]
lea esi, [esp + 0x294]
call fcn.0044cfbe
lea eax, [0x78b120]
mov dword [esp], eax
lea eax, [esp + 0x2d0]
mov dword [esp + 4], eax
call fcn.004073b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x515cfb
movzx edx, byte [0xa7d7a8]
test dl, dl
je 0x515c75
mov dword [0xa7d7ac], ecx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x515ceb
mov dword [0xa7d7b0], eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov ecx, dword [esp + 0x138]
test ecx, ecx
je 0x515ce3
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x515ca2
or edx, 0x80
mov ebx, dword [esp + 0x44c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x450]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x454]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a7300
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x7c]
jmp 0x515bea
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x515ca2
lea edi, [0xa7d7b0]
call fcn.0044c9e0
jmp 0x515c75
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x515ca2
lea edi, [esp + 0x2e4]
call fcn.0044cadb
mov ecx, dword [esp + 0x10c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
call fcn.00513270
lea edi, [esp + 0x2e4]
mov esi, dword [esp + 0x128]
call fcn.0044cfbe
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea edi, [esp + 0x294]
lea esi, [esp + 0x2e4]
call fcn.0044cfbe
jmp 0x515be6
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x458]
jmp 0x5149d6
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xa7cf0c]
mov dword [esp + 8], edx
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x516025
mov eax, dword [esp + 0x48]
test eax, eax
je 0x515fc9
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0x458]
movzx ecx, byte [ebx + edx]
movzx edx, cl
cmp edx, 7
jle 0x515f63
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 0
lea eax, [0x7a1301]
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], 0x22
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x1c0]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
test ecx, ecx
je 0x515e58
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov dword [esp + 0xe8], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x274], ebp
mov dword [esp + 0x278], ebx
mov dword [esp + 0x27c], edx
mov dword [esp + 0x280], esi
lea eax, [0x762020]
mov dword [esp], eax
lea eax, [esp + 0x274]
mov dword [esp + 4], eax
call fcn.004073b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x515f5b
movzx edx, byte [0xa7d7a8]
test dl, dl
je 0x515ecc
mov dword [0xa7d7ac], eax
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x515f45
mov dword [0xa7d7b0], ecx
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
mov eax, dword [esp + 0x160]
test eax, eax
je 0x515f3d
movzx edx, byte [eax + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x515ef9
or edx, 0x80
mov ebx, dword [esp + 0x44c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x450]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x454]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004a7300
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x98]
jmp 0x515e35
xor eax, eax
xor edx, edx
xor ecx, ecx
jmp 0x515ef9
lea edi, [0xa7d7b0]
mov edx, eax
mov eax, ecx
call fcn.0044c9e0
mov eax, edx
jmp 0x515ecc
xor eax, eax
xor edx, edx
xor ecx, ecx
jmp 0x515ef9
cmp eax, 1
jne 0x515f70
test edx, edx
jg 0x515dda
mov ebx, dword [esp + 0x10c]
movzx ebp, byte [eax + ebx - 1]
mov esi, 1
shl esi, cl
cmp cl, 0x20
sbb edi, edi
and esi, edi
dec esi
xchg ebp, eax
xchg esi, ebx
test bl, al
xchg esi, ebx
xchg ebp, eax
jne 0x515dda
lea esi, [eax - 1]
mov edi, esi
shl esi, 3
sub esi, edx
mov eax, edi
mov edi, dword [esp + 0xa4]
lea edx, [edi - 1]
mov edi, edx
neg edx
sar edx, 0x1f
and edx, 1
lea ebp, [ebx + edx]
mov edx, edi
mov ebx, eax
xor eax, eax
xor ecx, ecx
jmp 0x515e31
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
lea eax, [0x79b402]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], 0x16
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x1c8]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x515e31
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x458]
jmp 0x5149c8
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xa7cf24]
mov dword [esp + 8], edx
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
jne 0x51608f
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x458]
jmp 0x5149ba
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00512af0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xdc], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xf8], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x84], ebx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x44c]
mov dword [esp], esi
mov edi, dword [esp + 0x450]
mov dword [esp + 4], edi
mov ebp, dword [esp + 0x454]
mov dword [esp + 8], ebp
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.004a8b30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x44c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x450]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x454]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
call fcn.004a7300
mov eax, dword [esp + 0x84]
test eax, eax
je 0x516199
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x480], ecx
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x264], eax
lea eax, [0x748fe0]
mov dword [esp], eax
lea eax, [esp + 0x25c]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x516286
movzx edx, byte [0xa7d7a8]
test dl, dl
je 0x516207
mov dword [0xa7d7ac], ecx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x516279
mov dword [0xa7d7b0], eax
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], eax
mov ecx, dword [esp + 0x168]
test ecx, ecx
je 0x516271
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x516234
or edx, 0x80
mov ebx, dword [esp + 0x44c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x450]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x454]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a8800
mov eax, dword [esp + 0x84]
jmp 0x51616f
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x516234
lea edi, [0xa7d7b0]
call fcn.0044c9e0
jmp 0x516207
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x516234
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xa7cf34]
mov dword [esp + 8], edx
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x516475
mov eax, dword [esp + 0x464]
mov ecx, dword [esp + 0xbc]
cmp eax, ecx
ja 0x5175b0
lea edi, [esp + 0x33c]
lea esi, [0x800d40]
call fcn.0044cf96
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x33c], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x340], ecx
movzx ecx, byte [esp + 0x42]
mov byte [esp + 0x344], cl
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x348], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x34c], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x350], ecx
mov ecx, dword [esp + 0x460]
sub ecx, eax
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
mov ebx, dword [esp + 0x458]
add ecx, ebx
mov dword [esp + 0x354], ecx
mov ecx, dword [esp + 0xbc]
sub ecx, eax
mov dword [esp + 0x358], ecx
mov dword [esp + 0x35c], edx
lea edi, [esp + 0x360]
lea esi, [esp + 0x33c]
call fcn.0044cf96
lea eax, [0x762f20]
mov dword [esp], eax
lea eax, [esp + 0x360]
mov dword [esp + 4], eax
call fcn.004073b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x51646a
movzx edx, byte [0xa7d7a8]
test dl, dl
je 0x5163c3
mov dword [0xa7d7ac], ecx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x51645a
mov dword [0xa7d7b0], eax
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], eax
mov ecx, dword [esp + 0x130]
test ecx, ecx
je 0x516452
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x5163f0
or edx, 0x80
mov ebx, dword [esp + 0x44c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x450]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x454]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a7300
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x480], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x488], eax
add esp, 0x448
ret
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x5163f0
lea edi, [0xa7d7b0]
call fcn.0044c9e0
jmp 0x5163c3
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x5163f0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x458]
jmp 0x5149ac
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 0
lea eax, [0x796640]
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], 0xe
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x1d0]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], eax
mov dword [esp + 0x488], ecx
add esp, 0x448
ret
mov edi, dword [esp + 0x45c]
cmp ebp, edi
xchg esi, ebx
setg bl
xchg esi, ebx
jmp 0x51493e
movzx eax, byte [esp + 0x42]
xchg esi, ebx
cmp al, bl
xchg esi, ebx
je 0x514926
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x12c]
lea esi, [esp + 0x468]
call fcn.0044cfb4
call fcn.005175d0
movzx eax, byte [esp + 0x24]
test al, al
je 0x51659e
mov eax, dword [esp + 0x464]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x124]
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], edx
add esp, 0x448
ret
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xd0], eax
movzx eax, byte [esp + 0x42]
mov byte [esp + 0xd4], al
lea edi, [esp + 0x324]
lea esi, [esp + 0x468]
call fcn.0044cfb4
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x60]
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x1e4], eax
lea edi, [esp + 0x384]
xor eax, eax
call fcn.0044cad6
lea eax, [0x730440]
mov dword [esp], eax
mov ecx, dword [esp + 0xbc]
mov dword [esp + 4], ecx
call fcn.00407490
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x384], eax
mov dword [esp + 0x388], ecx
lea eax, [0x75d8e0]
mov dword [esp], eax
lea eax, [esp + 0xc8]
mov dword [esp + 4], eax
call fcn.00407680
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x390], eax
lea eax, [0x772d40]
mov dword [esp], eax
lea eax, [esp + 0x324]
mov dword [esp + 4], eax
call fcn.004073b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x394], ecx
mov dword [esp + 0x398], eax
lea eax, [0x730dc0]
mov dword [esp], eax
lea eax, [esp + 0x1e0]
mov dword [esp + 4], eax
call fcn.00407570
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x39c], ecx
mov dword [esp + 0x3a0], eax
lea eax, [0x730440]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.00407490
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x3a8], eax
lea eax, [0x7a3479]
mov dword [esp], eax
mov dword [esp + 4], 0x27
lea eax, [esp + 0x384]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 5
mov dword [esp + 0x10], 5
call fcn.004b4fd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], ecx
lea eax, [0x7fed00]
mov dword [esp], eax
lea eax, [esp + 0x1d8]
mov dword [esp + 4], eax
call fcn.004076f0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x54]
jmp 0x516582
cmp ebp, ebx
jne 0x51652c
cmp edx, ecx
jne 0x51652c
jmp 0x51491c
movzx ecx, byte [esp + 0x46b]
test cl, cl
je 0x5167cb
mov ecx, dword [esp + 0x470]
test ecx, ecx
je 0x5167c2
mov edx, dword [ecx]
mov ecx, dword [esp + 0x44]
xor eax, eax
mov ebp, 3
jmp 0x51490d
mov ecx, dword [esp + 0x44]
jmp 0x51490d
mov ecx, dword [esp + 0x44]
jmp 0x51490d
movzx ecx, byte [esp + 0x46a]
test cl, cl
je 0x516815
mov ecx, dword [esp + 0x470]
test ecx, ecx
je 0x516804
mov edx, dword [ecx]
xchg ebp, eax
test al, al
xchg ebp, eax
mov ecx, dword [esp + 0x44]
mov eax, 0
mov ebp, 1
jmp 0x514907
xchg ebp, eax
test al, al
xchg ebp, eax
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x74]
jmp 0x514907
xchg ebp, eax
test al, al
xchg ebp, eax
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x74]
jmp 0x514907
mov edi, ecx
mov ecx, dword [esp + 0x470]
test ecx, ecx
je 0x516859
mov ecx, dword [ecx]
xchg ebp, eax
test al, al
xchg ebp, eax
mov edi, eax
mov eax, 0
mov eax, 2
mov dword [esp + 0x74], eax
mov edx, ecx
mov ecx, dword [esp + 0x44]
mov eax, 0
jmp 0x5148fd
xchg ebp, eax
test al, al
xchg ebp, eax
mov ecx, edi
mov edi, eax
mov eax, 0
mov dword [esp + 0x74], eax
mov eax, edi
jmp 0x5148fd
mov edx, ebp
jmp 0x5148da
cmp ebp, 0x12
je 0x5148ae
mov ebp, ecx
mov ecx, dword [esp + 0x44]
jmp 0x5148b0
cmp ebp, 0x14
je 0x5148ae
cmp ebp, 0x16
je 0x5148ae
cmp ebp, 0x1b
je 0x5148ae
jmp 0x516881
mov ebp, dword [esp + 0x474]
test ebp, ebp
je 0x5168bd
mov ecx, dword [esp + 0x44]
jmp 0x5148b0
mov ebp, ecx
jmp 0x5168b4
mov ebx, dword [esp + 0x4c]
mov ebp, ecx
mov ecx, dword [esp + 0x44]
jmp 0x5148b0
mov eax, dword [esp + 0x50]
test eax, eax
je 0x5168db
mov eax, dword [eax + 4]
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x1f4], eax
lea eax, [0x799890]
mov dword [esp], eax
mov dword [esp + 4], 0x13
lea eax, [esp + 0x1f0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004b4fd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1ec], 0
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], ecx
lea eax, [0x7fed00]
mov dword [esp], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], eax
mov dword [esp + 0x488], ecx
add esp, 0x448
ret
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], esi
mov dword [esp + 0x488], edi
add esp, 0x448
ret
xchg ebp, eax
mov byte [esp + 0x43], al
xchg ebp, eax
mov dword [esp + 0xac], esi
mov dword [esp + 0xa8], edi
mov dword [esp], ebx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov ecx, dword [0xa7cf34]
mov dword [esp + 8], ecx
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x516a2e
movzx ecx, byte [esp + 0x43]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xb4]
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0x124]
jmp 0x51482f
mov eax, dword [esp + 0xac]
test eax, eax
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x45c]
mov ebx, dword [esp + 0x50]
jmp 0x5146e1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5146c6
mov eax, dword [esp + 0x44c]
mov dword [esp], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x12c]
lea esi, [esp + 0x468]
call fcn.0044cfb4
call fcn.005175d0
movzx eax, byte [esp + 0x24]
test al, al
je 0x516aca
mov eax, dword [esp + 0x464]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x124]
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], edx
add esp, 0x448
ret
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], 0
lea eax, [0x7a26d1]
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], 0x25
lea eax, [0x7fed00]
mov dword [esp], eax
lea eax, [esp + 0x1f8]
mov dword [esp + 4], eax
call fcn.004076f0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xbc]
jmp 0x516aae
mov dword [esp + 0x208], 0
mov dword [esp + 0x20c], 0
lea eax, [0x79ca37]
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], 0x19
lea eax, [0x7fed00]
mov dword [esp], eax
lea eax, [esp + 0x208]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], eax
mov dword [esp + 0x488], ecx
add esp, 0x448
ret
mov eax, 2
jmp 0x514681
mov eax, dword [esp + 0xbc]
mov eax, ebx
mov ebx, edi
mov edi, ecx
mov ecx, ebp
mov ebp, eax
mov eax, dword [esp + 0xbc]
mov eax, edx
mov edx, esi
mov esi, eax
mov eax, dword [esp + 0xbc]
jmp 0x51482f
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], edx
mov dword [esp + 0x488], ecx
add esp, 0x448
ret
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x6c]
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
test eax, eax
jne 0x514600
mov eax, dword [esp + 0x458]
mov dword [esp], eax
mov ecx, dword [esp + 0x45c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x460]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x464]
mov dword [esp + 0xc], ebx
call fcn.005138f0
mov eax, dword [esp + 0x20]
movzx ecx, byte [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
test esi, esi
jne 0x51758d
mov dword [esp + 0xa0], edx
mov dword [esp + 0xbc], ebp
add edx, eax
cmp edx, eax
jge 0x51756b
mov dword [esp + 0xc0], eax
mov eax, 1
mov byte [esp + 0x41], al
mov eax, dword [esp + 0xc0]
movzx ebp, byte [esp + 0x41]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5174f8
mov dword [esp + 0xb4], edx
test cl, cl
je 0x516db9
xor eax, eax
xor ecx, ecx
test esi, esi
jne 0x516d9d
mov dword [esp + 0xb8], esi
mov dword [esp + 0x124], ebx
test eax, eax
je 0x516d4e
movzx ebp, byte [0xa7d7a8]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x516cee
mov dword [0xa7d7ac], eax
mov ebp, dword [0xa8f2d0]
test ebp, ebp
jne 0x516d87
mov dword [0xa7d7b0], ecx
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
mov eax, dword [esp + 0x158]
test eax, eax
je 0x516d7f
movzx ebp, byte [eax + 0xf]
mov edi, ebp
and ebp, 0x1f
xchg edi, eax
test al, 0x20
xchg edi, eax
jne 0x516d1d
or ebp, 0x80
mov edx, dword [esp + 0x44c]
mov dword [esp], edx
mov edx, dword [esp + 0x450]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x454]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
call fcn.004a7300
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x480], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x488], eax
add esp, 0x448
ret
xor ebp, ebp
xor ecx, ecx
xor eax, eax
jmp 0x516d1d
lea edi, [0xa7d7b0]
mov ebp, eax
mov eax, ecx
call fcn.0044c9e0
mov eax, ebp
jmp 0x516cee
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], esi
mov dword [esp + 0x488], ebx
add esp, 0x448
ret
test edi, edi
jne 0x5174ef
test edx, edx
jl 0x5175be
cmp eax, edx
ja 0x5175be
mov ebp, dword [esp + 0x460]
cmp edx, ebp
ja 0x5175be
sub ebp, eax
mov ecx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
mov eax, edx
mov edx, dword [esp + 0x458]
mov edi, ebx
lea ebx, [edx + ebp]
mov dword [esp + 0x108], ebx
mov ebx, dword [esp + 0xbc]
cmp ebx, 0xc
jg 0x5171de
cmp ebx, 3
jg 0x517057
cmp ebx, 2
je 0x516fea
cmp ebx, 3
jne 0x516fdd
mov ebx, dword [esp + 0xa0]
test ebx, ebx
je 0x516f81
movzx edx, byte [edx + ebp]
movzx ebp, dl
cmp ebp, 7
jle 0x516f14
mov dword [esp + 0x210], 0
mov dword [esp + 0x214], 0
lea eax, [0x7a1301]
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], 0x22
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x210]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
mov dword [esp + 0x104], ecx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x284], ebp
mov dword [esp + 0x288], ebx
mov dword [esp + 0x28c], edx
mov dword [esp + 0x290], esi
lea edx, [0x762020]
mov dword [esp], edx
lea edx, [esp + 0x284]
mov dword [esp + 4], edx
call fcn.004073b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x9c]
mov esi, ebx
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov ebp, eax
mov eax, ecx
mov ecx, ebp
jmp 0x516ca9
cmp ebx, 1
jne 0x516f21
test ebp, ebp
jg 0x516e4e
mov dword [esp + 0xbc], ecx
mov esi, dword [esp + 0x108]
movzx edi, byte [ebx + esi - 1]
mov ecx, edx
mov eax, 1
shl eax, cl
cmp cl, 0x20
sbb edx, edx
and eax, edx
dec eax
xchg edi, ebx
test al, bl
xchg edi, ebx
jne 0x516e4e
dec ebx
mov edi, ebx
shl ebx, 3
sub ebx, ebp
mov eax, edi
mov edi, dword [esp + 0xbc]
lea edx, [edi - 1]
mov edi, edx
neg edx
sar edx, 0x1f
and edx, 1
lea ebp, [esi + edx]
mov edx, edi
xor ecx, ecx
mov esi, ebx
mov ebx, eax
xor eax, eax
jmp 0x516ea5
mov dword [esp + 0x218], 0
mov dword [esp + 0x21c], 0
lea eax, [0x79b402]
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], 0x16
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x218]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x516ea5
mov edx, edi
mov ebx, esi
xor ecx, ecx
xor eax, eax
jmp 0x516efe
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.005120f0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x124], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb8], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
lea ebp, [0x730500]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.004074f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x516efe
cmp ebx, 4
je 0x517179
cmp ebx, 6
je 0x5170f0
cmp ebx, 0xc
jne 0x516fdd
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00513800
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x124], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb8], ecx
lea edx, [0x730dc0]
mov dword [esp], edx
lea edx, [esp + 0x170]
mov dword [esp + 4], edx
call fcn.00407570
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x516efe
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00512af0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], ecx
mov dword [esp + 0x240], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x124], ecx
lea edx, [0x748fe0]
mov dword [esp], edx
lea edx, [esp + 0x238]
mov dword [esp + 4], edx
call fcn.004075f0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x516efe
mov dword [esp + 0x124], edi
mov dword [esp + 0xb8], esi
mov eax, dword [esp + 0x108]
mov dword [esp + 0x268], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x26c], eax
mov dword [esp + 0x270], ecx
lea eax, [0x719580]
mov dword [esp], eax
lea eax, [esp + 0x268]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x516efe
cmp ebx, 0x14
jg 0x517360
cmp ebx, 0x12
je 0x5172e2
cmp ebx, 0x13
je 0x517264
cmp ebx, 0x14
jne 0x516fdd
mov dword [esp], 0
mov eax, dword [esp + 0x108]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0043be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x220], ecx
mov dword [esp + 0x224], eax
lea eax, [0x730dc0]
mov dword [esp], eax
lea eax, [esp + 0x220]
mov dword [esp + 4], eax
call fcn.00407570
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
xor edx, edx
xor ebx, ebx
jmp 0x516efe
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00513590
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x124], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb8], ecx
lea edx, [0x730dc0]
mov dword [esp], edx
lea edx, [esp + 0x188]
mov dword [esp + 4], edx
call fcn.00407570
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x516efe
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.005134a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x124], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb8], ecx
lea edx, [0x730dc0]
mov dword [esp], edx
lea edx, [esp + 0x180]
mov dword [esp + 4], edx
call fcn.00407570
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x516efe
cmp ebx, 0x16
je 0x517471
cmp ebx, 0x17
je 0x5173f6
cmp ebx, 0x18
jne 0x516fdd
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00513270
lea edi, [esp + 0x2a8]
mov esi, dword [esp + 0x128]
call fcn.0044cfbe
mov eax, dword [esp + 0x24]
mov dword [esp + 0x124], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xb8], ecx
lea edx, [0x78b120]
mov dword [esp], edx
lea edx, [esp + 0x2a8]
mov dword [esp + 4], edx
call fcn.004073b0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x516efe
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00512f40
lea edi, [esp + 0x2bc]
mov esi, dword [esp + 0x128]
call fcn.0044cfbe
mov eax, dword [esp + 0x20]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x124], ecx
lea edx, [0x78b120]
mov dword [esp], edx
lea edx, [esp + 0x2bc]
mov dword [esp + 4], edx
call fcn.004073b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x516efe
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00513720
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x124], ecx
lea edx, [0x730dc0]
mov dword [esp], edx
lea edx, [esp + 0x178]
mov dword [esp + 4], edx
call fcn.00407570
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x516efe
xor eax, eax
xor ecx, ecx
jmp 0x516ca9
mov dword [esp + 0x58], eax
mov dword [esp + 0x228], 0
mov dword [esp + 0x22c], 0
lea eax, [0x796640]
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], 0xe
lea eax, [0x7fed20]
mov dword [esp], eax
lea eax, [esp + 0x228]
mov dword [esp + 4], eax
call fcn.004076f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], ecx
mov dword [esp + 0x488], eax
add esp, 0x448
ret
mov ebp, dword [esp + 0x45c]
cmp edx, ebp
xchg ebp, ebx
setg bl
xchg ebp, ebx
xchg ebp, eax
mov byte [esp + 0x41], al
xchg ebp, eax
mov ebp, dword [esp + 0xbc]
jmp 0x516c87
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], esi
mov dword [esp + 0x488], ebx
add esp, 0x448
ret
call fcn.004267e0
ud2
call fcn.004267e0
ud2
call fcn.004267e0
ud2
call fcn.004267e0
ud2
call fcn.0044b280
jmp fcn.00514480