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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5a31d7
sub esp, 0x50
mov ebx, dword [esp + 0x54]
mov ebp, dword [ebx + 0x34]
test ebp, ebp
je 0x5a31be
mov ebp, dword [esp + 0x58]
cmp dword [ebx + 0x64], ebp
jge 0x5a2897
mov esi, dword [ebx + 0x7c]
test esi, esi
jne 0x5a2809
mov dword [esp], ebx
call fcn.005a2440
movzx eax, byte [esp + 4]
test al, al
je 0x5a288e
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
mov esi, dword [ebx + 0x58]
mov eax, ebp
mov ebp, dword [ebx + 0x54]
mov ecx, ebp
mov ebp, dword [ebx + 0x5c]
mov edx, ebx
mov ebx, dword [ebx + 0x60]
test ebx, ebx
jle 0x5a2872
cmp ebx, esi
jge 0x5a2872
mov dword [esp + 0x24], esi
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, ebp
add ebp, ecx
sub esi, ebx
mov ebx, dword [esp + 0x24]
cmp ebx, esi
jg 0x5a2844
mov esi, ebx
test edi, edi
je 0x5a2864
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.00464180
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x24]
mov ebp, dword [edx + 0x60]
mov dword [edx + 0x60], 0
sub ebx, ebp
jmp 0x5a2881
cmp ebx, esi
jne 0x5a287f
mov dword [edx + 0x60], 0
xor esi, esi
mov ebx, esi
mov ebp, dword [edx + 0x5c]
mov dword [edx + 0x58], ebp
mov ecx, 1
jmp 0x5a28a2
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov byte [esp + 0x5c], 1
add esp, 0x50
ret
xor ecx, ecx
cmp dword [edx + 0x64], eax
jge 0x5a2945
mov dword [esp + 0x38], ebx
test cl, cl
je 0x5a28bf
mov ebp, dword [edx + 0x78]
cmp dword [edx + 0x70], ebp
jne 0x5a2980
mov dword [esp], edx
call fcn.005a25c0
movzx eax, byte [esp + 4]
test al, al
je 0x5a2924
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x38]
jmp 0x5a2980
movzx ebx, byte [edx + 0x50]
test bl, bl
jne 0x5a2d85
mov ebx, dword [esp + 0x30]
jmp 0x5a2915
movzx ebx, byte [edx + 0x50]
test bl, bl
jne 0x5a2e63
mov ebx, dword [esp + 0x30]
jmp 0x5a2915
movzx ebx, byte [edx + 0x50]
test bl, bl
jne 0x5a2ef1
mov ebx, dword [esp + 0x30]
movzx ebp, byte [edx + 0x50]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5a28a0
jmp 0x5a2f3a
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 0x5c]
mov ecx, dword [esp + 0x38]
cmp ecx, edx
ja 0x5a2978
mov dword [eax + 0x58], ecx
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov byte [ebp + ebx], 0
inc ebx
cmp eax, ebx
jle 0x5a2955
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
cmp ebx, ecx
jb 0x5a293f
jmp 0x5a2971
mov eax, dword [edx + 0x5c]
cmp ebx, eax
ja 0x5a2968
mov dword [edx + 0x58], ebx
mov byte [esp + 0x5c], 1
add esp, 0x50
ret
mov ecx, ebx
mov edx, eax
call fcn.00463920
mov eax, ebx
call fcn.004638e0
call fcn.00463920
inc dword [edx + 0x64]
mov ebp, dword [edx + 0x78]
mov ecx, dword [edx + 0x70]
mov esi, dword [edx + 0x6c]
cmp ecx, ebp
je 0x5a2915
mov dword [esp + 0x34], ebp
mov dword [esp + 0x4c], esi
mov dword [esp + 0x30], ebx
mov edi, ecx
sub ecx, ebp
mov ebx, dword [edx + 0x7c]
cmp ebx, 1
jne 0x5a2a97
cmp edi, ebp
jbe 0x5a31b5
movzx ebx, byte [esi + ebp]
test bl, 0x80
jne 0x5a29cd
mov dword [esp + 0x44], eax
mov eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
jmp 0x5a2a34
mov byte [esp + 0xf], bl
and ebx, 0xffffffe0
cmp bl, 0xc0
jne 0x5a29ee
movzx ebx, byte [esp + 0xf]
mov ebx, 2
mov dword [esp + 0x10], ebx
movzx ebx, byte [esp + 0xf]
jmp 0x5a2a34
movzx ebx, byte [esp + 0xf]
and ebx, 0xfffffff0
cmp bl, 0xe0
jne 0x5a2a10
movzx ebx, byte [esp + 0xf]
mov ebx, 3
mov dword [esp + 0x10], ebx
movzx ebx, byte [esp + 0xf]
jmp 0x5a2a34
movzx ebx, byte [esp + 0xf]
and ebx, 0xfffffff8
cmp bl, 0xf0
jne 0x5a2dce
movzx ebx, byte [esp + 0xf]
mov ebx, 4
mov dword [esp + 0x10], ebx
movzx ebx, byte [esp + 0xf]
mov esi, dword [esp + 0x10]
cmp esi, ecx
jg 0x5a28e1
test bl, 0x80
jne 0x5a2a4a
and ebx, 0x7f
jmp 0x5a2a7d
mov ecx, ebx
and ebx, 0xffffffe0
cmp bl, 0xc0
jne 0x5a2a5b
and ecx, 0x1f
mov ebx, ecx
jmp 0x5a2a7d
mov ebx, ecx
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x5a2a6a
and ebx, 0xf
jmp 0x5a2a7d
mov ecx, ebx
and ebx, 0xfffffff8
cmp bl, 0xf0
jne 0x5a2a7b
and ecx, 7
mov ebx, ecx
jmp 0x5a2a7d
xor ebx, ebx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x3c], eax
mov eax, 1
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
jmp 0x5a3046
lea esi, [ebx - 2]
cmp esi, 1
ja 0x5a300e
cmp ecx, 2
jl 0x5a2905
cmp ebx, 2
xchg esi, ebx
setne bl
xchg esi, ebx
xchg esi, eax
movzx eax, al
xchg esi, eax
mov dword [esp + 0x18], esi
add esi, ebp
cmp edi, esi
jbe 0x5a3005
mov dword [esp + 0x2c], esi
cmp ebx, 2
sete bl
mov ebp, dword [esp + 0x4c]
movzx esi, byte [ebp + esi]
mov dword [esp + 0x28], esi
movzx ebx, bl
mov dword [esp + 0x20], ebx
mov esi, dword [esp + 0x34]
add ebx, esi
cmp edi, ebx
jbe 0x5a2ffc
mov dword [esp + 0x34], ebx
movzx ebx, byte [ebp + ebx]
shl ebx, 8
mov ebp, dword [esp + 0x28]
add ebx, ebp
mov ebp, ebx
and ebx, 0xfc00
cmp ebx, 0xdc00
je 0x5a2eac
cmp ebx, 0xd800
jne 0x5a2ba2
cmp ecx, 4
jl 0x5a28f3
mov ebx, dword [esp + 0x18]
lea ebx, [ebx + esi + 2]
cmp edi, ebx
jbe 0x5a2ff3
mov ebx, dword [esp + 0x2c]
mov ecx, ebp
mov ebp, dword [esp + 0x4c]
movzx ebx, byte [ebp + ebx + 2]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x20]
lea ebx, [ebx + esi + 2]
cmp edi, ebx
jbe 0x5a2fea
mov ebx, dword [esp + 0x34]
movzx ebx, byte [ebp + ebx + 2]
shl ebx, 8
mov ebp, dword [esp + 0x28]
add ebx, ebp
mov ebp, ebx
and ebx, 0xfc00
cmp ebx, 0xdc00
jne 0x5a2e1b
and ecx, 0x3ff
shl ecx, 0xa
and ebp, 0x3ff
lea ebx, [ebp + ecx + 0x10000]
mov ecx, 4
jmp 0x5a2ba9
mov ebx, ebp
mov ecx, 2
cmp ebx, 9
je 0x5a2bf6
cmp ebx, 0xa
je 0x5a2bf6
cmp ebx, 0xd
je 0x5a2bf6
lea ebp, [ebx - 0x20]
cmp ebp, 0x5e
jbe 0x5a2bf6
cmp ebx, 0x85
je 0x5a2bf6
lea ebp, [ebx - 0xa0]
cmp ebp, 0xd75f
jbe 0x5a2bf6
lea ebp, [ebx - 0xe000]
cmp ebp, 0x1ffd
jbe 0x5a2bf6
lea ebp, [ebx - 0x10000]
cmp ebp, 0xfffff
ja 0x5a2f59
lea ebp, [ecx + esi]
mov dword [edx + 0x78], ebp
add dword [edx + 0x80], ecx
cmp ebx, 0x7f
jg 0x5a2c25
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [esp + 0x30]
cmp esi, ecx
jae 0x5a2fe3
mov byte [ebp + esi], bl
lea ebx, [esi + 1]
jmp 0x5a297d
cmp ebx, 0x7ff
jg 0x5a2c76
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [esp + 0x30]
cmp esi, ecx
jae 0x5a2fdc
mov ecx, ebx
sar ebx, 6
add ebx, 0xc0
mov byte [ebp + esi], bl
mov ebx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov edi, ebp
lea ebp, [esi + 1]
cmp ebx, ebp
jbe 0x5a2fd3
and ecx, 0x3f
lea ebx, [ecx + 0x80]
mov byte [esi + edi + 1], bl
lea ebx, [esi + 2]
jmp 0x5a297d
cmp ebx, 0xffff
jg 0x5a2cee
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [esp + 0x30]
cmp esi, ecx
jae 0x5a2fcc
mov ecx, ebx
sar ebx, 0xc
add ebx, 0xe0
mov byte [ebp + esi], bl
mov ebx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov edi, ebp
lea ebp, [esi + 1]
cmp ebx, ebp
jbe 0x5a2fc3
mov ebx, ecx
sar ecx, 6
and ecx, 0x3f
lea ebp, [ecx + 0x80]
xchg ebp, eax
mov byte [esi + edi + 1], al
xchg ebp, eax
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov edi, ebp
lea ebp, [esi + 2]
cmp ecx, ebp
jbe 0x5a2fbc
and ebx, 0x3f
add ebx, 0x80
mov byte [esi + edi + 2], bl
lea ebx, [esi + 3]
jmp 0x5a297d
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [esp + 0x30]
cmp esi, ecx
jae 0x5a2fb5
mov ecx, ebx
sar ebx, 0x12
add ebx, 0xf0
mov byte [ebp + esi], bl
mov ebx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov edi, ebp
lea ebp, [esi + 1]
cmp ebx, ebp
jbe 0x5a2fac
mov ebx, ecx
sar ecx, 0xc
and ecx, 0x3f
lea ebp, [ecx + 0x80]
xchg ebp, eax
mov byte [esi + edi + 1], al
xchg ebp, eax
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov edi, ebp
lea ebp, [esi + 2]
cmp ecx, ebp
jbe 0x5a2fa5
mov ebp, ebx
sar ebx, 6
and ebx, 0x3f
add ebx, 0x80
mov byte [esi + edi + 2], bl
mov ecx, dword [edx + 0x58]
mov ebx, dword [edx + 0x54]
mov edi, ebx
lea ebx, [esi + 3]
cmp ecx, ebx
jbe 0x5a2f9e
and ebp, 0x3f
add ebp, 0x80
xchg ebp, eax
mov byte [esi + edi + 3], al
xchg ebp, eax
lea ebx, [esi + 4]
jmp 0x5a297d
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x1f
mov ebx, dword [0x7e34c0]
test ebx, ebx
jne 0x5a2dad
lea eax, [0x62768e]
mov dword [edx + 4], eax
jmp 0x5a2dbb
lea edi, [edx + 4]
lea eax, [0x62768e]
call fcn.00463860
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], 0xffffffff
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x1b
mov ebx, dword [0x7e34c0]
test ebx, ebx
jne 0x5a2df6
lea eax, [0x625745]
mov dword [edx + 4], eax
jmp 0x5a2e04
lea edi, [edx + 4]
lea eax, [0x625745]
call fcn.00463860
mov dword [edx + 0xc], ecx
movzx eax, byte [esp + 0xf]
movzx eax, al
mov dword [edx + 0x10], eax
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x1b
mov ebx, dword [0x7e34c0]
test ebx, ebx
jne 0x5a2e43
lea eax, [0x625601]
mov dword [edx + 4], eax
jmp 0x5a2e51
lea edi, [edx + 4]
lea eax, [0x625601]
call fcn.00463860
lea eax, [ecx + 2]
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], ebp
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x20
mov ebx, dword [0x7e34c0]
test ebx, ebx
jne 0x5a2e8b
lea eax, [0x627c76]
mov dword [edx + 4], eax
jmp 0x5a2e99
lea edi, [edx + 4]
lea eax, [0x627c76]
call fcn.00463860
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], 0xffffffff
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x1d
mov ebx, dword [0x7e34c0]
test ebx, ebx
jne 0x5a2ed4
lea eax, [0x6269b2]
mov dword [edx + 4], eax
jmp 0x5a2ee2
lea edi, [edx + 4]
lea eax, [0x6269b2]
call fcn.00463860
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ebp
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x1b
mov ebx, dword [0x7e34c0]
test ebx, ebx
jne 0x5a2f19
lea eax, [0x6256d9]
mov dword [edx + 4], eax
jmp 0x5a2f27
lea edi, [edx + 4]
lea eax, [0x6256d9]
call fcn.00463860
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], 0xffffffff
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
cmp ebx, ecx
jae 0x5a2f52
mov byte [ebp + ebx], 0
inc dword [edx + 0x64]
inc ebx
jmp 0x5a2945
mov eax, ebx
call fcn.004638e0
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x22
mov ebp, dword [0x7e34c0]
test ebp, ebp
jne 0x5a2f81
lea eax, [0x62895f]
mov dword [edx + 4], eax
jmp 0x5a2f8f
lea edi, [edx + 4]
lea eax, [0x62895f]
call fcn.00463860
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ebx
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov eax, ebx
call fcn.004638e0
mov eax, ebp
call fcn.004638e0
mov eax, ebp
mov ecx, ebx
call fcn.004638e0
mov eax, esi
call fcn.004638e0
mov eax, ebp
call fcn.004638e0
mov eax, ebp
mov ecx, ebx
call fcn.004638e0
mov eax, esi
call fcn.004638e0
mov eax, ebp
mov ecx, ebx
call fcn.004638e0
mov eax, esi
call fcn.004638e0
mov eax, esi
call fcn.004638e0
mov eax, ebx
mov ecx, edi
call fcn.004638e0
mov eax, ebx
mov ecx, edi
call fcn.004638e0
mov eax, ebx
mov ecx, edi
call fcn.004638e0
mov eax, esi
mov ecx, edi
call fcn.004638e0
lea eax, [0x5f0dc0]
mov dword [esp], eax
lea eax, [0x6743c8]
mov dword [esp + 4], eax
call fcn.00435790
inc ebx
mov ebp, dword [esp + 0x14]
shl ebp, 6
movzx eax, byte [esp + 0xf]
and eax, 0x3f
add eax, ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x1c], ebx
mov ebx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x1c]
cmp ebx, esi
jge 0x5a30bf
add ebp, ebx
cmp edi, ebp
jbe 0x5a31ac
movzx ebp, byte [ecx + ebp]
xchg ebp, eax
mov byte [esp + 0xf], al
xchg ebp, eax
and ebp, 0xffffffc0
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
je 0x5a3026
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x1c
add ecx, ebx
mov ebx, dword [0x7e34c0]
test ebx, ebx
jne 0x5a309a
lea eax, [0x625f23]
mov dword [edx + 4], eax
jmp 0x5a30a8
lea edi, [edx + 4]
lea eax, [0x625f23]
call fcn.00463860
mov dword [edx + 0xc], ecx
movzx eax, byte [esp + 0xf]
movzx eax, al
mov dword [edx + 0x10], eax
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
cmp esi, 1
jne 0x5a30ca
mov ebx, dword [esp + 0x14]
jmp 0x5a30fb
cmp esi, 2
jne 0x5a30dd
mov ebx, dword [esp + 0x14]
cmp ebx, 0x80
jge 0x5a30fb
jmp 0x5a30e1
mov ebx, dword [esp + 0x14]
cmp esi, 3
jne 0x5a30ee
cmp ebx, 0x800
jge 0x5a30fb
cmp esi, 4
jne 0x5a3163
cmp ebx, 0x10000
jl 0x5a3163
mov ecx, ebp
lea ebp, [ebx - 0xd800]
cmp ebp, 0x7ff
jbe 0x5a311e
cmp ebx, 0x10ffff
jg 0x5a311e
mov esi, ecx
mov ecx, dword [esp + 0x10]
jmp 0x5a2ba9
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x19
mov ebp, dword [0x7e34c0]
test ebp, ebp
jne 0x5a3146
lea eax, [0x62471c]
mov dword [edx + 4], eax
jmp 0x5a3154
lea edi, [edx + 4]
lea eax, [0x62471c]
call fcn.00463860
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ebx
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x22
mov ebx, dword [0x7e34c0]
test ebx, ebx
jne 0x5a318b
lea eax, [0x628b3b]
mov dword [edx + 4], eax
jmp 0x5a3199
lea edi, [edx + 4]
lea eax, [0x628b3b]
call fcn.00463860
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], 0xffffffff
mov byte [esp + 0x5c], 0
add esp, 0x50
ret
mov eax, ebp
mov ecx, edi
call fcn.004638e0
mov eax, ebp
mov ecx, edi
call fcn.004638e0
lea eax, [0x5f0dc0]
mov dword [esp], eax
lea eax, [0x6743c0]
mov dword [esp + 4], eax
call fcn.00435790
nop
call fcn.00462450
jmp fcn.005a27b0