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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x20]
cmp eax, dword [ecx + 8]
jbe 0x6798a0
sub esp, 0xa0
lea edi, [esp + 0x8c]
lea esi, [esp + 0xb0]
call fcn.004612ce
nop
nop
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
test ecx, 0x80000000
je 0x6793f7
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or ecx, eax
shl edx, 1
mov eax, ecx
shl ecx, 1
shr edx, 0x1f
or edx, ecx
mov ecx, edx
add edx, 0xd7b17f80
mov dword [esp + 0x94], edx
shr eax, 0x1f
add ecx, 0xd7b17f80
adc eax, 0xd
mov dword [esp + 0x98], eax
and dword [esp + 0x8c], 0x3fffffff
mov dword [esp + 0x90], 0
mov dword [esp + 0x9c], 0
lea edi, [esp + 0xb0]
lea esi, [esp + 0x8c]
call fcn.004612ce
nop
mov edi, esp
lea esi, [esp + 0x8c]
call fcn.004612ce
mov byte [esp + 0x14], 1
call fcn.0048c270
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], edx
mov edi, esp
lea esi, [esp + 0xb0]
call fcn.004612ce
call fcn.0048ab50
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
mov edi, esp
lea esi, [esp + 0xb0]
call fcn.004612ce
call fcn.0048a520
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.00457120
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov ecx, 0xc22e4507
imul ecx
mov eax, dword [esp + 0x38]
lea ecx, [eax + edx]
sar ecx, 0x10
sar eax, 0x1f
sub ecx, eax
lea eax, [ecx + ecx*2]
cmp eax, 0x15
ja 0x679895
lea ecx, [ecx + ecx*2 - 0x15]
neg ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
mov ebx, dword [esp + 0x40]
lea ebp, [ebx + ebx*2 - 3]
cmp ebp, 0x24
ja 0x679889
lea ecx, [ebx + ebx*2 - 0x27]
neg ecx
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ebp, ecx
mov dword [esp + 0x7c], ebp
mov ecx, eax
mov eax, 0xcccccccd
mov esi, dword [esp + 0x48]
mov edi, edx
imul esi
add edx, esi
mov eax, esi
sar esi, 0x1f
sar edx, 3
sub edx, esi
mov dword [esp + 0x78], edx
lea esi, [edx + edx*4]
shl esi, 1
sub eax, esi
mov dword [esp + 0x74], eax
mov eax, 0x4189374c
mov esi, dword [esp + 0x30]
imul esi
sar edx, 8
sar esi, 0x1f
sub edx, esi
mov dword [esp + 0x70], edx
mov eax, 0x51eb851f
mov edx, dword [esp + 0x30]
imul edx
sar edx, 5
sub edx, esi
mov dword [esp + 0x6c], edx
mov eax, 0xcccccccd
imul edx
mov ebp, dword [esp + 0x6c]
add edx, ebp
sar edx, 3
sar ebp, 0x1f
sub edx, ebp
lea edx, [edx + edx*4]
shl edx, 1
mov ebp, dword [esp + 0x6c]
sub ebp, edx
mov dword [esp + 0x6c], ebp
mov eax, 0xcccccccd
mov ebp, dword [esp + 0x30]
imul ebp
add edx, ebp
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 + 0x68], eax
lea edx, [esi + esi*4]
shl edx, 1
sub ebp, edx
mov eax, 0xcccccccd
mov esi, dword [esp + 0x44]
imul esi
mov eax, esi
sar esi, 0x1f
add edx, eax
sar edx, 3
sub edx, esi
mov dword [esp + 0x64], edx
lea esi, [edx + edx*4]
shl esi, 1
sub eax, esi
mov dword [esp + 0x60], eax
mov eax, 0xcccccccd
mov esi, dword [esp + 0x3c]
imul esi
add edx, esi
sar edx, 3
mov eax, esi
sar esi, 0x1f
sub edx, esi
mov dword [esp + 0x5c], edx
lea esi, [edx + edx*4]
shl esi, 1
sub eax, esi
mov dword [esp + 0x58], eax
mov eax, 0xcccccccd
mov esi, dword [esp + 0x34]
imul esi
mov eax, esi
sar esi, 0x1f
add edx, eax
sar edx, 3
sub edx, esi
lea esi, [edx + edx*4]
shl esi, 1
sub eax, esi
test edi, edi
jbe 0x679880
mov dword [esp + 0x54], edx
lea esi, [0xb9f7d0]
movzx edx, byte [esi + ecx]
cmp edi, 1
jbe 0x679874
mov dword [esp + 0x50], ebp
movzx ebp, byte [esi + ecx + 1]
cmp edi, 2
jbe 0x679868
movzx esi, byte [esi + ecx + 2]
test ebx, ebx
jbe 0x67985f
xchg ebp, eax
mov byte [esp + 0x2f], al
xchg ebp, eax
mov edi, dword [esp + 0x7c]
mov ecx, esi
lea esi, [0xbafaee]
movzx ebp, byte [esi + edi]
cmp ebx, 1
jbe 0x679853
xchg ebp, eax
mov byte [esp + 0x2e], al
xchg ebp, eax
movzx ebp, byte [esi + edi + 1]
cmp ebx, 2
jbe 0x679847
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0xa8]
lea eax, [ebx + 0x1d]
movzx esi, byte [esi + edi + 2]
mov edi, dword [esp + 0xac]
cmp eax, edi
ja 0x6797d6
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x88]
mov byte [edi + ebx], dl
movzx edx, byte [esp + 0x2f]
mov byte [edi + ebx + 1], dl
mov byte [edi + ebx + 2], cl
mov word [edi + ebx + 3], 0x202c
mov ecx, dword [esp + 0x78]
add ecx, 0x30
mov byte [edi + ebx + 5], cl
mov ecx, dword [esp + 0x74]
add ecx, 0x30
mov byte [edi + ebx + 6], cl
mov byte [edi + ebx + 7], 0x20
movzx ecx, byte [esp + 0x2e]
mov byte [edi + ebx + 8], cl
xchg ebp, eax
mov byte [edi + ebx + 9], al
xchg ebp, eax
xchg esi, eax
mov byte [edi + ebx + 0xa], al
xchg esi, eax
mov byte [edi + ebx + 0xb], 0x20
mov ecx, dword [esp + 0x70]
add ecx, 0x30
mov byte [edi + ebx + 0xc], cl
mov ecx, dword [esp + 0x6c]
add ecx, 0x30
mov byte [edi + ebx + 0xd], cl
mov ecx, dword [esp + 0x68]
add ecx, 0x30
mov byte [edi + ebx + 0xe], cl
mov ecx, dword [esp + 0x50]
add ecx, 0x30
mov byte [edi + ebx + 0xf], cl
mov byte [edi + ebx + 0x10], 0x20
mov ecx, dword [esp + 0x64]
add ecx, 0x30
mov byte [edi + ebx + 0x11], cl
mov ecx, dword [esp + 0x60]
add ecx, 0x30
mov byte [edi + ebx + 0x12], cl
mov byte [edi + ebx + 0x13], 0x3a
mov ecx, dword [esp + 0x5c]
add ecx, 0x30
mov byte [edi + ebx + 0x14], cl
mov ecx, dword [esp + 0x58]
add ecx, 0x30
mov byte [edi + ebx + 0x15], cl
mov byte [edi + ebx + 0x16], 0x3a
mov ecx, dword [esp + 0x54]
add ecx, 0x30
mov byte [edi + ebx + 0x17], cl
mov ecx, dword [esp + 0x7c]
add ecx, 0x30
mov byte [edi + ebx + 0x18], cl
mov dword [edi + ebx + 0x19], 0x544d4720
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xcc], eax
add esp, 0xa0
ret
mov byte [esp + 0x2d], dl
mov byte [esp + 0x2c], cl
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
xchg esi, eax
mov byte [esp + 0x2a], al
xchg esi, eax
lea ecx, [0xaa98e0]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
call fcn.00447080
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
add ecx, 0x1d
movzx edx, byte [esp + 0x2d]
mov ebx, dword [esp + 0xa8]
movzx ebp, byte [esp + 0x2b]
movzx esi, byte [esp + 0x2a]
mov dword [esp + 0x88], eax
mov eax, ecx
movzx ecx, byte [esp + 0x2c]
jmp 0x6796da
mov eax, 2
mov ecx, ebx
call fcn.00460bc0
mov eax, 1
mov ecx, ebx
call fcn.00460bc0
xor eax, eax
mov ecx, ebx
call fcn.00460bc0
mov eax, 2
mov ecx, edi
call fcn.00460bc0
mov eax, 1
mov ecx, edi
call fcn.00460bc0
xor eax, eax
mov ecx, edi
call fcn.00460bc0
mov eax, ebp
mov ecx, 0x24
call fcn.00460c20
mov ecx, 0x15
call fcn.00460c20
nop
call fcn.0045f5f0
jmp fcn.00679360