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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6773c6
sub esp, 0x80
lea eax, [0x75cde0]
mov dword [esp], eax
call fcn.00409d00
mov eax, dword [esp + 4]
mov dword [esp + 0x44], eax
mov dword [esp], 0
mov ecx, dword [esp + 0x84]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x88]
mov dword [esp + 8], edx
call fcn.0043bfb0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], edx
lea edi, [esp + 0x68]
lea esi, [0x7fdb80]
call fcn.0044cfd2
lea edi, [esp + 0x5c]
lea esi, [esp + 0x68]
call fcn.0044cfd2
lea ecx, [esp + 0x18]
mov dword [esp + 0x4c], ecx
mov ebx, dword [esp + 0x2c]
xor ebp, ebp
mov esi, 1
jmp 0x6770ad
dec eax
cmp eax, ecx
jl 0x6771ae
cmp eax, edx
jae 0x6773b1
movzx esi, byte [ebp + eax]
xchg esi, eax
cmp al, 0x3c
xchg esi, eax
jne 0x677020
test eax, eax
jl 0x6773aa
cmp ecx, eax
ja 0x6773aa
mov esi, dword [esp + 0x30]
cmp eax, esi
ja 0x6773aa
mov edx, dword [esp + 0x44]
mov dword [esp], edx
mov ebx, dword [esp + 0x48]
mov dword [esp + 4], ebx
sub eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
call fcn.004d0f80
movzx eax, byte [esp + 0x2b]
lea edi, [esp + 0x5c]
lea esi, [esp + 0x50]
call fcn.0044cfd2
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
mov edx, ebx
mov ebx, ebp
mov ebp, ecx
mov esi, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
xchg esi, eax
mov byte [esp + 0x2b], al
xchg esi, eax
cmp ebp, ebx
je 0x677387
mov dword [esp + 0x38], ebp
mov edi, ecx
movzx ecx, byte [esp + 0x5d]
test cl, cl
jne 0x6771f1
movzx ecx, byte [esp + 0x5c]
movzx eax, byte [esp + 0x61]
test al, al
je 0x6771ea
lea eax, [ecx - 1]
cmp al, 3
ja 0x6771d2
cmp ebp, ebx
ja 0x6773bf
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
movzx eax, cl
sub ebx, ebp
sub edx, ebp
mov dword [esp + 0x3c], edx
neg edx
sar edx, 0x1f
and edx, ebp
mov ecx, dword [esp + 0x40]
add ecx, edx
cmp eax, 0x19
jae 0x6773b8
mov dword [esp + 0x48], ecx
lea ebp, [0xa79380]
mov edx, dword [ebp + eax*4]
mov edi, esp
lea esi, [esp + 0x5c]
call fcn.0044cfd2
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov ebx, dword [edx]
call ebx
lea edi, [esp + 0x74]
mov esi, dword [esp + 0x4c]
call fcn.0044cfd2
mov eax, dword [esp + 0x24]
lea edi, [esp + 0x50]
lea esi, [esp + 0x74]
call fcn.0044cfd2
mov ecx, dword [esp + 0x38]
lea ebx, [eax + ecx]
mov dword [esp + 0x34], ebx
movzx ebp, byte [esp + 0x5c]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x6771c4
movzx edx, byte [esp + 0x50]
xchg ebp, eax
cmp dl, al
xchg ebp, eax
je 0x6771b5
lea eax, [eax + ecx - 1]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x40]
jmp 0x677021
mov eax, ebx
jmp 0x67703d
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x40]
mov eax, ebx
jmp 0x67703d
xchg ebp, eax
cmp al, 6
xchg ebp, eax
je 0x677192
xor eax, eax
jmp 0x677080
cmp cl, 7
jne 0x6771de
cmp ebp, ebx
jmp 0x6770ee
cmp ebp, ebx
mov ecx, 6
jmp 0x6770ee
cmp ebp, ebx
jmp 0x6770ee
cmp ebp, ebx
ja 0x6773a3
sub ebx, ebp
sub edx, ebp
mov dword [esp + 0x3c], edx
neg edx
sar edx, 0x1f
and edx, ebp
add edx, eax
movzx ecx, cl
cmp ecx, 4
jae 0x67739c
lea eax, [0xa784a0]
lea ecx, [eax + ecx*8]
mov ebp, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov dword [esp], edx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
call fcn.004d2030
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
lea edx, [ecx + eax]
cmp edx, ecx
jl 0x677293
movzx ebx, byte [esp + 0x5d]
cmp bl, 3
je 0x67728f
lea eax, [eax + ecx + 1]
movzx ebx, byte [esp + 0x61]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov byte [esp + 0x5c], 1
mov byte [esp + 0x61], bl
mov ecx, eax
movzx eax, byte [esp + 0x2b]
jmp 0x677091
mov eax, edx
jmp 0x67725d
movzx eax, byte [esp + 0x2b]
test al, al
jne 0x677364
movzx eax, byte [esp + 0x5c]
test al, al
jne 0x677354
mov eax, dword [esp + 0x2c]
cmp ecx, eax
ja 0x677395
mov edx, dword [esp + 0x44]
mov dword [esp], edx
mov ebx, dword [esp + 0x30]
sub ebx, ecx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
mov esi, dword [esp + 0x40]
add ebx, esi
mov dword [esp + 4], ebx
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
call fcn.004d0f80
mov eax, dword [esp + 0x44]
test eax, eax
je 0x677347
mov ecx, dword [eax]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
cmp edx, ebx
ja 0x67738e
mov dword [esp], 0
sub eax, edx
mov ebp, eax
neg eax
sar eax, 0x1f
and eax, edx
add eax, ecx
mov dword [esp + 4], eax
sub ebx, edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
call fcn.0043be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], eax
add esp, 0x80
ret
lea ecx, [0x790490]
mov eax, 5
jmp 0x677332
cmp al, 6
jne 0x6772e8
mov eax, dword [esp + 0x2c]
cmp ecx, eax
jmp 0x6772b3
mov eax, dword [esp + 0x84]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x90], eax
add esp, 0x80
ret
mov ecx, ebp
jmp 0x677293
call fcn.004267e0
ud2
call fcn.004267e0
ud2
call fcn.004266e0
ud2
call fcn.004267e0
ud2
call fcn.004267e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004267e0
ud2
call fcn.0044b280
jmp fcn.00676f80