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

Disassembly:
mov ecx, dword [0x98cddc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5a20e8
sub esp, 0x70
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov ecx, dword [ecx + 0x18]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x5a1cd8
xor edx, edx
jmp 0x5a1ceb
movzx edx, byte [eax]
test dl, dl
je 0x5a1ce6
mov edx, 0xffffffff
jmp 0x5a1ceb
mov edx, 1
test edx, edx
jl 0x5a1d18
mov edx, dword [esp + 0x80]
mov ebx, dword [edx + 8]
test ebx, ebx
jne 0x5a1d01
xor ebx, ebx
jmp 0x5a1d14
movzx ebx, byte [edx]
test bl, bl
je 0x5a1d0f
mov ebx, 0xffffffff
jmp 0x5a1d14
mov ebx, 1
test ebx, ebx
jge 0x5a1d5c
lea eax, [0x6ec1a0]
mov dword [esp], eax
call fcn.0040bc10
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x13
lea ecx, [0x7328c6]
mov dword [eax], ecx
mov dword [esp + 0x84], 0
lea ecx, [0x7a4344]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x70
ret
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x34], edx
mov ebx, dword [eax + 4]
mov ebp, dword [eax + 0xc]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.0057e630
mov eax, dword [esp + 0x34]
cmp dword [esp + 0xc], eax
jg 0x5a1e87
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.0057e630
mov eax, dword [esp + 0x34]
cmp dword [esp + 0xc], eax
jg 0x5a1e87
lea ecx, [0x6e06e0]
mov dword [esp], ecx
lea ecx, [eax + 7]
sar ecx, 0x1f
shr ecx, 0x1d
lea eax, [ecx + eax + 7]
sar eax, 3
mov dword [esp + 0x2c], eax
shl eax, 1
mov dword [esp + 0x3c], eax
lea edx, [eax + 1]
mov dword [esp + 0x30], edx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.0046ca20
mov edx, dword [esp + 0x30]
test edx, edx
jbe 0x5a20de
mov ebx, dword [esp + 0xc]
mov byte [ebx], 4
mov ecx, dword [esp + 0x2c]
lea ebp, [ecx + 1]
cmp ebp, edx
ja 0x5a20d7
cmp ebp, 1
jb 0x5a20cb
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x38], ebp
mov esi, dword [esp + 0x3c]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add esi, ebx
test ecx, ecx
je 0x5a1e63
mov dword [esp + 0x68], esi
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00472270
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x3c]
mov eax, ebx
mov ebx, dword [esp + 0x7c]
mov edx, dword [ebx + 4]
mov dword [esp + 0x60], edx
mov ebx, dword [ebx + 8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
jmp 0x5a1ee2
lea eax, [0x6ec1a0]
mov dword [esp], eax
call fcn.0040bc10
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x16
lea ecx, [0x7345a2]
mov dword [eax], ecx
mov dword [esp + 0x84], 0
lea ecx, [0x7a4344]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x70
ret
lea eax, [ebp + 1]
mov ebp, dword [esp + 0x2c]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x58]
cmp ebp, ebx
jge 0x5a1f00
mov eax, dword [edx + ebp*4]
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
jmp 0x5a207e
test ecx, ecx
jge 0x5a1f06
xor ecx, ecx
mov ebx, dword [esp + 0x2c]
jmp 0x5a1f0d
inc ecx
cmp ecx, ebx
jge 0x5a1f21
jae 0x5a205d
movzx ebp, byte [ecx + esi]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5a1f0c
sub edi, ebx
mov ecx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
mov ebx, dword [esp + 0x38]
and edi, ebx
lea ebx, [edi + eax]
test ecx, ecx
je 0x5a1f5b
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x64], ebx
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00472270
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x80]
mov esi, dword [ebp + 4]
mov dword [esp + 0x5c], esi
mov ebp, dword [ebp + 8]
mov dword [esp + 0x1c], ebp
mov edx, ecx
xor edi, edi
jmp 0x5a1f7f
inc edi
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
cmp edi, ebp
jge 0x5a1f99
mov eax, dword [esi + edi*4]
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
jmp 0x5a201a
test ecx, ecx
jge 0x5a1fa2
xor ecx, ecx
jmp 0x5a1fa2
inc ecx
cmp ecx, edx
jge 0x5a1fb2
jae 0x5a1ffd
movzx ebp, byte [ecx + ebx]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5a1fa1
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
mov eax, dword [edx]
call eax
mov edx, dword [esp + 0x78]
mov eax, dword [edx]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ebx
add esp, 0x70
ret
mov eax, ecx
mov ecx, edx
call fcn.00471b30
lea ecx, [esi + 1]
shr eax, 8
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x24], ecx
mov ecx, ebp
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
cmp esi, 4
jge 0x5a1f76
lea ebp, [ecx - 1]
test ebp, ebp
jl 0x5a2038
cmp edx, ebp
jbe 0x5a2054
mov byte [ecx + ebx - 1], al
jmp 0x5a2006
test al, al
je 0x5a2006
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a3f70]
mov dword [esp + 4], eax
call fcn.0046ae10
mov eax, ebp
mov ecx, edx
call fcn.00471b30
mov eax, ecx
mov ecx, ebx
call fcn.00471b30
lea ecx, [edi + 1]
shr eax, 8
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x28], ecx
mov ecx, edx
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x28]
cmp edi, 4
jge 0x5a1ecb
lea edx, [ecx - 1]
test edx, edx
jl 0x5a20a0
mov ebx, dword [esp + 0x2c]
cmp ebx, edx
jbe 0x5a20c2
mov byte [ecx + esi - 1], al
jmp 0x5a2066
test al, al
jne 0x5a20aa
mov ebx, dword [esp + 0x2c]
jmp 0x5a2066
lea eax, [0x6e0660]
mov dword [esp], eax
lea eax, [0x7a3f70]
mov dword [esp + 4], eax
call fcn.0046ae10
mov eax, edx
mov ecx, ebx
call fcn.00471b30
mov eax, 1
xor ecx, ecx
call fcn.00471b90
mov ecx, ebp
call fcn.00471b70
xor eax, eax
mov ecx, eax
call fcn.00471b30
nop
call fcn.004706b0
jmp fcn.005a1ca0