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

Disassembly:
mov ecx, dword [0x7f7460]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x5a56ec
sub esp, 0x88
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x98]
cmp ecx, eax
jle 0x5a4f2e
jbe 0x5a56e6
lea ebx, [eax + 1]
mov ebp, dword [esp + 0x8c]
movzx esi, byte [eax + ebp]
cmp ecx, ebx
jle 0x5a4ed1
mov edx, esi
and esi, 0x1f
xchg esi, eax
cmp al, 0x1f
xchg esi, eax
je 0x5a56cd
jmp 0x5a4f8b
lea eax, [0x5f7ae0]
mov dword [esp], eax
call fcn.0040c490
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x3c
lea ecx, [0x62db0c]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x669cac]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
lea eax, [0x5f7ae0]
mov dword [esp], eax
call fcn.0040c490
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x28
lea ecx, [0x62a2a5]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x669cac]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
cmp ecx, ebx
jbe 0x5a56c5
mov dword [esp + 0x28], ebx
movzx esi, byte [ebx + ebp]
lea edi, [ebx + 1]
xchg esi, eax
cmp al, 0x80
xchg esi, eax
jbe 0x5a5128
and esi, 0x7f
cmp esi, 4
jg 0x5a50cb
jne 0x5a502f
cmp ecx, edi
jbe 0x5a56be
movzx eax, byte [ebx + ebp + 1]
cmp eax, 0x7f
jg 0x5a4fd2
mov eax, dword [esp + 0x98]
jmp 0x5a502f
lea eax, [0x5f7ae0]
mov dword [esp], eax
call fcn.0040c490
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x23
lea ecx, [0x62894f]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x669cac]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
cmp ecx, edi
jbe 0x5a56b7
movzx eax, byte [ebx + ebp + 1]
test eax, eax
je 0x5a506e
lea eax, [ebx + esi + 1]
mov ebx, dword [esp + 0x94]
cmp ebx, eax
jb 0x5a56ae
cmp eax, edi
jb 0x5a56a5
mov byte [esp + 0x27], dl
xor eax, eax
xor eax, eax
mov dword [esp + 0x34], eax
xor eax, eax
jmp 0x5a5685
lea eax, [0x5f7ae0]
mov dword [esp], eax
call fcn.0040c490
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x28
lea ecx, [0x62a2cd]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x669cac]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
lea eax, [0x5f7ae0]
mov dword [esp], eax
call fcn.0040c490
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x20
lea ecx, [0x6278f7]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x669cac]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
jne 0x5a5131
mov esi, 0
jmp 0x5a5136
xchg esi, eax
movzx eax, al
xchg esi, eax
sete al
test esi, esi
jl 0x5a5301
mov dword [esp + 0x34], esi
add esi, edi
cmp ecx, esi
jl 0x5a52a4
mov ebx, dword [esp + 0x94]
cmp ebx, esi
jb 0x5a565c
cmp edi, esi
ja 0x5a5653
mov dword [esp + 0x38], esi
mov byte [esp + 0x26], al
sub ebx, edi
mov dword [esp + 0x44], ebx
neg ebx
sar ebx, 0x1f
and ebx, edi
add ebx, ebp
test al, al
je 0x5a51e7
test dl, 0x20
jne 0x5a5288
lea eax, [0x5f7ae0]
mov dword [esp], eax
call fcn.0040c490
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x3b
lea ecx, [0x62d92d]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x669cac]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
test dl, 0x20
jne 0x5a5288
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x28]
cmp edx, ecx
ja 0x5a564c
mov dword [esp + 0x40], edi
lea edi, [esp + 0x6c]
xor eax, eax
call fcn.00467549
mov ecx, dword [esp + 0x94]
sub ecx, edx
mov esi, dword [esp + 0x28]
sub esi, edx
mov eax, ecx
neg ecx
sar ecx, 0x1f
and edx, ecx
lea ecx, [ebp + edx]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x84], ecx
lea ecx, [0x6074c0]
mov dword [esp], ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 4], ecx
call fcn.00409a90
mov ecx, dword [esp + 8]
movzx edx, byte [esp + 0x26]
test dl, dl
mov eax, dword [esp + 0x40]
lea edx, [0x66a124]
jmp 0x5a5606
mov edx, dword [esp + 0x94]
xor ebx, ebx
xor ebx, ebx
mov dword [esp + 0x48], ebx
xor ebx, ebx
mov dword [esp + 0x2c], ebx
xor ebx, ebx
jmp 0x5a538e
lea eax, [0x5f7ae0]
mov dword [esp], eax
call fcn.0040c490
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x33
lea ecx, [0x62caef]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x669cac]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
lea eax, [0x5f7ae0]
mov dword [esp], eax
call fcn.0040c490
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x37
lea ecx, [0x62d414]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x669cac]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x8c]
mov eax, ebx
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x44]
mov ebx, esi
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x30], ebx
cmp edi, esi
jl 0x5a539e
test al, al
je 0x5a5578
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
call fcn.005a4e70
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
test eax, eax
jne 0x5a553a
mov dword [esp + 0x44], ecx
mov ebp, dword [esp + 0x2c]
inc ebp
mov esi, dword [esp + 0x30]
cmp esi, ebp
jb 0x5a53e1
mov eax, dword [esp + 0x48]
jmp 0x5a5429
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5f6da0]
mov dword [esp + 0x10], eax
call fcn.0044d830
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
mov esi, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x48], eax
lea edi, [eax + ebp*8 - 8]
mov dword [edi], ebx
mov ebx, dword [0x7f7690]
lea edi, [eax + ebp*8 - 4]
test ebx, ebx
jne 0x5a544a
movzx ebx, byte [esp + 0x26]
test bl, bl
jmp 0x5a5470
mov ebx, edi
call fcn.004672b0
mov dword [edi], edx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov eax, ebp
movzx ebp, byte [esp + 0x26]
xchg ebp, eax
test al, al
xchg ebp, eax
mov ebp, eax
mov edi, ebx
mov eax, dword [esp + 0x48]
movzx ebx, byte [esp + 0x26]
mov dword [edi], edx
je 0x5a535e
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
mov edx, dword [esp + 0x90]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x94]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.005a5700
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5a54fc
movzx edx, byte [esp + 0x10]
test dl, dl
jne 0x5a54d4
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
movzx ebx, byte [esp + 0x26]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
jmp 0x5a535e
movzx eax, byte [esp + 0x26]
mov edx, dword [esp + 0x94]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
jmp 0x5a557c
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
add esp, 0x88
ret
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
add esp, 0x88
ret
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ebx
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x28]
cmp esi, ebx
ja 0x5a5643
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x44], edi
lea edi, [esp + 0x54]
xor eax, eax
call fcn.0046754a
sub edx, esi
sub ebx, esi
mov ecx, edx
neg edx
sar edx, 0x1f
and esi, edx
lea edx, [ebp + esi]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x68], ecx
lea ecx, [0x604800]
mov dword [esp], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.00409a90
mov ecx, dword [esp + 8]
movzx edx, byte [esp + 0x26]
test dl, dl
mov eax, dword [esp + 0x44]
lea edx, [0x66a138]
je 0x5a560d
lea esi, [eax + 2]
jmp 0x5a5611
mov esi, dword [esp + 0x38]
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
add esp, 0x88
ret
mov eax, esi
mov ecx, ebx
call fcn.00467370
mov eax, edx
call fcn.00467370
mov eax, edi
mov ecx, esi
call fcn.00467370
mov ecx, esi
mov edx, ebx
call fcn.00467350
mov edx, dword [esp + 0x34]
shl edx, 8
movzx ebx, byte [ebp + edi]
inc eax
add edx, ebx
inc edi
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x34], edx
movzx edx, byte [esp + 0x27]
cmp eax, esi
jge 0x5a568f
cmp ecx, edi
ja 0x5a5665
jmp 0x5a569e
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
xor eax, eax
jmp 0x5a5139
mov eax, edi
call fcn.00467310
mov ecx, eax
mov eax, edi
call fcn.00467370
mov ecx, eax
mov edx, ebx
call fcn.00467350
mov eax, edi
call fcn.00467310
mov eax, edi
call fcn.00467310
mov eax, ebx
call fcn.00467310
inc ebx
cmp ecx, ebx
jbe 0x5a56df
lea esi, [ebx + ebp]
cmp byte [esi], 0x80
jae 0x5a56cc
inc ebx
jmp 0x5a4f8b
mov eax, ebx
call fcn.00467310
call fcn.00467310
nop
call fcn.00465ea0
jmp fcn.005a4e70