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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x1c]
cmp eax, dword [ecx + 8]
jbe 0x5a9ecc
sub esp, 0x9c
mov eax, dword [esp + 0xa4]
jmp 0x5a9b1d
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
lea ecx, [0x5faf80]
mov dword [esp], ecx
call fcn.0040b6c0
mov eax, dword [esp + 4]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
call fcn.005a8720
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], eax
lea edi, [esp + 0x50]
mov esi, dword [esp + 0x6c]
call fcn.0046182e
lea ecx, [0x5faf80]
mov dword [esp], ecx
lea edx, [esp + 0x50]
mov dword [esp + 4], edx
call fcn.00408f60
mov eax, dword [esp + 8]
lea ecx, [0x5faf80]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004b3850
mov eax, dword [esp + 8]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
lea edx, [0x5d6ee0]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
call fcn.005a9440
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x5a9eb7
lea edi, [esp + 0x50]
mov esi, dword [esp + 0x6c]
call fcn.0046182e
lea edi, [esp + 0x3c]
xor eax, eax
call fcn.0046134b
lea ecx, [esp + 0x50]
mov dword [esp], ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x14
call fcn.00402990
movzx ecx, byte [esp + 0xc]
test cl, cl
jne 0x5a9e82
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx + 0x28c]
mov ebx, dword [esp + 0x2c]
sub edx, ebx
mov ebp, dword [esp + 0x6c]
mov esi, dword [ebp]
cmp esi, eax
jb 0x5a9c55
cmp dword [ebp + 0x10], eax
jae 0x5a9c76
cmp esi, eax
jbe 0x5a9c55
mov edx, dword [ebp + 0x10]
mov esi, eax
sub eax, edx
mov edi, eax
jmp 0x5a9c7a
mov edx, dword [ebp + 0x10]
cmp edx, eax
jbe 0x5a9c66
mov edx, eax
sub eax, esi
mov esi, edx
mov edi, eax
jmp 0x5a9c7a
mov edi, eax
sub eax, esi
mov esi, edi
sub edi, edx
cmp edi, eax
ja 0x5a9c7a
mov edi, eax
jmp 0x5a9c7a
mov esi, eax
mov edi, edx
mov dword [esp + 0x38], esi
movzx eax, byte [ecx + 0x295]
test al, al
je 0x5a9cb9
mov dword [esp], ecx
lea eax, [0x5d6ee0]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edi
call fcn.005abfb0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
jmp 0x5a9ce7
mov dword [esp], ecx
lea eax, [0x5d6ee0]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edi
call fcn.005ab620
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
test eax, eax
jne 0x5a9e6d
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x200
call fcn.005a8b60
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.005a80d0
movzx eax, byte [esp + 8]
test al, al
je 0x5a9e61
lea edi, [esp + 0x70]
xor eax, eax
call fcn.00461345
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x84], ecx
lea edi, [esp + 0x88]
mov esi, dword [esp + 0x6c]
call fcn.0046182e
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx + 0xb0]
lea ebx, [edx + 1]
mov ebp, dword [ecx + 0xac]
mov eax, ecx
mov ecx, dword [ecx + 0xb4]
cmp ecx, ebx
jae 0x5a9e13
lea eax, [0x5f8b80]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.0044a7d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0xb4], edx
mov edx, dword [0x7e1c20]
test edx, edx
jne 0x5a9e02
mov dword [ebx + 0xac], eax
jmp 0x5a9e0d
lea edi, [ebx + 0xac]
call fcn.004610d0
mov edx, ecx
mov ebp, eax
mov eax, ebx
lea ecx, [edx + 1]
mov dword [eax + 0xb0], ecx
mov ecx, dword [0x7e1c20]
imul edx, edx, 0x2c
lea edi, [ebp + edx]
test ecx, ecx
jne 0x5a9e3b
lea esi, [esp + 0x70]
call fcn.004617f2
jmp 0x5a9b19
lea eax, [0x5f8b80]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x70]
mov dword [esp + 8], eax
call fcn.004100e0
mov eax, dword [esp + 0xa0]
jmp 0x5a9b19
mov eax, dword [esp + 0xa0]
jmp 0x5a9b19
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ecx
add esp, 0x9c
ret
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x5a9e9a
mov byte [eax + 0x29c], 1
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
add esp, 0x9c
ret
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
add esp, 0x9c
ret
call fcn.0045fcc0
jmp fcn.005a9af0