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

Disassembly:
sub esp, 0x94
mov eax, dword [0x672699e0]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x98]
push ebx
push ebp
push esi
mov esi, edx
push edi
mov edi, ecx
mov ecx, dword [edi + 0x30]
sub eax, esi
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x34]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x18]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
lea ebx, [esp + 0x88]
push ebx
push ecx
push eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x1c], esi
call edx
add esp, 0xc
cmp dword [edi + 0x10], 4
jne 0x6708c678
mov eax, dword [esp + 0x8c]
neg eax
cmp eax, dword [esp + 0x94]
jle 0x6708c678
mov dword [esp + 0x94], eax
mov eax, dword [edi + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push 0
push eax
call edx
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
lea eax, [ebx - 0x100]
cdq
and edx, 3
lea ebp, [edx + eax]
sar ebp, 2
add esp, 8
add ebp, 0x40
cmp ebx, 0x100
jle 0x6708c6be
add ebp, 0x100
jmp 0x6708c6c0
add ebp, ebx
cmp dword [esp + 0x28], 2
mov dword [esp + 0x50], ebp
jne 0x6708c79a
mov eax, dword [esp + 0x20]
mov al, byte [eax + esi*2 + 3]
cmp al, 0xe8
je 0x6708c6e7
cmp al, 0xe4
je 0x6708c6e7
cmp al, 0xe6
jne 0x6708c79a
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + esi*2 + 5]
cmp al, 0x17
je 0x6708c723
cmp al, 0x18
je 0x6708c723
cmp al, 0x19
je 0x6708c723
cmp al, 0x1b
je 0x6708c723
cmp al, 0x1c
je 0x6708c723
cmp al, 0x1e
je 0x6708c723
cmp al, 0x1f
je 0x6708c723
cmp al, 0x21
je 0x6708c723
cmp al, 0x22
je 0x6708c723
cmp al, 0x23
je 0x6708c723
cmp al, 0x24
je 0x6708c723
cmp al, 0x6b
je 0x6708c723
cmp al, 0x7a
jne 0x6708c79a
mov eax, dword [edi + 0x18]
mov edx, dword [eax]
mov ecx, dword [esp + 0x4c]
mov edx, dword [edx + 0x10]
mov esi, dword [esp + 0x94]
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + eax*4 + 4]
mov eax, dword [edi + 0x18]
push ecx
push eax
call edx
mov eax, dword [edi + 0x18]
mov ecx, dword [eax]
mov eax, dword [esp + 0x58]
mov ecx, dword [ecx + 0x10]
add esi, dword [esp + 0x88]
lea edx, [esp + 0x7c]
push edx
mov edx, dword [esp + 0x20]
mov eax, dword [eax + edx*4 + 8]
push eax
mov eax, dword [edi + 0x18]
push eax
call ecx
add esi, dword [esp + 0x94]
lea ebx, [ebx + ebx*4]
add ebx, ebx
lea edx, [esi + ebp*2]
add esp, 0x18
cmp edx, ebx
jle 0x6708c796
mov eax, ebx
sub eax, esi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0x10]
movzx eax, byte [edi + 0x14]
and eax, 0x80000001
jns 0x6708c7aa
dec eax
or eax, 0xfffffffe
inc eax
mov eax, dword [esp + 0x28]
setne byte [esp + 0x27]
xor edi, edi
mov byte [esp + 0x17], 0
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
cmp eax, 1
jl 0x6708cb7e
lea ecx, [esi*4 + 4]
lea edx, [esi*8 + 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x48], edx
lea edx, [ecx + esi*2 + 3]
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], eax
jmp 0x6708c804
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x58]
push edx
mov edx, dword [esp + 0x50]
mov edx, dword [esi + edx]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
mov ecx, dword [esp + 0x2c]
mov bl, byte [ecx]
xor esi, esi
add esp, 0xc
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], ebp
cmp bl, 0xc8
jae 0x6708c93e
lea edx, [ebx - 0x1b]
cmp dl, 9
ja 0x6708c852
cmp ebp, 3
jge 0x6708c852
inc ebp
mov dword [esp + 0x10], ebp
cmp bl, 0xa
jb 0x6708c860
cmp bl, 0x12
jbe 0x6708c93a
cmp bl, 0x14
je 0x6708c93a
cmp bl, 0x16
je 0x6708c93a
cmp bl, 0x1d
je 0x6708c93a
cmp bl, 0x20
je 0x6708c93a
cmp bl, 0x17
je 0x6708c936
cmp bl, 0x1b
je 0x6708c936
cmp bl, 0x1c
je 0x6708c936
cmp bl, 0x1e
je 0x6708c936
cmp bl, 0x1f
je 0x6708c936
cmp bl, 0x21
jb 0x6708c8bb
cmp bl, 0x24
jbe 0x6708c936
cmp bl, 9
je 0x6708c932
cmp bl, 0x67
je 0x6708c932
cmp bl, 0x76
je 0x6708c932
cmp bl, 0x18
je 0x6708c92e
cmp bl, 0x6b
je 0x6708c92e
cmp bl, 0x7a
je 0x6708c92e
cmp bl, 0x19
jne 0x6708c93e
mov bl, 0xe4
mov ebp, dword [esp + 0x5c]
cmp bl, byte [esp + 0x17]
je 0x6708c977
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
jmp 0x6708c97b
mov bl, 0xe8
jmp 0x6708c8e0
mov bl, 0xde
jmp 0x6708c948
mov bl, 0xe6
jmp 0x6708c8e0
mov bl, 0xdc
jmp 0x6708c948
cmp bl, 0xdc
je 0x6708c948
cmp bl, 0xde
jne 0x6708c8e0
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push 1
push eax
call edx
mov ecx, dword [esp + 0x6c]
add ecx, ebp
mov ebp, dword [esp + 0x64]
add esp, 8
cmp ecx, eax
jle 0x6708c8e4
mov dword [esp + 0x10], ebp
jmp 0x6708c8e4
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
movzx edx, bl
add edx, 0xffffff38
cmp edx, 0x22
ja case.0x6708c998.201
movzx edx, byte [edx + 0x6708cbd4]
jmp dword [edx*4 + 0x6708cb98]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x38]
sub edx, ebp
mov esi, edi
add edx, eax
sub esi, ecx
add dword [esp + 0x1c], edx
jmp 0x6708ca77
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x60]
sub edx, ebp
add edx, dword [esp + 0x30]
mov esi, edi
add dword [esp + 0x1c], edx
cdq
sub eax, edx
sub esi, ecx
sar eax, 1
add esi, eax
jmp 0x6708ca77
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x34]
sub esi, dword [esp + 0x60]
mov edx, dword [esp + 0x38]
sub edx, ebp
sub esi, ecx
add edx, eax
add esi, edi
add dword [esp + 0x1c], edx
jmp 0x6708ca77
mov esi, dword [esp + 0x10]
neg esi
jmp case.0x6708c998.201
mov esi, dword [esp + 0x10]
jmp case.0x6708c998.201
mov edx, dword [esp + 0x10]
neg edx
mov dword [esp + 0x1c], edx
mov esi, edi
sub esi, ecx
jmp 0x6708ca6d
mov eax, dword [esp + 0x10]
neg eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
sub eax, ebp
sub eax, dword [esp + 0x64]
mov esi, edi
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x60]
sub esi, ecx
cdq
sub eax, edx
sar eax, 1
add esi, eax
jmp 0x6708ca77
mov edx, dword [esp + 0x10]
neg edx
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x34]
sub esi, dword [esp + 0x60]
sub esi, ecx
add esi, edi
sub eax, ebp
sub eax, dword [esp + 0x64]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add ebp, dword [esp + 0x1c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x3c]
add ecx, esi
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x70], edi
cmp edi, ecx
jl 0x6708cabb
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
cmp eax, ebp
jl 0x6708cac7
mov dword [esp + 0x74], ebp
add ecx, dword [esp + 0x60]
add edi, dword [esp + 0x34]
cmp edi, ecx
jle 0x6708cad5
mov ecx, edi
mov edi, dword [esp + 0x70]
add eax, dword [esp + 0x38]
add ebp, dword [esp + 0x64]
sub ecx, edi
cmp eax, ebp
jg 0x6708cae9
mov eax, ebp
mov edx, dword [esp + 0x74]
sub eax, edx
cmp byte [esp + 0x27], 0
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x17], bl
je 0x6708cb37
mov dword [eax + edx], esi
mov edx, dword [ecx + 0x3c]
mov esi, dword [esp + 0x1c]
mov dword [eax + edx + 4], esi
jmp 0x6708cb53
sub esi, dword [esp + 0x98]
mov dword [eax + edx], esi
mov edx, dword [esp + 0x1c]
sub edx, dword [esp + 0x9c]
mov esi, dword [ecx + 0x3c]
mov dword [eax + esi + 4], edx
mov edx, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x20], 2
mov dword [ecx + edx], 0
add eax, 8
add ecx, 4
dec dword [esp + 0x54]
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
jne 0x6708c800
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.671509a6
add esp, 0x94
ret