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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x154]
cmp eax, dword [ecx + 8]
jbe 0x5a3449
sub esp, 0x1d4
mov eax, 0
lea edi, [esp + 0xa4]
call fcn.0044cada
mov eax, dword [esp + 0x1e0]
test eax, eax
jne 0x5a122c
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp], eax
mov eax, dword [esp + 0x1ec]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x5a1141
mov ecx, dword [ecx + 4]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
lea eax, [0x719580]
mov dword [esp], eax
lea eax, [esp + 0x138]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1d0], eax
lea eax, [0x7aa01c]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x1c4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b5080
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1d8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0059da90
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], 0
add esp, 0x1d4
ret
mov eax, dword [esp + 0x1dc]
movzx ecx, byte [eax]
mov edx, dword [esp + 0x1e8]
mov dword [esp], edx
mov ebx, dword [esp + 0x1ec]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x1f0]
mov dword [esp + 8], ebp
cmp cl, 0x6e
sete cl
mov byte [esp + 0xc], cl
call fcn.0059e0a0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
test ebx, ebx
jne 0x5a33e1
test ecx, ecx
je 0x5a170c
mov edx, dword [esp + 0x1dc]
movzx ebx, byte [edx]
cmp bl, 0x22
je 0x5a152c
movzx eax, byte [esp + 0x1f4]
test al, al
jne 0x5a13fb
cmp bl, 0x66
jne 0x5a13cd
mov eax, 4
lea ecx, [0x78ff8c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x1e8]
mov dword [esp], edx
mov edx, dword [esp + 0x1ec]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1f0]
mov dword [esp + 8], edx
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x44]
mov dword [edi + 4], eax
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a13bf
mov ecx, dword [esp + 0x7c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a13a6
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], 0
add esp, 0x1d4
ret
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a135e
mov eax, dword [esp + 0x7c]
call fcn.0044c9e0
jmp 0x5a1343
cmp bl, 0x6e
jne 0x5a13e2
mov eax, 4
lea ecx, [0x7901bc]
jmp 0x5a12c8
cmp bl, 0x74
je 0x5a12bd
mov eax, 6
lea ecx, [0x791922]
jmp 0x5a12c8
mov dword [esp + 0x12c], edx
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp], eax
mov eax, dword [esp + 0x1ec]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x5a1459
mov ecx, dword [ecx + 4]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1c0], 0
lea eax, [0x719580]
mov dword [esp], eax
lea eax, [esp + 0x12c]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], ecx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1c0], eax
lea eax, [0x7aa01c]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x1b4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b5080
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1d8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0059da90
jmp 0x5a1389
mov dword [esp + 0x80], eax
mov dword [esp + 0x48], ecx
mov dword [esp], edx
mov eax, dword [esp + 0x1e0]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x1e4]
mov dword [esp + 8], ecx
call fcn.005a3df0
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
test al, al
jne 0x5a16d0
movzx eax, byte [esp + 0x1f4]
test al, al
je 0x5a16af
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp], eax
mov eax, dword [esp + 0x1ec]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x5a15e3
mov ecx, dword [ecx + 4]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
lea eax, [0x719580]
mov dword [esp], eax
lea eax, [esp + 0x120]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1b0], eax
lea eax, [0x7aa01c]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x1a4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b5080
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1fc], eax
add esp, 0x1d4
ret
mov eax, dword [0xa7cf54]
mov ecx, dword [0xa7cf50]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1fc], eax
add esp, 0x1d4
ret
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], ecx
add esp, 0x1d4
ret
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], edi
mov eax, dword [esp + 0x1dc]
movzx ecx, byte [eax]
cmp cl, 0x66
ja 0x5a3213
cmp cl, 0x22
je 0x5a2ad6
cmp cl, 0x66
jne 0x5a1cc2
movzx edx, byte [esp + 0x1f4]
test dl, dl
je 0x5a1cb6
mov ebx, dword [esp + 0x1e0]
cmp ebx, 4
je 0x5a1c94
cmp ebx, 5
je 0x5a1899
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ebx
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x110], eax
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
test eax, eax
je 0x5a17ae
mov eax, dword [eax + 4]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x184], 0
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea ecx, [0x719580]
mov dword [esp], ecx
lea ecx, [esp + 0x108]
mov dword [esp + 4], ecx
call fcn.004075f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], ecx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x190], eax
lea eax, [0x7aa01c]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x184]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b5080
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1d8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0059da90
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], 0
add esp, 0x1d4
ret
mov edx, dword [eax]
cmp edx, 0x736c6166
jne 0x5a176c
movzx edx, byte [eax + 4]
cmp dl, 0x65
jne 0x5a176c
cmp cl, 0x74
sete cl
mov edx, ebp
and ebp, 0x1f
cmp ebp, 1
je 0x5a1c7b
cmp ebp, 0x14
je 0x5a1ac3
movzx ecx, byte [esp + 0x1f4]
test cl, cl
je 0x5a19f6
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ebx
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x104], eax
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
test eax, eax
je 0x5a1923
mov eax, dword [eax + 4]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x180], 0
lea ecx, [0x719580]
mov dword [esp], ecx
lea ecx, [esp + 0xfc]
mov dword [esp + 4], ecx
call fcn.004075f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], ecx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x180], eax
lea eax, [0x7aa01c]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x174]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b5080
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1d8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0059da90
jmp 0x5a187c
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov edi, dword [esp + 4]
mov dword [edi + 4], 4
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a1ab6
lea ecx, [0x78ff8c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a1a9d
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a1a6d
lea eax, [0x78ff8c]
call fcn.0044c9e0
jmp 0x5a1a52
mov byte [esp + 0x2f], cl
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.004a6630
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5a1b9c
movzx ecx, byte [esp + 0x2f]
movzx ecx, cl
lea edx, [0xa3e800]
lea eax, [edx + ecx]
movzx ecx, byte [0xa7d7a8]
test cl, cl
je 0x5a1b94
lea ecx, [0x72d000]
mov dword [0xa7d7ac], ecx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x5a1b87
mov dword [0xa7d7b0], eax
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x5a1b7f
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x5a1b4c
or edx, 0x80
mov ebx, dword [esp + 0x94]
mov dword [esp], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a7300
jmp 0x5a187c
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x5a1b4c
lea edi, [0xa7d7b0]
call fcn.0044c9e0
jmp 0x5a1b1f
lea ecx, [0x72d000]
jmp 0x5a1b1f
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov edi, dword [esp + 4]
mov dword [edi + 4], 4
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a1c6e
lea ecx, [0x78ff8c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a1c55
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a1c25
lea eax, [0x78ff8c]
call fcn.0044c9e0
jmp 0x5a1c0a
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov byte [esp + 0xc], cl
call fcn.004a73e0
jmp 0x5a187c
mov esi, dword [eax]
cmp esi, 0x65757274
je 0x5a1caa
mov esi, dword [esp + 0x98]
jmp 0x5a1763
mov esi, dword [esp + 0x98]
jmp 0x5a18b4
mov ebx, dword [esp + 0x1e0]
jmp 0x5a18b4
cmp cl, 0x2d
je 0x5a1e1d
add ecx, 0xffffffd0
cmp cl, 9
jbe 0x5a1e1d
movzx ecx, byte [esp + 0x1f4]
test cl, cl
je 0x5a1dfc
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0xec], eax
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x5a1d30
mov ecx, dword [ecx + 4]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0
lea eax, [0x719580]
mov dword [esp], eax
lea eax, [esp + 0xe4]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x160], eax
lea eax, [0x7aa01c]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x154]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b5080
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1fc], eax
add esp, 0x1d4
ret
mov eax, dword [0xa7cf54]
mov ecx, dword [0xa7cf50]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1fc], eax
add esp, 0x1d4
ret
mov dword [esp], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x1e4]
mov dword [esp + 0xc], edx
call fcn.0043be60
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x6c]
mov ebx, edx
and edx, 0x1f
cmp edx, 0xc
ja 0x5a267b
lea ebp, [edx - 2]
cmp ebp, 4
jbe 0x5a2431
lea ebp, [edx - 7]
cmp ebp, 5
jbe 0x5a2215
cmp edx, 0x18
je 0x5a209e
movzx eax, byte [esp + 0x1f4]
test al, al
je 0x5a1fc3
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x5a1ef7
mov ecx, dword [ecx + 4]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
lea eax, [0x719580]
mov dword [esp], eax
lea eax, [esp + 0xcc]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x150], eax
lea eax, [0x7aa01c]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x144]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b5080
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1fc], eax
add esp, 0x1d4
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a2091
lea ecx, [0x791922]
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a2078
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a2048
lea eax, [0x791922]
call fcn.0044c9e0
jmp 0x5a202d
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [0xa7cf60]
cmp ecx, edx
je 0x5a20d7
mov ebx, dword [esp + 0x6c]
jmp 0x5a1e89
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [0xa7cf64]
mov dword [esp + 8], eax
call fcn.00402e70
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5a20ff
mov ebx, dword [esp + 0x6c]
jmp 0x5a1e89
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], ecx
call fcn.004a7cc0
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
call fcn.0059d8e0
movzx eax, byte [esp + 8]
test al, al
jne 0x5a187c
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
lea eax, [0x719580]
mov dword [esp], eax
lea eax, [esp + 0xd8]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
lea eax, [0x7a9834]
mov dword [esp], eax
mov dword [esp + 4], 0x40
lea eax, [esp + 0xbc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004b5080
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1fc], eax
add esp, 0x1d4
ret
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.00452d30
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test eax, eax
je 0x5a235d
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov eax, dword [esp + 4]
mov dword [esp + 0x90], eax
mov dword [esp], 0
lea ecx, [0x7928a4]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], ecx
call fcn.0043bce0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x90]
mov dword [edi + 4], eax
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a2354
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a233b
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a230b
mov eax, ecx
call fcn.0044c9e0
jmp 0x5a22f0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x94]
mov ebx, dword [eax]
shl ebx, 3
add ebx, 0xffffffc0
neg ebx
lea ebp, [ebx - 0x20]
mov esi, ecx
mov ecx, ebp
mov edi, edx
shl edx, cl
neg ecx
mov dword [esp + 0x68], ecx
shr edi, cl
mov ecx, ebx
shl esi, cl
cmp ebp, 0x20
sbb eax, eax
mov dword [esp + 0x64], eax
and edx, eax
mov eax, dword [esp + 0x68]
cmp eax, 0x20
sbb eax, eax
mov dword [esp + 0x60], eax
and edi, eax
cmp ecx, 0x20
sbb eax, eax
and esi, eax
or esi, edi
or esi, edx
mov ecx, ebp
mov edx, esi
shr esi, cl
mov ecx, ebx
mov ebp, dword [esp + 0x38]
mov edi, ebp
shl ebp, cl
and ebp, eax
shr ebp, cl
mov ebx, edx
shr edx, cl
mov ecx, edi
mov edi, dword [esp + 0x64]
and esi, edi
and ebp, eax
mov edi, ecx
mov ecx, dword [esp + 0x68]
shl ebx, cl
mov ecx, edi
mov edi, dword [esp + 0x60]
and ebx, edi
or ebp, ebx
or ebp, esi
and edx, eax
cmp ebp, ecx
setne al
mov ebx, dword [esp + 0x3c]
cmp edx, ebx
setne dl
or edx, eax
test dl, dl
jne 0x5a2245
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004a7b40
jmp 0x5a187c
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.00453560
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x5a2577
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov eax, dword [esp + 4]
mov dword [esp + 0x90], eax
mov dword [esp], 0
lea ecx, [0x7928a4]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], ecx
call fcn.0043bce0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x90]
mov dword [edi + 4], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a2570
mov dword [edi], eax
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a2557
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a2527
call fcn.0044c9e0
jmp 0x5a250c
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x94]
mov ebx, dword [eax]
shl ebx, 3
add ebx, 0xffffffc0
neg ebx
lea ebp, [ebx - 0x20]
cmp ebp, 0x20
sbb esi, esi
mov edi, esi
xchg esi, ebx
not ebx
xchg esi, ebx
or esi, ebp
mov dword [esp + 0x68], esi
cmp ebx, 0x20
sbb eax, eax
not eax
or eax, ebx
mov dword [esp + 0x74], eax
mov ecx, ebx
mov esi, dword [esp + 0x34]
shl esi, cl
mov dword [esp + 0x64], esi
mov ecx, ebp
mov esi, dword [esp + 0x34]
shl esi, cl
neg ecx
mov dword [esp + 0x60], ecx
mov ebp, dword [esp + 0x34]
shr ebp, cl
mov ecx, ebx
shl edx, cl
and esi, edi
mov edi, dword [esp + 0x60]
cmp edi, 0x20
sbb eax, eax
mov dword [esp + 0x60], eax
and ebp, eax
cmp ecx, 0x20
sbb eax, eax
and edx, eax
or edx, ebp
or edx, esi
mov ecx, edi
mov ebp, edx
shl edx, cl
mov ecx, dword [esp + 0x74]
mov esi, ebp
sar ebp, cl
mov ecx, dword [esp + 0x68]
sar esi, cl
mov ecx, ebx
shr ebx, 5
cmp ebx, 1
sbb ebx, ebx
xor ebx, 0xffffffff
and ebx, esi
mov esi, dword [esp + 0x60]
and edx, esi
mov esi, dword [esp + 0x64]
and esi, eax
shr esi, cl
and esi, eax
or esi, edx
or ebx, esi
mov eax, dword [esp + 0x34]
cmp ebx, eax
setne dl
mov ebx, dword [esp + 0x40]
cmp ebp, ebx
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5a2461
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
call fcn.004a7750
jmp 0x5a187c
lea ebp, [edx - 0xd]
cmp ebp, 1
jbe 0x5a28a8
cmp edx, 0x14
jne 0x5a1e80
mov edx, dword [esp + 0x1d8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.005a0ec0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
test eax, eax
je 0x5a26d7
mov edx, dword [esp + 0x1d8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0059da90
jmp 0x5a187c
mov dword [esp + 0x30], edx
mov dword [esp + 0x78], ebx
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x6c]
mov dword [esp + 8], edx
call fcn.004a6630
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5a27c9
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x5a27c1
movzx edx, byte [0xa7d7a8]
test dl, dl
je 0x5a27bb
mov dword [0xa7d7ac], ecx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x5a27aa
mov eax, dword [esp + 0x78]
mov dword [0xa7d7b0], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0xb4]
test ecx, ecx
je 0x5a27a2
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x5a276f
or edx, 0x80
mov ebx, dword [esp + 0x94]
mov dword [esp], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a7300
jmp 0x5a187c
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x5a276f
lea edi, [0xa7d7b0]
mov eax, dword [esp + 0x78]
call fcn.0044c9e0
jmp 0x5a2742
mov eax, dword [esp + 0x78]
jmp 0x5a2742
xor ecx, ecx
xor edx, edx
xor eax, eax
jmp 0x5a276f
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a289b
lea ecx, [0x791922]
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a2882
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a2852
lea eax, [0x791922]
call fcn.0044c9e0
jmp 0x5a2837
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00452910
movsd xmm0, qword [esp + 0xc]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x5a2a23
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov eax, dword [esp + 4]
mov dword [esp + 0x90], eax
mov dword [esp], 0
lea ecx, [0x7928a4]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], ecx
call fcn.0043bce0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x90]
mov dword [edi + 4], eax
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a2a1a
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a2a01
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a29d1
mov eax, ecx
call fcn.0044c9e0
jmp 0x5a29b6
mov eax, dword [esp + 0x5c]
cmp eax, 0xd
jne 0x5a2a91
xorps xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x5a2a41
movsd xmm1, qword [0x7fc350]
pxor xmm0, xmm1
movsd xmm1, qword [0x7fc338]
ucomisd xmm0, xmm1
jbe 0x5a2a8d
movsd xmm1, qword [0x7fc340]
ucomisd xmm1, xmm0
setae al
test al, al
jne 0x5a290b
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a7690
jmp 0x5a187c
xor eax, eax
jmp 0x5a2a5e
cmp eax, 0xe
je 0x5a2a66
lea eax, [0x74d440]
mov dword [esp], eax
call fcn.00409d00
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x1b
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a2ac6
lea eax, [0x79dcd3]
mov dword [edi], eax
jmp 0x5a3427
lea eax, [0x79dcd3]
call fcn.0044c9e0
jmp 0x5a3427
mov dword [esp], eax
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x1e4]
mov dword [esp + 8], edx
call fcn.005a3df0
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x18]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
test cl, cl
je 0x5a30b4
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x54], ebx
mov ecx, dword [esp + 0x6c]
mov ebp, ecx
and ecx, 0x1f
cmp ecx, 0x14
je 0x5a2ea7
cmp ecx, 0x17
je 0x5a2c66
cmp ecx, 0x18
jne 0x5a2b8b
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
call fcn.0043be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a7cc0
jmp 0x5a187c
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a2c59
lea ecx, [0x791bda]
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a2c40
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a2c10
lea eax, [0x791bda]
call fcn.0044c9e0
jmp 0x5a2bf5
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x28]
mov dword [esp], ecx
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 0x5a2dc8
mov eax, dword [0xa7c848]
mov eax, dword [eax + 0x140]
cmp eax, 0xffffffff
jne 0x5a2db9
mov eax, dword [esp + 0x50]
lea ecx, [eax + eax*2]
mov edx, ecx
shl ecx, 1
sar ecx, 0x1f
shr ecx, 0x1d
lea ecx, [ecx + edx*2]
sar ecx, 3
lea eax, [0x731080]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00438a70
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x8c], edx
mov ebx, dword [0xa7c848]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], ecx
call fcn.004dad30
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x5a2d9d
test eax, eax
jl 0x5a3442
mov ecx, dword [esp + 0x58]
cmp eax, ecx
ja 0x5a3442
mov edx, dword [esp + 0x94]
mov dword [esp], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
call fcn.004a7430
jmp 0x5a187c
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0059da90
jmp 0x5a187c
mov eax, dword [esp + 0x50]
shr eax, 2
lea ecx, [eax + eax*2]
jmp 0x5a2cdd
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a2e9a
lea ecx, [0x791bda]
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a2e81
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a2e51
lea eax, [0x791bda]
call fcn.0044c9e0
jmp 0x5a2e36
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.004a6630
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5a2fd5
mov dword [esp], 0
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], eax
call fcn.0043be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
lea eax, [0x730dc0]
mov dword [esp], eax
lea eax, [esp + 0xc4]
mov dword [esp + 4], eax
call fcn.00407570
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x5a2fcd
movzx edx, byte [0xa7d7a8]
test dl, dl
je 0x5a2f58
mov dword [0xa7d7ac], ecx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x5a2fc0
mov dword [0xa7d7b0], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x5a2fb8
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x5a2f85
or edx, 0x80
mov ebx, dword [esp + 0x94]
mov dword [esp], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a7300
jmp 0x5a187c
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x5a2f85
lea edi, [0xa7d7b0]
call fcn.0044c9e0
jmp 0x5a2f58
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x5a2f85
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x1d8]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x70], ebx
lea ebp, [0x762fa0]
mov dword [esp], ebp
call fcn.00409d00
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x5a30a7
lea ecx, [0x791bda]
mov dword [edi], ecx
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0xa8f2d0]
test ecx, ecx
jne 0x5a308e
mov eax, dword [esp + 0xa0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
lea eax, [0x7fe180]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0059da90
jmp 0x5a187c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa0]
call fcn.0044c9e0
mov edi, edx
jmp 0x5a305e
lea eax, [0x791bda]
call fcn.0044c9e0
jmp 0x5a3043
movzx eax, byte [esp + 0x1f4]
test al, al
je 0x5a31f2
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x5a3126
mov ecx, dword [ecx + 4]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
lea eax, [0x719580]
mov dword [esp], eax
lea eax, [esp + 0xf0]
mov dword [esp + 4], eax
call fcn.004075f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x170], eax
lea eax, [0x7aa01c]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x164]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b5080
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1fc], eax
add esp, 0x1d4
ret
mov eax, dword [0xa7cf54]
mov ecx, dword [0xa7cf50]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1fc], eax
add esp, 0x1d4
ret
cmp cl, 0x6e
jne 0x5a33d3
movzx ecx, byte [esp + 0x1f4]
test cl, cl
je 0x5a335f
mov ecx, dword [esp + 0x1e0]
cmp ecx, 4
je 0x5a3351
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ecx
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x11c], eax
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
test eax, eax
je 0x5a327e
mov eax, dword [eax + 4]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea ecx, [0x719580]
mov dword [esp], ecx
lea ecx, [esp + 0x114]
mov dword [esp + 4], ecx
call fcn.004075f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1a0], eax
lea eax, [0x7aa01c]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x194]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b5080
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1d8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0059da90
jmp 0x5a187c
mov edx, dword [eax]
cmp edx, 0x6c6c756e
jne 0x5a323c
mov eax, ebp
and ebp, 0x1f
lea ecx, [ebp - 0x14]
cmp ecx, 3
ja 0x5a187c
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.004a8370
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004a8f30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x94]
mov dword [esp], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
call fcn.004a7300
jmp 0x5a187c
cmp cl, 0x74
je 0x5a1743
jmp 0x5a1cc2
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x1e4]
mov dword [esp + 0xc], ecx
mov dword [esp], edx
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1fc], eax
add esp, 0x1d4
ret
mov eax, dword [esp + 0x5c]
mov dword [edi + 8], eax
lea eax, [0x73d160]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004275c0
ud2
call fcn.004267e0
ud2
call fcn.0044b280
jmp fcn.005a10a0