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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5a2eb7
sub esp, 0x50
mov ebx, dword [esp + 0x54]
mov ebp, dword [ebx + 0x34]
test ebp, ebp
je 0x5a2e9e
mov ebp, dword [esp + 0x58]
cmp dword [ebx + 0x64], ebp
jge 0x5a2577
mov esi, dword [ebx + 0x7c]
test esi, esi
jne 0x5a24e9
mov dword [esp], ebx
call fcn.005a2120
movzx eax, byte [esp + 4]
test al, al
je 0x5a256e
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 0x5a2552
cmp ebx, esi
jge 0x5a2552
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 0x5a2524
mov esi, ebx
test edi, edi
je 0x5a2544
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 0x5a2561
cmp ebx, esi
jne 0x5a255f
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 0x5a2582
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 0x5a2625
mov dword [esp + 0x38], ebx
test cl, cl
je 0x5a259f
mov ebp, dword [edx + 0x78]
cmp dword [edx + 0x70], ebp
jne 0x5a2660
mov dword [esp], edx
call fcn.005a22a0
movzx eax, byte [esp + 4]
test al, al
je 0x5a2604
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x38]
jmp 0x5a2660
movzx ebx, byte [edx + 0x50]
test bl, bl
jne 0x5a2a65
mov ebx, dword [esp + 0x30]
jmp 0x5a25f5
movzx ebx, byte [edx + 0x50]
test bl, bl
jne 0x5a2b43
mov ebx, dword [esp + 0x30]
jmp 0x5a25f5
movzx ebx, byte [edx + 0x50]
test bl, bl
jne 0x5a2bd1
mov ebx, dword [esp + 0x30]
movzx ebp, byte [edx + 0x50]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5a2580
jmp 0x5a2c1a
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 0x5c]
mov ecx, dword [esp + 0x38]
cmp ecx, edx
ja 0x5a2658
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 0x5a2635
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
cmp ebx, ecx
jb 0x5a261f
jmp 0x5a2651
mov eax, dword [edx + 0x5c]
cmp ebx, eax
ja 0x5a2648
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 0x5a25f5
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 0x5a2777
cmp edi, ebp
jbe 0x5a2e95
movzx ebx, byte [esi + ebp]
test bl, 0x80
jne 0x5a26ad
mov dword [esp + 0x44], eax
mov eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
jmp 0x5a2714
mov byte [esp + 0xf], bl
and ebx, 0xffffffe0
cmp bl, 0xc0
jne 0x5a26ce
movzx ebx, byte [esp + 0xf]
mov ebx, 2
mov dword [esp + 0x10], ebx
movzx ebx, byte [esp + 0xf]
jmp 0x5a2714
movzx ebx, byte [esp + 0xf]
and ebx, 0xfffffff0
cmp bl, 0xe0
jne 0x5a26f0
movzx ebx, byte [esp + 0xf]
mov ebx, 3
mov dword [esp + 0x10], ebx
movzx ebx, byte [esp + 0xf]
jmp 0x5a2714
movzx ebx, byte [esp + 0xf]
and ebx, 0xfffffff8
cmp bl, 0xf0
jne 0x5a2aae
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 0x5a25c1
test bl, 0x80
jne 0x5a272a
and ebx, 0x7f
jmp 0x5a275d
mov ecx, ebx
and ebx, 0xffffffe0
cmp bl, 0xc0
jne 0x5a273b
and ecx, 0x1f
mov ebx, ecx
jmp 0x5a275d
mov ebx, ecx
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x5a274a
and ebx, 0xf
jmp 0x5a275d
mov ecx, ebx
and ebx, 0xfffffff8
cmp bl, 0xf0
jne 0x5a275b
and ecx, 7
mov ebx, ecx
jmp 0x5a275d
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 0x5a2d26
lea esi, [ebx - 2]
cmp esi, 1
ja 0x5a2cee
cmp ecx, 2
jl 0x5a25e5
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 0x5a2ce5
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 0x5a2cdc
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 0x5a2b8c
cmp ebx, 0xd800
jne 0x5a2882
cmp ecx, 4
jl 0x5a25d3
mov ebx, dword [esp + 0x18]
lea ebx, [ebx + esi + 2]
cmp edi, ebx
jbe 0x5a2cd3
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 0x5a2cca
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 0x5a2afb
and ecx, 0x3ff
shl ecx, 0xa
and ebp, 0x3ff
lea ebx, [ebp + ecx + 0x10000]
mov ecx, 4
jmp 0x5a2889
mov ebx, ebp
mov ecx, 2
cmp ebx, 9
je 0x5a28d6
cmp ebx, 0xa
je 0x5a28d6
cmp ebx, 0xd
je 0x5a28d6
lea ebp, [ebx - 0x20]
cmp ebp, 0x5e
jbe 0x5a28d6
cmp ebx, 0x85
je 0x5a28d6
lea ebp, [ebx - 0xa0]
cmp ebp, 0xd75f
jbe 0x5a28d6
lea ebp, [ebx - 0xe000]
cmp ebp, 0x1ffd
jbe 0x5a28d6
lea ebp, [ebx - 0x10000]
cmp ebp, 0xfffff
ja 0x5a2c39
lea ebp, [ecx + esi]
mov dword [edx + 0x78], ebp
add dword [edx + 0x80], ecx
cmp ebx, 0x7f
jg 0x5a2905
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [esp + 0x30]
cmp esi, ecx
jae 0x5a2cc3
mov byte [ebp + esi], bl
lea ebx, [esi + 1]
jmp 0x5a265d
cmp ebx, 0x7ff
jg 0x5a2956
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [esp + 0x30]
cmp esi, ecx
jae 0x5a2cbc
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 0x5a2cb3
and ecx, 0x3f
lea ebx, [ecx + 0x80]
mov byte [esi + edi + 1], bl
lea ebx, [esi + 2]
jmp 0x5a265d
cmp ebx, 0xffff
jg 0x5a29ce
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [esp + 0x30]
cmp esi, ecx
jae 0x5a2cac
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 0x5a2ca3
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 0x5a2c9c
and ebx, 0x3f
add ebx, 0x80
mov byte [esi + edi + 2], bl
lea ebx, [esi + 3]
jmp 0x5a265d
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [esp + 0x30]
cmp esi, ecx
jae 0x5a2c95
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 0x5a2c8c
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 0x5a2c85
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 0x5a2c7e
and ebp, 0x3f
add ebp, 0x80
xchg ebp, eax
mov byte [esi + edi + 3], al
xchg ebp, eax
lea ebx, [esi + 4]
jmp 0x5a265d
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x1f
mov ebx, dword [0x7e2780]
test ebx, ebx
jne 0x5a2a8d
lea eax, [0x6275d7]
mov dword [edx + 4], eax
jmp 0x5a2a9b
lea edi, [edx + 4]
lea eax, [0x6275d7]
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 [0x7e2780]
test ebx, ebx
jne 0x5a2ad6
lea eax, [0x625690]
mov dword [edx + 4], eax
jmp 0x5a2ae4
lea edi, [edx + 4]
lea eax, [0x625690]
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 [0x7e2780]
test ebx, ebx
jne 0x5a2b23
lea eax, [0x62554c]
mov dword [edx + 4], eax
jmp 0x5a2b31
lea edi, [edx + 4]
lea eax, [0x62554c]
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 [0x7e2780]
test ebx, ebx
jne 0x5a2b6b
lea eax, [0x627bbf]
mov dword [edx + 4], eax
jmp 0x5a2b79
lea edi, [edx + 4]
lea eax, [0x627bbf]
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 [0x7e2780]
test ebx, ebx
jne 0x5a2bb4
lea eax, [0x62691a]
mov dword [edx + 4], eax
jmp 0x5a2bc2
lea edi, [edx + 4]
lea eax, [0x62691a]
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 [0x7e2780]
test ebx, ebx
jne 0x5a2bf9
lea eax, [0x625624]
mov dword [edx + 4], eax
jmp 0x5a2c07
lea edi, [edx + 4]
lea eax, [0x625624]
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 0x5a2c32
mov byte [ebp + ebx], 0
inc dword [edx + 0x64]
inc ebx
jmp 0x5a2625
mov eax, ebx
call fcn.004638e0
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x22
mov ebp, dword [0x7e2780]
test ebp, ebp
jne 0x5a2c61
lea eax, [0x628887]
mov dword [edx + 4], eax
jmp 0x5a2c6f
lea edi, [edx + 4]
lea eax, [0x628887]
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, [0x5f0d80]
mov dword [esp], eax
lea eax, [0x673ea4]
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 0x5a2d9f
add ebp, ebx
cmp edi, ebp
jbe 0x5a2e8c
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 0x5a2d06
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x1c
add ecx, ebx
mov ebx, dword [0x7e2780]
test ebx, ebx
jne 0x5a2d7a
lea eax, [0x625e6e]
mov dword [edx + 4], eax
jmp 0x5a2d88
lea edi, [edx + 4]
lea eax, [0x625e6e]
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 0x5a2daa
mov ebx, dword [esp + 0x14]
jmp 0x5a2ddb
cmp esi, 2
jne 0x5a2dbd
mov ebx, dword [esp + 0x14]
cmp ebx, 0x80
jge 0x5a2ddb
jmp 0x5a2dc1
mov ebx, dword [esp + 0x14]
cmp esi, 3
jne 0x5a2dce
cmp ebx, 0x800
jge 0x5a2ddb
cmp esi, 4
jne 0x5a2e43
cmp ebx, 0x10000
jl 0x5a2e43
mov ecx, ebp
lea ebp, [ebx - 0xd800]
cmp ebp, 0x7ff
jbe 0x5a2dfe
cmp ebx, 0x10ffff
jg 0x5a2dfe
mov esi, ecx
mov ecx, dword [esp + 0x10]
jmp 0x5a2889
mov ecx, dword [edx + 0x80]
mov dword [edx], 2
mov dword [edx + 8], 0x19
mov ebp, dword [0x7e2780]
test ebp, ebp
jne 0x5a2e26
lea eax, [0x62464c]
mov dword [edx + 4], eax
jmp 0x5a2e34
lea edi, [edx + 4]
lea eax, [0x62464c]
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 [0x7e2780]
test ebx, ebx
jne 0x5a2e6b
lea eax, [0x628a63]
mov dword [edx + 4], eax
jmp 0x5a2e79
lea edi, [edx + 4]
lea eax, [0x628a63]
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, [0x5f0d80]
mov dword [esp], eax
lea eax, [0x673e9c]
mov dword [esp + 4], eax
call fcn.00435790
nop
call fcn.00462450
jmp fcn.005a2490