Function at 0x7e3d40
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 0x7e4271
sub esp, 0x9c
lea edi, [esp + 0x88]
lea esi, [esp + 0xac]
call fcn.0045778e
nop
nop
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov edx, ecx
shr ecx, 0x1f
shl ecx, 0x1f
test ecx, ecx
je 0x7e3ddb
mov ecx, eax
shr eax, 0x1f
shl edx, 1
or edx, eax
mov eax, edx
shl edx, 1
shl ecx, 1
shr ecx, 0x1f
or ecx, edx
mov edx, ecx
add ecx, 0xd7b17f80
mov dword [esp + 0x90], ecx
shr eax, 0x1f
add edx, 0xd7b17f80
adc eax, 0xd
mov dword [esp + 0x94], eax
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.0045778e
nop
mov edi, esp
lea esi, [esp + 0x88]
call fcn.0045778e
mov byte [esp + 0x14], 1
call fcn.004b1590
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
mov edi, esp
lea esi, [esp + 0xac]
call fcn.0045778e
call fcn.004afe50
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
mov edi, esp
lea esi, [esp + 0xac]
call fcn.0045778e
call fcn.004af6d0
mov eax, dword [esp + 0x14]
add eax, 0x15180
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
adc ecx, 0
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x93a80
mov dword [esp + 0xc], 0
call fcn.004519c0
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0xc22e4507
imul ecx
mov eax, ecx
sar ecx, 0x1f
add eax, edx
sar eax, 0x10
sub eax, ecx
lea ecx, [eax + eax*2]
cmp ecx, 0x15
ja 0x7e4264
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 0x7e425a
lea edx, [edx + edx*2 - 0x27]
neg edx
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
mov eax, esi
sar esi, 0x1f
sar edx, 3
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
mov eax, esi
sar esi, 0x1f
sar edx, 3
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
mov eax, esi
sar esi, 0x1f
sar edx, 3
sub edx, esi
lea esi, [edx + edx*4]
shl esi, 1
sub eax, esi
test ebx, ebx
jbe 0x7e4251
mov dword [esp + 0x50], edx
lea esi, [0x98f67e]
movzx edx, byte [esi + ecx]
cmp ebx, 1
jbe 0x7e4245
mov dword [esp + 0x4c], edi
movzx edi, byte [esi + ecx + 1]
cmp ebx, 2
jbe 0x7e4239
movzx ebx, byte [esi + ecx + 2]
test ebp, ebp
jbe 0x7e4230
xchg edi, eax
mov byte [esp + 0x2f], al
xchg edi, eax
mov esi, dword [esp + 0x78]
mov ecx, ebx
lea ebx, [0x99b501]
movzx edi, byte [ebx + esi]
cmp ebp, 1
jbe 0x7e4224
xchg edi, eax
mov byte [esp + 0x2e], al
xchg edi, eax
movzx edi, byte [ebx + esi + 1]
cmp ebp, 2
jbe 0x7e4218
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 eax, esi
ja 0x7e41a9
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, [0x8ebd00]
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.00440660
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 0x7e40af
mov eax, 2
mov ecx, ebp
call fcn.00457060
mov eax, 1
mov ecx, ebp
call fcn.00457060
xor eax, eax
mov ecx, ebp
call fcn.00457060
mov eax, 2
mov ecx, ebx
call fcn.00457060
mov eax, 1
mov ecx, ebx
call fcn.00457060
xor eax, eax
mov ecx, ebx
call fcn.00457060
mov ecx, 0x24
call fcn.004570c0
mov eax, ecx
mov ecx, 0x15
call fcn.004570c0
nop
call fcn.004557a0
jmp fcn.007e3d40