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

Disassembly:
mov ecx, dword [0x93d128]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5a1cb1
sub esp, 0x5c
movzx edx, byte [esp + 0x70]
test dl, dl
je 0x5a169b
mov edx, dword [esp + 0x68]
test edx, edx
setl bl
jmp 0x5a16a1
mov edx, dword [esp + 0x68]
xor ebx, ebx
test bl, bl
je 0x5a16b8
xor ebp, ebp
mov eax, ebx
mov ebx, dword [esp + 0x64]
sub ebp, ebx
mov ebx, 0
sbb ebx, edx
jmp 0x5a16c0
mov eax, ebx
mov ebx, edx
mov ebp, dword [esp + 0x64]
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x60]
movzx ecx, byte [edx + 4]
lea esi, [edx + 0x18]
test cl, cl
jne 0x5a16db
movzx ecx, byte [edx + 5]
test cl, cl
je 0x5a172d
mov ecx, dword [edx + 0x10]
add ecx, dword [edx + 0x14]
add ecx, 3
cmp ecx, 0x44
jg 0x5a16f0
mov ecx, 0x44
jmp 0x5a1732
mov dword [esp + 0x58], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x54], ebp
lea eax, [0x74afe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00448800
mov esi, dword [esp + 0xc]
movzx eax, byte [esp + 0x18]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
jmp 0x5a1732
mov ecx, 0x44
movzx edi, byte [edx + 5]
xchg edi, eax
test al, al
xchg edi, eax
je 0x5a1791
mov edi, dword [edx + 0x14]
test edi, edi
jne 0x5a17d4
test ebp, ebp
sete al
test ebx, ebx
sete dl
and edx, eax
test dl, dl
jne 0x5a1762
movzx eax, byte [esp + 0x18]
mov edx, dword [esp + 0x60]
jmp 0x5a17d4
mov eax, dword [esp + 0x60]
movzx ecx, byte [eax + 0xa]
mov byte [esp + 0x17], cl
mov byte [eax + 0xa], 0
mov edx, dword [eax + 0x10]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.005a0c40
movzx eax, byte [esp + 0x17]
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0xa], al
add esp, 0x5c
ret
movzx edi, byte [edx + 0xa]
xchg edi, eax
test al, al
xchg edi, eax
je 0x5a17d2
movzx edi, byte [edx + 4]
xchg edi, eax
test al, al
xchg edi, eax
je 0x5a17d2
mov edi, dword [edx + 0x10]
test al, al
jne 0x5a17c8
movzx eax, byte [edx + 7]
test al, al
je 0x5a17bb
movzx eax, byte [esp + 0x18]
jmp 0x5a17c8
movzx eax, byte [edx + 9]
test al, al
je 0x5a17cb
movzx eax, byte [esp + 0x18]
dec edi
jmp 0x5a17d4
movzx eax, byte [esp + 0x18]
jmp 0x5a17d4
xor edi, edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], edi
mov edx, dword [esp + 0x6c]
cmp edx, 8
jg 0x5a17f9
cmp edx, 2
je 0x5a1c78
cmp edx, 8
je 0x5a1c25
jmp 0x5a180b
cmp edx, 0xa
je 0x5a1b50
cmp edx, 0x10
je 0x5a18b6
mov dword [esp + 0x19], 0xe245d49e
lea edi, [esp + 0x1c]
lea esi, [0x78e88e]
call fcn.0045f81a
xor eax, eax
jmp 0x5a1832
movzx ebp, byte [esp + eax + 0x19]
add ebx, ebp
mov byte [esp + eax + 0x19], bl
inc eax
cmp eax, 0x1f
jge 0x5a184d
lea edx, [0x78e86c]
movzx ebx, byte [edx + eax]
jb 0x5a1826
mov ecx, 0x1f
call fcn.0045f150
mov dword [esp], 0
lea eax, [esp + 0x19]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1f
call fcn.0044b7a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a670
mov eax, dword [esp + 8]
lea ecx, [0x74af60]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434270
mov byte [ecx + esi - 1], al
shr ebp, 4
mov eax, ebx
shl eax, 0x1c
or ebp, eax
shr ebx, 4
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
mov ecx, edi
mov edi, dword [esp + 0x3c]
test ebx, ebx
sete al
seta dl
cmp ebp, 0x10
xchg edi, ebx
setae bl
xchg edi, ebx
and eax, edi
or edx, eax
test dl, dl
je 0x5a18f9
mov eax, ebp
and eax, 0xf
mov edx, dword [esp + 0x7c]
cmp edx, eax
jbe 0x5a1b28
lea edi, [ecx - 1]
mov edx, dword [esp + 0x78]
movzx eax, byte [edx + eax]
mov edx, dword [esp + 0x40]
cmp edx, edi
ja 0x5a1893
jmp 0x5a1b1f
test ebx, ebx
jne 0x5a1b12
mov edx, dword [esp + 0x7c]
cmp edx, ebp
jbe 0x5a1b09
lea eax, [ecx - 1]
mov ebx, dword [esp + 0x78]
movzx ebp, byte [ebx + ebp]
mov edi, dword [esp + 0x40]
cmp edi, eax
jbe 0x5a1b02
xchg ebp, eax
mov byte [ecx + esi - 1], al
xchg ebp, eax
mov ebp, dword [esp + 0x3c]
jmp 0x5a1938
mov byte [eax + esi - 1], 0x30
dec eax
mov edi, ecx
test eax, eax
jle 0x5a1946
mov ecx, edi
sub edi, eax
cmp ebp, edi
jg 0x5a1930
jmp 0x5a1948
mov ecx, edi
mov ebp, dword [esp + 0x60]
movzx edi, byte [ebp + 8]
xchg edi, eax
test al, al
xchg edi, eax
je 0x5a19e7
mov edi, dword [esp + 0x6c]
cmp edi, 2
jne 0x5a1985
lea edx, [eax - 1]
cmp ecx, edx
jbe 0x5a1afb
mov byte [eax + esi - 1], 0x62
lea edx, [eax - 2]
cmp ecx, edx
jbe 0x5a1af4
mov byte [eax + esi - 2], 0x30
jmp 0x5a19e9
cmp edi, 8
jne 0x5a19b0
cmp eax, ecx
jae 0x5a1aef
lea edx, [esi + eax]
cmp byte [edx], 0x30
je 0x5a19ac
lea edx, [eax - 1]
cmp ecx, edx
jbe 0x5a1ae8
mov byte [eax + esi - 1], 0x30
jmp 0x5a19e9
mov edx, eax
jmp 0x5a19e9
cmp edi, 0x10
jne 0x5a19e3
cmp edx, 0x10
jbe 0x5a1adc
lea edx, [eax - 1]
cmp ecx, edx
jbe 0x5a1ad5
movzx edx, byte [ebx + 0x10]
mov byte [eax + esi - 1], dl
lea edx, [eax - 2]
cmp ecx, edx
jbe 0x5a1ace
mov byte [eax + esi - 2], 0x30
jmp 0x5a19e9
mov edx, eax
jmp 0x5a19e9
mov edx, eax
mov ebx, dword [esp + 0x74]
cmp ebx, 0x4f
jne 0x5a1a1b
lea eax, [edx - 1]
cmp ecx, eax
jbe 0x5a1ac9
mov byte [edx + esi - 1], 0x6f
lea eax, [edx - 2]
cmp ecx, eax
jbe 0x5a1ac4
mov byte [edx + esi - 2], 0x30
movzx ebx, byte [esp + 0x18]
test bl, bl
jmp 0x5a1a24
movzx ebx, byte [esp + 0x18]
test bl, bl
mov eax, edx
je 0x5a1a38
lea edx, [eax - 1]
cmp ecx, edx
jbe 0x5a1abd
mov byte [eax + esi - 1], 0x2d
jmp 0x5a1a66
movzx edx, byte [ebp + 7]
test dl, dl
je 0x5a1a4e
lea edx, [eax - 1]
cmp ecx, edx
jbe 0x5a1ab6
mov byte [eax + esi - 1], 0x2b
jmp 0x5a1a66
movzx edx, byte [ebp + 9]
test dl, dl
je 0x5a1a64
lea edx, [eax - 1]
cmp ecx, edx
jbe 0x5a1aaf
mov byte [eax + esi - 1], 0x20
jmp 0x5a1a66
mov edx, eax
movzx ebx, byte [ebp + 0xa]
mov byte [ebp + 0xa], 0
cmp ecx, edx
jb 0x5a1aa8
mov byte [esp + 0x16], bl
mov dword [esp], ebp
sub ecx, edx
mov eax, ecx
neg ecx
sar ecx, 0x1f
and edx, ecx
lea ecx, [edx + esi]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.005a0d70
movzx eax, byte [esp + 0x16]
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0xa], al
add esp, 0x5c
ret
mov eax, edx
call fcn.0045f1b0
mov eax, edx
call fcn.0045f150
mov eax, edx
call fcn.0045f150
mov eax, edx
call fcn.0045f150
call fcn.0045f150
call fcn.0045f150
mov eax, edx
call fcn.0045f150
mov eax, edx
call fcn.0045f150
mov eax, 0x10
mov ecx, edx
call fcn.0045f150
mov eax, edx
call fcn.0045f150
call fcn.0045f150
mov eax, edx
call fcn.0045f150
mov eax, edx
call fcn.0045f150
mov ecx, edi
call fcn.0045f150
mov eax, ebp
mov ecx, edx
call fcn.0045f160
mov esi, ebx
mov eax, ebp
mov ecx, dword [esp + 0x7c]
call fcn.0045f230
mov eax, edi
mov ecx, edx
call fcn.0045f150
mov ecx, edx
call fcn.0045f160
mov edi, dword [esp + 0x48]
mov byte [edi + esi - 1], dl
add ebp, ebx
adc ecx, 0
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x3c]
mov ebx, ecx
mov ecx, eax
test ebx, ebx
sete al
seta dl
cmp ebp, 0xa
xchg edi, ebx
setae bl
xchg edi, ebx
and eax, edi
or edx, eax
test dl, dl
je 0x5a18f9
mov dword [esp + 0x50], ebp
mov dword [esp + 0x48], ecx
lea edx, [ecx - 1]
mov dword [esp + 0x4c], edx
mov eax, ebx
mov edi, 0xcccccccd
mul edi
mov dword [esp + 0x58], edx
mov eax, ebp
mul edi
shr edx, 3
mov dword [esp + 0x54], edx
lea eax, [edx + edx*4]
mov edx, dword [esp + 0x58]
shr edx, 3
lea ecx, [edx + edx*4]
shl eax, 1
sub ebp, eax
shl ecx, 1
sub ebx, ecx
mov eax, 0x19999999
mov ecx, edx
mul ebx
mov dword [esp + 0x58], edx
lea ebx, [ebx + ebx*2]
lea ebx, [ebp + ebx*2]
mov ebp, eax
mov eax, edi
mul ebx
shr edx, 3
mov ebx, dword [esp + 0x54]
add ebx, 0
adc ecx, 0
add ebx, ebp
mov ebp, dword [esp + 0x58]
adc ecx, ebp
mov ebp, edx
add edx, ebx
mov dword [esp + 0x44], edx
mov eax, 0xa
mul edx
mov edx, dword [esp + 0x50]
sub edx, eax
add edx, 0x30
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x4c]
cmp edi, eax
ja 0x5a1b2f
mov ecx, edi
call fcn.0045f150
xchg ebp, eax
mov byte [ecx + esi - 1], al
xchg ebp, eax
shr edx, 3
mov ebp, ebx
shl ebp, 0x1d
or ebp, edx
shr ebx, 3
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x3c]
mov ecx, eax
test ebx, ebx
sete al
seta dl
cmp ebp, 8
xchg edi, ebx
setae bl
xchg edi, ebx
and eax, edi
or edx, eax
test dl, dl
je 0x5a18f9
lea eax, [ecx - 1]
mov edx, ebp
and ebp, 7
add ebp, 0x30
mov edi, dword [esp + 0x40]
cmp edi, eax
ja 0x5a1c08
mov ecx, edi
call fcn.0045f150
xchg ebp, eax
mov byte [ecx + esi - 1], al
xchg ebp, eax
shr edx, 1
mov ebp, ebx
shl ebp, 0x1f
or ebp, edx
shr ebx, 1
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x3c]
mov ecx, eax
test ebx, ebx
seta al
sete dl
cmp ebp, 2
xchg edi, ebx
setae bl
xchg edi, ebx
and edx, edi
or edx, eax
test dl, dl
je 0x5a18f9
lea eax, [ecx - 1]
mov edx, ebp
and ebp, 1
add ebp, 0x30
mov edi, dword [esp + 0x40]
cmp edi, eax
ja 0x5a1c5d
mov ecx, edi
call fcn.0045f150
nop
call fcn.0045dcb0
jmp fcn.005a1670