Function at 0x50f4d0
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 0x512609
sub esp, 0x448
mov eax, 0
lea edi, [esp + 0x2a8]
call fcn.0044ca86
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x240], eax
lea edi, [esp + 0x130]
call fcn.0044ca78
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.004a7b40
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 0x50f61e
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.0044cf64
call fcn.00512620
movzx eax, byte [esp + 0x24]
test al, al
je 0x50f5cd
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, [0x83c494]
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], 0x12
lea eax, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x230]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
jmp 0x50f5aa
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 0x511c2e
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.0050e940
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 0x511c12
mov dword [esp + 0xbc], eax
movzx eax, byte [esp + 0x469]
test al, al
je 0x511be8
movzx eax, byte [esp + 0x46a]
test al, al
je 0x511bde
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 0x511b6c
cmp eax, ebx
jne 0x511aa2
mov eax, dword [esp + 0x470]
mov eax, dword [eax]
cmp edi, eax
jne 0x511aa2
test esi, esi
jne 0x511a98
mov dword [esp + 0xb4], ebx
mov eax, dword [0xb80238]
mov ebx, dword [esp + 0x50]
cmp eax, ebx
je 0x511a0a
test esi, esi
jg 0x50f838
mov eax, dword [0xb80220]
cmp ebx, eax
je 0x50f7b3
mov dword [esp + 0x200], 0
mov dword [esp + 0x204], 0
lea eax, [0x84a93c]
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], 0x2d
lea eax, [0x8b3690]
mov dword [esp], eax
lea eax, [esp + 0x200]
mov dword [esp + 4], eax
call fcn.00407630
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 [0xb80224]
mov dword [esp + 8], eax
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x50f741
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.004a6bb0
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.0050e940
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 0x5119ee
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.00512ec0
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x10]
movzx ebx, byte [esp + 0x11]
test bl, bl
je 0x51191a
cmp ecx, 0x13
jne 0x51190b
mov ebx, dword [esp + 0x4c]
test ebx, ebx
jne 0x5118f3
mov ebp, dword [esp + 0x44]
cmp ebp, 0x12
jg 0x5118d6
cmp ebp, 0xc
jne 0x5118c2
mov ecx, ebp
cmp ebp, 0x17
jne 0x50f913
cmp ecx, 0x18
jne 0x50f913
test ebx, ebx
jne 0x50f913
mov ebp, 0x18
mov esi, edx
movzx edx, byte [esp + 0x47c]
test dl, dl
je 0x5118bb
mov edx, 0x11
mov dword [esp + 0x70], edx
movzx ebp, byte [esp + 0x469]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x511870
mov edi, eax
mov eax, 0
mov dword [esp + 0x74], eax
mov eax, edi
je 0x51181e
mov ebp, dword [esp + 0x74]
je 0x5117e3
mov dword [esp + 0xbc], edx
test al, al
je 0x5117ce
xchg edi, eax
test al, al
xchg edi, eax
je 0x511565
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
lea ebp, [edx + eax]
cmp ebp, edx
jge 0x511550
mov esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5114e1
cmp edx, ebp
ja 0x5125fb
mov esi, dword [esp + 0x460]
cmp ebp, esi
ja 0x5125fb
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 [0xb80238]
mov ecx, dword [esp + 0x50]
cmp edi, ecx
je 0x5112d8
mov ebx, dword [0xb80228]
cmp ebx, ecx
je 0x511091
mov ebx, dword [0xb80210]
cmp ebx, ecx
je 0x510dce
mov ebx, dword [0xb80240]
cmp ebx, ecx
je 0x510b7f
mov ebx, dword [0xb80218]
cmp ebx, ecx
je 0x510a9e
mov ebx, dword [0xb80220]
cmp ebx, ecx
je 0x5109fb
mov ebx, dword [0xb80208]
cmp ebx, ecx
je 0x51088b
mov ebx, dword [esp + 0x454]
mov edi, ebx
and ebx, 0x1f
cmp ebx, 6
ja 0x50fdf2
cmp ebx, 1
jne 0x50fbbc
cmp eax, 1
jne 0x50fb58
movzx eax, byte [esi + edx]
test al, al
jne 0x50fae4
xor eax, eax
xor ecx, ecx
xor edx, edx
test edx, edx
je 0x50fa9d
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.004a6bb0
mov eax, dword [esp + 0xfc]
mov edx, dword [esp + 0x88]
mov ebp, dword [esp + 0xbc]
jmp 0x50fa81
cmp al, 0xff
jne 0x50faf4
xor eax, eax
mov ecx, 1
xor edx, edx
jmp 0x50fa7d
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
lea eax, [0x83a635]
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], 0xf
lea eax, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x1b0]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0x454]
xor ecx, ecx
jmp 0x50fa7d
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1bc], 0
lea eax, [0x83a635]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], 0xf
lea eax, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x1b8]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0x454]
xor ecx, ecx
jmp 0x50fa7d
cmp ebx, 2
jne 0x50fd17
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.004a7b40
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 0x50fc9f
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.0050d3e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
je 0x50fc55
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.004a6f20
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x8c]
jmp 0x50fc32
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.0050d150
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x50fc32
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.004a6f20
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x94]
jmp 0x50fc32
lea ecx, [ebx - 5]
cmp ecx, 1
jbe 0x50fbc5
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.004a7b40
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, [0x839792]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xd
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0043bd30
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
lea eax, [0x8b3690]
mov dword [esp], eax
lea eax, [esp + 0x190]
mov dword [esp + 4], eax
call fcn.00407630
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 0x5105f6
cmp ebx, 0x18
jne 0x5100ab
mov ecx, dword [esp + 0x70]
cmp ecx, 0x13
jg 0x50fff7
cmp ecx, 0xc
je 0x50ffc4
cmp ecx, 0x12
je 0x50ff91
cmp ecx, 0x13
je 0x50ff5e
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
lea eax, [0x7b3fe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004073d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
lea eax, [0x847650]
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.004b4c20
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, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x198]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
xor edx, edx
xor ebx, ebx
test ecx, ecx
je 0x50ff13
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.004a7490
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0xb8]
jmp 0x50fef0
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.0050e5e0
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
jmp 0x50feec
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.0050e4f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x50feec
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.0050e850
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x50feec
cmp ecx, 0x14
je 0x510074
cmp ecx, 0x16
je 0x510041
cmp ecx, 0x1b
jne 0x50fe2c
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.0043beb0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
jmp 0x50feec
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.0050e770
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x50feec
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.0043beb0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
jmp 0x50feec
cmp ebx, 0x19
jne 0x50fd23
lea edx, [esp + 8]
mov dword [esp + 0x120], edx
xor ebx, ebx
jmp 0x5100ce
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 0x510198
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.0044cf1e
mov eax, dword [esp + 0x420]
test eax, eax
je 0x5100c3
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
lea eax, [0x844f80]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], 0x21
lea eax, [0x8b3690]
mov dword [esp], eax
lea eax, [esp + 0x1a8]
mov dword [esp + 4], eax
call fcn.00407630
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 0x510415
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 0x5101ee
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 0x5103e4
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.0044cf1e
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x5102a7
mov ecx, dword [esp + 0x3c0]
mov edx, dword [esp + 0x3bc]
mov ebx, dword [0xb80230]
cmp ebx, edx
jne 0x5102a7
mov dword [esp], edx
mov dword [esp + 4], ecx
mov eax, dword [0xb80234]
mov dword [esp + 8], eax
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x5102a7
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x124]
jmp 0x5101e1
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.004a4890
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, [0x833755]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 4
call fcn.0049d7f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00512940
lea edi, [esp + 0x30c]
mov esi, dword [esp + 0x11c]
call fcn.0044cf64
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.0044cf64
call fcn.0050f4d0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x5103c1
mov ebx, ecx
mov ecx, edx
mov edx, ebx
jmp 0x5101e1
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.0044cf1e
mov eax, dword [esp + 0x3f4]
mov ecx, dword [esp + 0x3f0]
mov edx, dword [0xb80230]
cmp edx, ecx
jne 0x5101b7
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [0xb80234]
mov dword [esp + 8], eax
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x5101b7
mov eax, dword [esp + 0x464]
mov ecx, dword [esp + 0xbc]
cmp eax, ecx
ja 0x5125ed
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.004a4890
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, [0x7b6400]
mov dword [esp], ebx
lea ebx, [esp + 0x250]
mov dword [esp + 4], ebx
call fcn.00407530
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x5105ee
movzx edx, byte [0xb80c38]
test dl, dl
je 0x510570
mov dword [0xb80c3c], eax
mov edx, dword [0xb92b90]
test edx, edx
jne 0x5105db
mov dword [0xb80c40], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], ecx
mov eax, dword [esp + 0x140]
test eax, eax
je 0x5105d3
movzx edx, byte [eax + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x51059d
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.004a6ad0
jmp 0x5101b7
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x51059d
lea edi, [0xb80c40]
mov edx, eax
mov eax, ecx
call fcn.0044c990
mov eax, edx
jmp 0x510570
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x51059d
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 0x5107a9
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.004a87c0
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.004a6ad0
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, [0x7948e0]
mov dword [esp], eax
lea eax, [esp + 0x244]
mov dword [esp + 4], eax
call fcn.00407530
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x51079e
movzx edx, byte [0xb80c38]
test dl, dl
je 0x5106f7
mov dword [0xb80c3c], ecx
mov edx, dword [0xb92b90]
test edx, edx
jne 0x51078e
mov dword [0xb80c40], eax
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
mov ecx, dword [esp + 0x150]
test ecx, ecx
je 0x510786
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x510724
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.004a8490
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 0x510724
lea edi, [0xb80c40]
call fcn.0044c990
jmp 0x5106f7
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x510724
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.0050f010
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 0x51083c
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.004a6ad0
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x80]
jmp 0x510819
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xb8020c]
mov dword [esp + 8], edx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5108d3
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 0x50fa48
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.0050d5b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test edx, edx
je 0x510928
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 [0xb80c38]
test bl, bl
je 0x5109f0
lea ebx, [0x831820]
mov dword [0xb80c3c], ebx
mov ebp, dword [0xb92b90]
test ebp, ebp
jne 0x5109e0
mov dword [0xb80c40], 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 0x5109d8
movzx ebp, byte [ebx + 0xf]
mov esi, ebp
and ebp, 0x1f
xchg esi, eax
test al, 0x20
xchg esi, eax
jne 0x510994
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.004a6ad0
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x90]
jmp 0x510905
xor ebp, ebp
xor eax, eax
xor ebx, ebx
jmp 0x510994
lea edi, [0xb80c40]
call fcn.0044c990
jmp 0x510957
lea ebx, [0x831820]
jmp 0x510957
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xb80224]
mov dword [esp + 8], edx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x510a43
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 0x50fa3a
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.004a6bb0
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 [0xb8021c]
mov dword [esp + 8], edx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x510ae6
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 0x50fa2c
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.0050d3e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
je 0x510b3b
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.004a6f20
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0x78]
jmp 0x510b18
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xb80244]
mov dword [esp + 8], edx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x510dac
lea edi, [esp + 0x294]
xor eax, eax
call fcn.0044ca8b
mov ecx, dword [esp + 0x70]
cmp ecx, 0x17
jne 0x510d4b
lea edi, [esp + 0x2f8]
call fcn.0044ca8b
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.0050df90
lea edi, [esp + 0x2f8]
mov esi, dword [esp + 0x128]
call fcn.0044cf6e
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.0044cf6e
mov eax, dword [esp + 0xe0]
test edx, edx
je 0x510c55
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.0044cf6e
lea eax, [0x82f3c0]
mov dword [esp], eax
lea eax, [esp + 0x2d0]
mov dword [esp + 4], eax
call fcn.004072f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x510d43
movzx edx, byte [0xb80c38]
test dl, dl
je 0x510cbd
mov dword [0xb80c3c], ecx
mov edx, dword [0xb92b90]
test edx, edx
jne 0x510d33
mov dword [0xb80c40], eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov ecx, dword [esp + 0x138]
test ecx, ecx
je 0x510d2b
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x510cea
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.004a6ad0
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x7c]
jmp 0x510c32
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x510cea
lea edi, [0xb80c40]
call fcn.0044c990
jmp 0x510cbd
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x510cea
lea edi, [esp + 0x2e4]
call fcn.0044ca8b
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.0050e2c0
lea edi, [esp + 0x2e4]
mov esi, dword [esp + 0x128]
call fcn.0044cf6e
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea edi, [esp + 0x294]
lea esi, [esp + 0x2e4]
call fcn.0044cf6e
jmp 0x510c2e
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 0x50fa1e
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xb80214]
mov dword [esp + 8], edx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x51106f
mov eax, dword [esp + 0x48]
test eax, eax
je 0x511013
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0x458]
movzx ecx, byte [ebx + edx]
movzx edx, cl
cmp edx, 7
jle 0x510fab
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 0
lea eax, [0x8455f6]
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], 0x22
lea eax, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x1c0]
mov dword [esp + 4], eax
call fcn.00407630
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 0x510ea0
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, [0x7f8f20]
mov dword [esp], eax
lea eax, [esp + 0x274]
mov dword [esp + 4], eax
call fcn.004072f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x510fa3
movzx edx, byte [0xb80c38]
test dl, dl
je 0x510f14
mov dword [0xb80c3c], eax
mov edx, dword [0xb92b90]
test edx, edx
jne 0x510f8d
mov dword [0xb80c40], ecx
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
mov eax, dword [esp + 0x160]
test eax, eax
je 0x510f85
movzx edx, byte [eax + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x510f41
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.004a6ad0
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x98]
jmp 0x510e7d
xor eax, eax
xor edx, edx
xor ecx, ecx
jmp 0x510f41
lea edi, [0xb80c40]
mov edx, eax
mov eax, ecx
call fcn.0044c990
mov eax, edx
jmp 0x510f14
xor eax, eax
xor edx, edx
xor ecx, ecx
jmp 0x510f41
cmp eax, 1
jne 0x510fb8
test edx, edx
jg 0x510e22
mov ebx, dword [esp + 0x10c]
movzx ebp, byte [eax + ebx - 1]
mov esi, 1
shl esi, cl
cmp cl, 0x20
sbb edi, edi
and edi, esi
lea esi, [edi - 1]
xchg ebp, eax
xchg esi, ebx
test bl, al
xchg esi, ebx
xchg ebp, eax
jne 0x510e22
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 0x510e79
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
lea eax, [0x83ec5e]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], 0x16
lea eax, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x1c8]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x510e79
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 0x50fa10
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xb8022c]
mov dword [esp + 8], edx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5110d9
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 0x50fa02
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.0050db50
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.004a7b40
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.004a87c0
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.004a6ad0
mov eax, dword [esp + 0x84]
test eax, eax
je 0x5111e3
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, [0x7d7d00]
mov dword [esp], eax
lea eax, [esp + 0x25c]
mov dword [esp + 4], eax
call fcn.00407530
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x5112d0
movzx edx, byte [0xb80c38]
test dl, dl
je 0x511251
mov dword [0xb80c3c], ecx
mov edx, dword [0xb92b90]
test edx, edx
jne 0x5112c3
mov dword [0xb80c40], eax
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], eax
mov ecx, dword [esp + 0x168]
test ecx, ecx
je 0x5112bb
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x51127e
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.004a8490
mov eax, dword [esp + 0x84]
jmp 0x5111b9
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x51127e
lea edi, [0xb80c40]
call fcn.0044c990
jmp 0x511251
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x51127e
mov dword [esp], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov edx, dword [0xb8023c]
mov dword [esp + 8], edx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x5114bf
mov eax, dword [esp + 0x464]
mov ecx, dword [esp + 0xbc]
cmp eax, ecx
ja 0x5125f4
lea edi, [esp + 0x33c]
lea esi, [0x8b5b00]
call fcn.0044cf46
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.0044cf46
lea eax, [0x7f9ca0]
mov dword [esp], eax
lea eax, [esp + 0x360]
mov dword [esp + 4], eax
call fcn.004072f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x5114b4
movzx edx, byte [0xb80c38]
test dl, dl
je 0x51140d
mov dword [0xb80c3c], ecx
mov edx, dword [0xb92b90]
test edx, edx
jne 0x5114a4
mov dword [0xb80c40], eax
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], eax
mov ecx, dword [esp + 0x130]
test ecx, ecx
je 0x51149c
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x51143a
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.004a6ad0
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 0x51143a
lea edi, [0xb80c40]
call fcn.0044c990
jmp 0x51140d
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x51143a
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 0x50f9f4
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 0
lea eax, [0x839cf4]
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], 0xe
lea eax, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x1d0]
mov dword [esp + 4], eax
call fcn.00407630
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 0x50f98e
movzx eax, byte [esp + 0x42]
xchg esi, ebx
cmp al, bl
xchg esi, ebx
je 0x50f976
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.0044cf64
call fcn.00512620
movzx eax, byte [esp + 0x24]
test al, al
je 0x5115e8
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.0044cf64
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.0044ca86
lea eax, [0x7b3fe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xbc]
mov dword [esp + 4], ecx
call fcn.004073d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x384], eax
mov dword [esp + 0x388], ecx
lea eax, [0x7f2320]
mov dword [esp], eax
lea eax, [esp + 0xc8]
mov dword [esp + 4], eax
call fcn.004075c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x390], eax
lea eax, [0x813ec0]
mov dword [esp], eax
lea eax, [esp + 0x324]
mov dword [esp + 4], eax
call fcn.004072f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x394], ecx
mov dword [esp + 0x398], eax
lea eax, [0x7b48a0]
mov dword [esp], eax
lea eax, [esp + 0x1e0]
mov dword [esp + 4], eax
call fcn.004074b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x39c], ecx
mov dword [esp + 0x3a0], eax
lea eax, [0x7b3fe0]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.004073d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x3a8], eax
lea eax, [0x847fa7]
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.004b4c20
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, [0x8b3690]
mov dword [esp], eax
lea eax, [esp + 0x1d8]
mov dword [esp + 4], eax
call fcn.00407630
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x54]
jmp 0x5115cc
cmp ebp, ebx
jne 0x511576
cmp edx, ecx
jne 0x511576
jmp 0x50f96c
movzx ecx, byte [esp + 0x46b]
test cl, cl
je 0x511815
mov ecx, dword [esp + 0x470]
test ecx, ecx
je 0x51180c
mov edx, dword [ecx]
mov ecx, dword [esp + 0x44]
xor eax, eax
mov ebp, 3
jmp 0x50f95d
mov ecx, dword [esp + 0x44]
jmp 0x50f95d
mov ecx, dword [esp + 0x44]
jmp 0x50f95d
movzx ecx, byte [esp + 0x46a]
test cl, cl
je 0x51185f
mov ecx, dword [esp + 0x470]
test ecx, ecx
je 0x51184e
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 0x50f957
xchg ebp, eax
test al, al
xchg ebp, eax
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x74]
jmp 0x50f957
xchg ebp, eax
test al, al
xchg ebp, eax
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x74]
jmp 0x50f957
mov edi, ecx
mov ecx, dword [esp + 0x470]
test ecx, ecx
je 0x5118a3
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 0x50f94d
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 0x50f94d
mov edx, ebp
jmp 0x50f92a
cmp ebp, 0x12
je 0x50f8fe
mov ebp, ecx
mov ecx, dword [esp + 0x44]
jmp 0x50f900
cmp ebp, 0x14
je 0x50f8fe
cmp ebp, 0x16
je 0x50f8fe
cmp ebp, 0x1b
je 0x50f8fe
jmp 0x5118cb
mov ebp, dword [esp + 0x474]
test ebp, ebp
je 0x511907
mov ecx, dword [esp + 0x44]
jmp 0x50f900
mov ebp, ecx
jmp 0x5118fe
mov ebx, dword [esp + 0x4c]
mov ebp, ecx
mov ecx, dword [esp + 0x44]
jmp 0x50f900
mov eax, dword [esp + 0x50]
test eax, eax
je 0x511925
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, [0x83d073]
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.004b4c20
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, [0x8b3690]
mov dword [esp], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 4], eax
call fcn.00407630
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 [0xb8023c]
mov dword [esp + 8], ecx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x511a78
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 0x50f87f
mov eax, dword [esp + 0xac]
test eax, eax
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x45c]
mov ebx, dword [esp + 0x50]
jmp 0x50f731
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x50f716
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.0044cf64
call fcn.00512620
movzx eax, byte [esp + 0x24]
test al, al
je 0x511b14
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, [0x846e69]
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], 0x25
lea eax, [0x8b3690]
mov dword [esp], eax
lea eax, [esp + 0x1f8]
mov dword [esp + 4], eax
call fcn.00407630
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xbc]
jmp 0x511af8
mov dword [esp + 0x208], 0
mov dword [esp + 0x20c], 0
lea eax, [0x8403a0]
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], 0x19
lea eax, [0x8b3690]
mov dword [esp], eax
lea eax, [esp + 0x208]
mov dword [esp + 4], eax
call fcn.00407630
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 0x50f6d1
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 0x50f87f
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 0x50f650
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.0050e940
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 0x5125d1
mov dword [esp + 0xa0], edx
mov dword [esp + 0xbc], ebp
add edx, eax
cmp edx, eax
jge 0x5125af
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 0x51253c
mov dword [esp + 0xb4], edx
test cl, cl
je 0x511e03
xor eax, eax
xor ecx, ecx
test esi, esi
jne 0x511de7
mov dword [esp + 0xb8], esi
mov dword [esp + 0x124], ebx
test eax, eax
je 0x511d98
movzx ebp, byte [0xb80c38]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x511d38
mov dword [0xb80c3c], eax
mov ebp, dword [0xb92b90]
test ebp, ebp
jne 0x511dd1
mov dword [0xb80c40], ecx
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
mov eax, dword [esp + 0x158]
test eax, eax
je 0x511dc9
movzx ebp, byte [eax + 0xf]
mov edi, ebp
and ebp, 0x1f
xchg edi, eax
test al, 0x20
xchg edi, eax
jne 0x511d67
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.004a6ad0
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 0x511d67
lea edi, [0xb80c40]
mov ebp, eax
mov eax, ecx
call fcn.0044c990
mov eax, ebp
jmp 0x511d38
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], esi
mov dword [esp + 0x488], ebx
add esp, 0x448
ret
test edi, edi
jne 0x512533
cmp eax, edx
ja 0x512602
mov ebp, dword [esp + 0x460]
cmp edx, ebp
ja 0x512602
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 0x512222
cmp ebx, 3
jg 0x51209b
cmp ebx, 2
je 0x51202e
cmp ebx, 3
jne 0x512021
mov ebx, dword [esp + 0xa0]
test ebx, ebx
je 0x511fc5
movzx edx, byte [edx + ebp]
movzx ebp, dl
cmp ebp, 7
jle 0x511f56
mov dword [esp + 0x210], 0
mov dword [esp + 0x214], 0
lea eax, [0x8455f6]
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], 0x22
lea eax, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x210]
mov dword [esp + 4], eax
call fcn.00407630
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, [0x7f8f20]
mov dword [esp], edx
lea edx, [esp + 0x284]
mov dword [esp + 4], edx
call fcn.004072f0
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 0x511cf3
cmp ebx, 1
jne 0x511f63
test ebp, ebp
jg 0x511e90
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 edx, eax
lea eax, [edx - 1]
xchg edi, ebx
test al, bl
xchg edi, ebx
jne 0x511e90
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 0x511ee7
mov dword [esp + 0x218], 0
mov dword [esp + 0x21c], 0
lea eax, [0x83ec5e]
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], 0x16
lea eax, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x218]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x511ee7
mov edx, edi
mov ebx, esi
xor ecx, ecx
xor eax, eax
jmp 0x511f40
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.0050d150
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, [0x7b40a0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00407430
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x511f40
cmp ebx, 4
je 0x5121bd
cmp ebx, 6
je 0x512134
cmp ebx, 0xc
jne 0x512021
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.0050e850
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, [0x7b48a0]
mov dword [esp], edx
lea edx, [esp + 0x170]
mov dword [esp + 4], edx
call fcn.004074b0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x511f40
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.0050db50
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, [0x7d7d00]
mov dword [esp], edx
lea edx, [esp + 0x238]
mov dword [esp + 4], edx
call fcn.00407530
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x511f40
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, [0x7948e0]
mov dword [esp], eax
lea eax, [esp + 0x268]
mov dword [esp + 4], eax
call fcn.00407530
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x511f40
cmp ebx, 0x14
jg 0x5123a4
cmp ebx, 0x12
je 0x512326
cmp ebx, 0x13
je 0x5122a8
cmp ebx, 0x14
jne 0x512021
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.0043beb0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x220], ecx
mov dword [esp + 0x224], eax
lea eax, [0x7b48a0]
mov dword [esp], eax
lea eax, [esp + 0x220]
mov dword [esp + 4], eax
call fcn.004074b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
xor edx, edx
xor ebx, ebx
jmp 0x511f40
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.0050e5e0
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, [0x7b48a0]
mov dword [esp], edx
lea edx, [esp + 0x188]
mov dword [esp + 4], edx
call fcn.004074b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x511f40
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.0050e4f0
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, [0x7b48a0]
mov dword [esp], edx
lea edx, [esp + 0x180]
mov dword [esp + 4], edx
call fcn.004074b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x511f40
cmp ebx, 0x16
je 0x5124b5
cmp ebx, 0x17
je 0x51243a
cmp ebx, 0x18
jne 0x512021
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.0050e2c0
lea edi, [esp + 0x2a8]
mov esi, dword [esp + 0x128]
call fcn.0044cf6e
mov eax, dword [esp + 0x24]
mov dword [esp + 0x124], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xb8], ecx
lea edx, [0x82f3c0]
mov dword [esp], edx
lea edx, [esp + 0x2a8]
mov dword [esp + 4], edx
call fcn.004072f0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x511f40
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.0050df90
lea edi, [esp + 0x2bc]
mov esi, dword [esp + 0x128]
call fcn.0044cf6e
mov eax, dword [esp + 0x20]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x124], ecx
lea edx, [0x82f3c0]
mov dword [esp], edx
lea edx, [esp + 0x2bc]
mov dword [esp + 4], edx
call fcn.004072f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x511f40
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.0050e770
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, [0x7b48a0]
mov dword [esp], edx
lea edx, [esp + 0x178]
mov dword [esp + 4], edx
call fcn.004074b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xb8]
jmp 0x511f40
xor eax, eax
xor ecx, ecx
jmp 0x511cf3
mov dword [esp + 0x58], eax
mov dword [esp + 0x228], 0
mov dword [esp + 0x22c], 0
lea eax, [0x839cf4]
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], 0xe
lea eax, [0x8b36b0]
mov dword [esp], eax
lea eax, [esp + 0x228]
mov dword [esp + 4], eax
call fcn.00407630
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 0x511cd1
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], esi
mov dword [esp + 0x488], ebx
add esp, 0x448
ret
call fcn.004265e0
ud2
call fcn.004265e0
ud2
call fcn.004265e0
ud2
call fcn.004265e0
ud2
call fcn.0044b230
jmp fcn.0050f4d0