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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x5a32aa
sub esp, 0xb8
mov eax, dword [esp + 0xc0]
movzx ecx, byte [eax]
mov byte [esp + 0x53], cl
mov edx, dword [esp + 0xc4]
lea ebx, [edx - 5]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0xc8]
lea esi, [ebp - 5]
mov dword [esp + 0x58], esi
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 5
add esi, eax
mov dword [esp + 0x9c], esi
mov edx, dword [esp + 0xbc]
cmp word [edx + 0x10], 0x304
jne 0x5a288f
cmp cl, 0x14
jne 0x5a288f
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], edi
mov byte [esp + 0xd8], 0x14
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xb8
ret
mov dword [esp], edx
call fcn.005a25e0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
test edx, edx
jne 0x5a28dc
mov eax, ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x54]
xor ebx, ebx
mov ebp, 0xffffffff
movzx esi, byte [esp + 0x53]
xchg esi, eax
mov byte [esp + 0x51], al
xchg esi, eax
mov esi, ecx
mov edi, edx
jmp 0x5a2f3c
je 0x5a3291
mov dword [esp + 0x74], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0xb4], ebx
lea eax, [0x685a80]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x5a296e
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
call eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x9c]
xor ebx, ebx
mov ebp, 0xffffffff
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x54]
jmp 0x5a2da0
lea eax, [0x697c60]
mov dword [esp], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x5a2bad
lea eax, [0x68de60]
mov dword [esp], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x5a3291
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x78], eax
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 4]
mov dword [esp + 0x80], edx
mov ebx, dword [eax + 0x20]
mov ecx, dword [ecx + 0x18]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x5a328c
lea edx, [eax + 1]
mov ebx, eax
mov eax, edx
cmp ecx, 0xffffffff
je 0x5a2a2d
cdq
idiv ecx
jmp 0x5a2a2f
xor edx, edx
mov eax, ecx
sub eax, edx
cmp ecx, 0xffffffff
je 0x5a2a3d
cdq
idiv ecx
jmp 0x5a2a3f
xor edx, edx
add edx, ebx
mov ebx, dword [esp + 0x74]
lea edx, [edx + ebx + 1]
mov eax, dword [esp + 0x54]
mov ebp, edx
cdq
idiv ecx
test edx, edx
jne 0x5a2b5b
mov eax, dword [esp + 0x54]
cmp ebp, eax
jg 0x5a2b5b
test ebx, ebx
jg 0x5a2a7b
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x9c]
jmp 0x5a2ad7
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
mov ebp, dword [esp + 0x9c]
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov esi, dword [esp + 0x58]
mov dword [esp + 0xc], esi
call ecx
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x74]
sub eax, ecx
lea esi, [eax - 5]
mov eax, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ecx
mov ebx, dword [esp + 0xc4]
sub ebx, ecx
add ebx, 0xfffffffb
mov ecx, dword [esp + 0x9c]
add esi, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0xa0], esi
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
call ecx
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 8], edx
call fcn.005a2710
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, dword [esp + 0xa0]
mov ebx, eax
mov ebp, ecx
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
jmp 0x5a2da0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x8959f0]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x9f8b40]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x54]
cmp edx, ebx
jg 0x5a2eea
test edx, edx
jne 0x5a2bd7
mov ebx, dword [esp + 0xbc]
lea esi, [ebx + 0x24]
mov ebp, 8
mov edi, 8
jmp 0x5a2beb
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x58]
mov edi, edx
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0xc4]
sub ebp, edx
mov dword [esp + 0x8c], ebp
mov ebp, dword [esp + 0xc8]
sub ebp, edx
add ebp, 0xfffffffb
mov dword [esp + 0x60], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
mov ebp, dword [esp + 0x9c]
add edx, ebp
mov dword [esp + 0xa0], edx
cmp word [ebx + 0x10], 0x304
jne 0x5a2c5f
mov ebp, dword [esp + 0xc8]
mov ebp, 5
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0xc8]
jmp 0x5a2d0a
mov dword [esp + 0x68], edi
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x7c], eax
mov edx, dword [ebx + 0x24]
mov ebp, dword [ebx + 0x28]
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x30], ebp
mov edx, dword [esp + 0xc0]
movzx ebp, word [edx]
movzx esi, byte [edx + 2]
mov word [ebx + 0x34], bp
xchg esi, eax
mov byte [ebx + 0x36], al
xchg esi, eax
mov ebp, dword [eax + 0x18]
mov dword [esp], ecx
call ebp
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x8c]
sub ecx, eax
mov eax, dword [esp + 0xbc]
lea ebx, [eax + 0x2c]
add ecx, 0xfffffffb
mov ebp, ecx
sar ecx, 8
mov esi, 0xd
mov byte [esi + ebx - 2], cl
xchg ebp, eax
mov byte [esi + ebx - 1], al
xchg ebp, eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x68]
mov ebp, 0xd
mov ecx, 0xd
mov dword [esp + 0x84], ecx
mov dword [esp + 0xb0], ebx
mov ecx, dword [esp + 0xac]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffffb
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x84]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebp
call eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
test eax, eax
jne 0x5a2e98
mov eax, dword [esp + 0x60]
mov ebp, 0xffffffff
mov esi, edx
mov edi, ecx
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0xa0]
xor ebx, ebx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xbc]
cmp word [eax + 0x10], 0x304
jne 0x5a2e7c
movzx eax, byte [esp + 0x53]
cmp al, 0x17
jne 0x5a2e2a
cmp esi, 0x4001
jg 0x5a2dd8
mov dword [esp + 0x88], ecx
lea eax, [esi - 1]
jmp 0x5a3208
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x8959f0]
mov dword [esp + 0xdc], eax
mov eax, 0x16
lea ecx, [0x9f8b40]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x8959f0]
mov dword [esp + 0xdc], eax
mov eax, 0xa
lea ecx, [0x9f8b40]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov dword [esp + 0x94], eax
movzx eax, byte [esp + 0x53]
mov byte [esp + 0x51], al
mov eax, dword [esp + 0x94]
jmp 0x5a2f3c
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x8959f0]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x9f8b40]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x8959f0]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x9f8b40]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov dword [esp + 0xa0], edx
xchg ebp, eax
mov byte [esp + 0x52], al
xchg ebp, eax
mov ebp, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
test ebp, ebp
jne 0x5a2f5c
mov edx, dword [esp + 0x58]
jmp 0x5a3137
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], ebx
mov eax, dword [ebp + 0x18]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jl 0x5a3092
mov dword [esp + 0x70], eax
mov edx, ecx
sub ecx, eax
mov ebx, dword [esp + 0x64]
sub ecx, ebx
mov ebx, ecx
shr ecx, 0x1f
dec ecx
and ecx, ebx
mov dword [esp + 0x8c], ecx
mov ebx, ecx
sar ecx, 8
mov ebp, dword [esp + 0xc0]
mov byte [ebp + 3], cl
mov byte [ebp + 4], bl
mov ecx, dword [esp + 0xbc]
mov esi, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x20]
mov dword [esp], esi
mov dword [esp + 4], edi
lea esi, [ecx + 0x2c]
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0xd
lea esi, [ecx + 0x24]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 8
mov dword [esp + 0x1c], 8
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], 5
mov ebp, dword [esp + 0xc8]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
mov esi, dword [esp + 0x60]
mov dword [esp + 0x34], esi
lea edi, [ebx + eax]
sub esi, edi
mov dword [esp + 0x88], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edi
add esi, ebp
mov dword [esp + 0x38], esi
sub edx, edi
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x40], edx
call fcn.005a11d0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x8c]
mov edx, eax
sub eax, ecx
neg eax
sar eax, 0x1f
and eax, ecx
mov ebx, dword [esp + 0xa0]
add eax, ebx
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x70]
cmp ebp, edi
je 0x5a3084
xor eax, eax
jmp 0x5a311b
xor edi, edi
xor edi, edi
xchg edi, eax
mov byte [esp + 0x50], al
xchg edi, eax
xor edi, edi
jmp 0x5a310b
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x8959f0]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x9f8b40]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
lea ecx, [edi + 1]
movzx edx, byte [edi + esi]
movzx edi, byte [edi + eax]
xor edx, edi
movzx edi, byte [esp + 0x50]
or edi, edx
mov edx, dword [esp + 0x60]
xchg edi, eax
mov byte [esp + 0x50], al
xchg edi, eax
mov edi, ecx
mov ecx, dword [esp + 0x8c]
cmp edi, ebp
jl 0x5a30e4
movzx eax, byte [esp + 0x50]
movzx eax, al
dec eax
shr eax, 0x1f
movzx ebp, byte [esp + 0x52]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
and ebp, eax
cmp ebp, 1
jne 0x5a313e
mov eax, dword [esp + 0xbc]
mov esi, ecx
mov edi, ebx
mov ecx, 7
jmp 0x5a3191
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x8959f0]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x9f8b40]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
dec ecx
test ecx, ecx
jl 0x5a31e8
movzx ebx, byte [eax + ecx + 0x24]
lea ebp, [ebx + 1]
xchg ebp, ebx
mov byte [eax + ecx + 0x24], bl
xchg ebp, ebx
cmp bl, 0xff
je 0x5a3190
mov dword [esp + 0xcc], edi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], edx
movzx eax, byte [esp + 0x51]
mov byte [esp + 0xd8], al
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xb8
ret
lea eax, [0x67e720]
mov dword [esp], eax
lea eax, [0x894eb0]
mov dword [esp + 4], eax
call fcn.00433690
dec eax
mov ecx, dword [esp + 0x88]
test eax, eax
jl 0x5a3277
movzx ecx, byte [edi + eax]
test cl, cl
jne 0x5a326a
test eax, eax
jne 0x5a3200
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x8959f0]
mov dword [esp + 0xdc], eax
mov eax, 0xa
lea ecx, [0x9f8b40]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov esi, eax
mov eax, ecx
mov ecx, dword [esp + 0x88]
jmp 0x5a327c
mov eax, 0x17
mov byte [esp + 0x51], al
mov eax, dword [esp + 0xbc]
jmp 0x5a2f3c
call fcn.00432570
lea eax, [0x67e720]
mov dword [esp], eax
lea eax, [0x894eb8]
mov dword [esp + 4], eax
call fcn.00433690
nop
call fcn.0045e260
jmp fcn.005a27e0