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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x1c]
cmp eax, dword [ecx + 8]
jbe 0x5a4201
sub esp, 0x9c
lea edi, [esp + 0x88]
lea esi, [esp + 0xac]
call fcn.0045e58e
nop
nop
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
test ecx, 0x80000000
je 0x5a3d66
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or eax, ecx
shl edx, 1
mov ecx, eax
shl eax, 1
shr edx, 0x1f
or eax, edx
mov edx, eax
add eax, 0xd7b17f80
mov dword [esp + 0x90], eax
shr ecx, 0x1f
add edx, 0xd7b17f80
adc ecx, 0xd
mov dword [esp + 0x94], ecx
and dword [esp + 0x88], 0x3fffffff
mov dword [esp + 0x8c], 0
mov dword [esp + 0x98], 0
lea edi, [esp + 0xac]
lea esi, [esp + 0x88]
call fcn.0045e58e
nop
lea edi, [esp]
lea esi, [esp + 0x88]
call fcn.0045e58e
mov byte [esp + 0x14], 1
call fcn.0049f590
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
lea edi, [esp]
lea esi, [esp + 0xac]
call fcn.0045e58e
call fcn.0049e0c0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
lea edi, [esp]
lea esi, [esp + 0xac]
call fcn.0045e58e
call fcn.0049dc60
mov eax, dword [esp + 0x14]
add eax, 0x15180
mov ecx, dword [esp + 0x18]
adc ecx, 0
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x93a80
call fcn.00455600
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0xc22e4507
imul ecx
lea eax, [ecx + edx]
sar eax, 0x10
sar ecx, 0x1f
sub eax, ecx
lea ecx, [eax + eax*2]
cmp ecx, 0x15
ja 0x5a41f4
lea edx, [eax + eax*2 - 0x15]
neg edx
mov ebx, edx
neg edx
sar edx, 0x1f
and ecx, edx
mov edx, dword [esp + 0x3c]
lea eax, [edx + edx*2 - 3]
cmp eax, 0x24
ja 0x5a41ea
lea edx, [edx + edx*2 - 0x24]
neg edx
add edx, 3
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
mov dword [esp + 0x78], eax
mov eax, 0xcccccccd
mov esi, dword [esp + 0x44]
imul esi
add edx, esi
sar edx, 3
mov eax, esi
sar esi, 0x1f
sub edx, esi
mov dword [esp + 0x74], edx
lea esi, [edx + edx*4]
shl esi, 1
sub eax, esi
mov dword [esp + 0x70], eax
mov eax, 0x4189374c
mov esi, dword [esp + 0x30]
imul esi
sar edx, 8
sar esi, 0x1f
sub edx, esi
mov dword [esp + 0x6c], edx
mov eax, 0x51eb851f
mov edx, dword [esp + 0x30]
imul edx
sar edx, 5
sub edx, esi
mov dword [esp + 0x68], edx
mov eax, 0xcccccccd
imul edx
mov edi, dword [esp + 0x68]
add edx, edi
sar edx, 3
sar edi, 0x1f
sub edx, edi
lea edx, [edx + edx*4]
shl edx, 1
mov edi, dword [esp + 0x68]
sub edi, edx
mov dword [esp + 0x68], edi
mov eax, 0xcccccccd
mov edi, dword [esp + 0x30]
imul edi
add edx, edi
sar edx, 3
sub edx, esi
mov eax, 0xcccccccd
mov esi, edx
imul edx
add edx, esi
sar edx, 3
mov eax, esi
sar esi, 0x1f
sub edx, esi
lea edx, [edx + edx*4]
shl edx, 1
mov esi, eax
sub eax, edx
mov dword [esp + 0x64], eax
lea edx, [esi + esi*4]
shl edx, 1
sub edi, edx
mov eax, 0xcccccccd
mov esi, dword [esp + 0x40]
imul esi
add edx, esi
sar edx, 3
mov eax, esi
sar esi, 0x1f
sub edx, esi
mov dword [esp + 0x60], edx
lea esi, [edx + edx*4]
shl esi, 1
sub eax, esi
mov dword [esp + 0x5c], eax
mov eax, 0xcccccccd
mov esi, dword [esp + 0x38]
imul esi
add edx, esi
sar edx, 3
mov eax, esi
sar esi, 0x1f
sub edx, esi
mov dword [esp + 0x58], edx
lea esi, [edx + edx*4]
shl esi, 1
sub eax, esi
mov dword [esp + 0x54], eax
mov eax, 0xcccccccd
mov esi, dword [esp + 0x34]
imul esi
add edx, esi
sar edx, 3
mov eax, esi
sar esi, 0x1f
sub edx, esi
lea esi, [edx + edx*4]
shl esi, 1
sub eax, esi
test ebx, ebx
jbe 0x5a41e1
mov dword [esp + 0x50], edx
lea esi, [0x61445a]
movzx edx, byte [esi + ecx]
cmp ebx, 1
jbe 0x5a41d5
mov dword [esp + 0x4c], edi
movzx edi, byte [esi + ecx + 1]
cmp ebx, 2
jbe 0x5a41c9
movzx ebx, byte [esi + ecx + 2]
test ebp, ebp
jbe 0x5a41c0
xchg edi, eax
mov byte [esp + 0x2f], al
xchg edi, eax
mov esi, dword [esp + 0x78]
mov ecx, ebx
lea ebx, [0x61a24e]
movzx edi, byte [ebx + esi]
cmp ebp, 1
jbe 0x5a41b4
xchg edi, eax
mov byte [esp + 0x2e], al
xchg edi, eax
movzx edi, byte [ebx + esi + 1]
cmp ebp, 2
jbe 0x5a41a8
mov dword [esp + 0x78], eax
mov ebp, dword [esp + 0xa4]
lea eax, [ebp + 0x1d]
movzx ebx, byte [ebx + esi + 2]
mov esi, dword [esp + 0xa8]
cmp esi, eax
jb 0x5a4139
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x84]
mov byte [esi + ebp], dl
movzx edx, byte [esp + 0x2f]
mov byte [esi + ebp + 1], dl
mov byte [esi + ebp + 2], cl
mov word [esi + ebp + 3], 0x202c
mov ecx, dword [esp + 0x74]
add ecx, 0x30
mov byte [esi + ebp + 5], cl
mov ecx, dword [esp + 0x70]
add ecx, 0x30
mov byte [esi + ebp + 6], cl
mov byte [esi + ebp + 7], 0x20
movzx ecx, byte [esp + 0x2e]
mov byte [esi + ebp + 8], cl
xchg edi, eax
mov byte [esi + ebp + 9], al
xchg edi, eax
mov byte [esi + ebp + 0xa], bl
mov byte [esi + ebp + 0xb], 0x20
mov ecx, dword [esp + 0x6c]
add ecx, 0x30
mov byte [esi + ebp + 0xc], cl
mov ecx, dword [esp + 0x68]
add ecx, 0x30
mov byte [esi + ebp + 0xd], cl
mov ecx, dword [esp + 0x64]
add ecx, 0x30
mov byte [esi + ebp + 0xe], cl
mov ecx, dword [esp + 0x4c]
add ecx, 0x30
mov byte [esi + ebp + 0xf], cl
mov byte [esi + ebp + 0x10], 0x20
mov ecx, dword [esp + 0x60]
add ecx, 0x30
mov byte [esi + ebp + 0x11], cl
mov ecx, dword [esp + 0x5c]
add ecx, 0x30
mov byte [esi + ebp + 0x12], cl
mov byte [esi + ebp + 0x13], 0x3a
mov ecx, dword [esp + 0x58]
add ecx, 0x30
mov byte [esi + ebp + 0x14], cl
mov ecx, dword [esp + 0x54]
add ecx, 0x30
mov byte [esi + ebp + 0x15], cl
mov byte [esi + ebp + 0x16], 0x3a
mov ecx, dword [esp + 0x50]
add ecx, 0x30
mov byte [esi + ebp + 0x17], cl
mov ecx, dword [esp + 0x78]
add ecx, 0x30
mov byte [esi + ebp + 0x18], cl
mov dword [esi + ebp + 0x19], 0x544d4720
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc8], eax
add esp, 0x9c
ret
mov byte [esp + 0x2d], dl
mov byte [esp + 0x2c], cl
xchg edi, eax
mov byte [esp + 0x2b], al
xchg edi, eax
mov byte [esp + 0x2a], bl
lea ecx, [0x5db380]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
call fcn.00445150
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
add ecx, 0x1d
movzx edx, byte [esp + 0x2d]
movzx ebx, byte [esp + 0x2a]
mov ebp, dword [esp + 0xa4]
movzx edi, byte [esp + 0x2b]
mov dword [esp + 0x84], eax
mov eax, ecx
movzx ecx, byte [esp + 0x2c]
jmp 0x5a403f
mov eax, 2
mov ecx, ebp
call fcn.0045de90
mov eax, 1
mov ecx, ebp
call fcn.0045de90
xor eax, eax
mov ecx, ebp
call fcn.0045de90
mov eax, 2
mov ecx, ebx
call fcn.0045de90
mov eax, 1
mov ecx, ebx
call fcn.0045de90
xor eax, eax
mov ecx, ebx
call fcn.0045de90
mov ecx, 0x24
call fcn.0045def0
mov eax, ecx
mov ecx, 0x15
call fcn.0045def0
nop
call fcn.0045c8b0
jmp fcn.005a3cd0