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

Disassembly:
sub esp, 0xb0
mov eax, dword [0x674c7008]
xor eax, esp
mov dword [esp + 0xac], eax
sub dword [esp + 0xb4], edx
push ebx
mov ebx, ecx
mov dword [esp + 0x14], edx
push ebp
push esi
push edi
mov ecx, dword [ebx + 0x18]
lea esi, [esp + 0xa4]
mov ebp, dword [ebx + 0x30]
mov edi, dword [ebx + 0x34]
push esi
mov eax, dword [ecx]
push dword [ebp + edx*4]
mov dword [esp + 0x5c], ebx
push ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x30], edi
call eax
add esp, 0xc
cmp dword [ebx + 0x10], 4
jne 0x670c3ab3
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xb0]
neg ecx
cmp ecx, eax
cmovg eax, ecx
mov dword [esp + 0xb0], eax
mov ecx, dword [ebx + 0x18]
push 0
push ecx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov ecx, eax
add esp, 8
mov eax, 0x66666667
imul ecx
mov ecx, 0x100
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp esi, ecx
cmovle ecx, esi
lea eax, [esi - 0x100]
add ecx, 0x40
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x20]
sar eax, 2
add ecx, eax
cmp dword [esp + 0xc4], 2
mov ebp, ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebp
jne 0x670c3bdf
mov al, byte [edi + edx*2 + 3]
cmp al, 0xe8
je 0x670c3b28
cmp al, 0xe4
je 0x670c3b28
mov dword [esp + 0x28], ebp
cmp al, 0xe6
jne 0x670c3bdf
mov al, byte [edi + edx*2 + 5]
cmp al, 0x17
je 0x670c3b66
cmp al, 0x18
je 0x670c3b66
cmp al, 0x19
je 0x670c3b66
cmp al, 0x1b
je 0x670c3b66
cmp al, 0x1c
je 0x670c3b66
cmp al, 0x1e
je 0x670c3b66
cmp al, 0x1f
je 0x670c3b66
cmp al, 0x21
je 0x670c3b66
cmp al, 0x22
je 0x670c3b66
cmp al, 0x23
je 0x670c3b66
cmp al, 0x24
je 0x670c3b66
cmp al, 0x6b
je 0x670c3b66
mov ebp, ecx
mov dword [esp + 0x28], ebp
cmp al, 0x7a
jne 0x670c3bdf
mov eax, dword [ebx + 0x18]
lea ebp, [esp + 0x8c]
mov edi, dword [esp + 0xb0]
push ebp
mov ebp, dword [esp + 0x4c]
mov ecx, dword [eax]
push dword [ebp + edx*4 + 4]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [ebx + 0x18]
lea edx, [esp + 0x98]
add edi, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0x30]
mov ecx, dword [eax]
push dword [ebp + edx*4 + 8]
push eax
mov eax, dword [ecx + 0x10]
call eax
add edi, dword [esp + 0xb0]
lea eax, [esi + esi*4]
mov ecx, dword [esp + 0x5c]
add eax, eax
mov ebp, ecx
add esp, 0x18
mov dword [esp + 0x28], ebp
lea ecx, [edi + ecx*2]
cmp ecx, eax
jle 0x670c3bd7
sub eax, edi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov al, byte [ebx + 0x14]
xorps xmm0, xmm0
and al, 1
mov byte [esp + 0x13], 0
cmp dword [esp + 0xc4], 1
mov byte [esp + 0x1f], al
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x4c], 1
movups xmmword [esp + 0x2c], xmm0
movq qword [esp + 0x58], xmm0
jl 0x670c3f1a
mov eax, dword [esp + 0x20]
lea edx, [edx*4 + 4]
mov dword [esp + 0x44], edx
lea edi, [edi + eax*2]
add edi, 3
mov dword [esp + 0x24], edi
nop
mov eax, dword [ebx + 0x18]
lea esi, [esp + 0x74]
mov ebx, dword [esp + 0x48]
push esi
mov ecx, dword [eax]
push dword [edx + ebx]
push eax
mov eax, dword [ecx + 0x10]
call eax
mov cl, byte [edi]
xor ebx, ebx
add esp, 0xc
mov dword [esp + 0x18], ebx
mov esi, ebp
cmp cl, 0xc8
jae 0x670c3ce2
lea eax, [ecx - 0x1b]
cmp al, 9
ja 0x670c3c6c
cmp ebp, 3
jge 0x670c3c6c
lea esi, [ebp + 1]
cmp cl, 0xa
jb 0x670c3c76
cmp cl, 0x12
jbe 0x670c3ce0
cmp cl, 0x14
je 0x670c3ce0
cmp cl, 0x16
je 0x670c3ce0
cmp cl, 0x1d
je 0x670c3ce0
cmp cl, 0x20
je 0x670c3ce0
cmp cl, 0x17
je 0x670c3cdc
cmp cl, 0x1b
je 0x670c3cdc
cmp cl, 0x1c
je 0x670c3cdc
cmp cl, 0x1e
je 0x670c3cdc
cmp cl, 0x1f
je 0x670c3cdc
cmp cl, 0x21
jb 0x670c3cad
cmp cl, 0x24
jbe 0x670c3cdc
cmp cl, 9
je 0x670c3cd8
cmp cl, 0x67
je 0x670c3cd8
cmp cl, 0x76
je 0x670c3cd8
cmp cl, 0x18
je 0x670c3cd4
cmp cl, 0x6b
je 0x670c3cd4
cmp cl, 0x7a
je 0x670c3cd4
cmp cl, 0x19
jne 0x670c3ce2
mov cl, 0xe4
jmp 0x670c3ce2
mov cl, 0xe8
jmp 0x670c3ce2
mov cl, 0xde
jmp 0x670c3ce2
mov cl, 0xe6
jmp 0x670c3ce2
mov cl, 0xdc
cmp cl, byte [esp + 0x13]
je 0x670c3d00
movups xmm0, xmmword [esp + 0xa4]
movq xmm1, qword [esp + 0xb4]
movups xmmword [esp + 0x2c], xmm0
jmp 0x670c3d0b
movups xmm0, xmmword [esp + 0x60]
movq xmm1, qword [esp + 0x58]
mov edi, dword [esp + 0x78]
xor edx, edx
mov ebp, dword [esp + 0x74]
movzx eax, cl
add eax, 0xffffff38
mov dword [esp + 0x14], edx
cmp eax, 0x22
ja case.0x670c3d35.214
movzx eax, byte [eax + 0x670c3f70]
mov dword [esp + 0x14], edx
jmp dword [eax*4 + 0x670c3f34]
mov ebx, esi
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
sub eax, edi
sub edx, ebp
add eax, dword [esp + 0x30]
jmp 0x670c3e00
mov ebx, esi
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
sub eax, edi
add eax, dword [esp + 0x30]
add ebx, eax
mov eax, esi
sub eax, dword [esp + 0x7c]
cdq
sub eax, edx
mov dword [esp + 0x18], ebx
mov edx, eax
sar edx, 1
sub edx, ebp
add edx, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
jmp 0x670c3e0e
mov ebx, esi
mov edx, dword [esp + 0x34]
sub edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x38]
sub edx, ebp
add edx, dword [esp + 0x2c]
sub eax, edi
add eax, dword [esp + 0x30]
jmp 0x670c3e00
mov edx, esi
neg edx
jmp 0x670c3e06
mov edx, esi
jmp 0x670c3e06
mov ebx, esi
neg ebx
mov edx, dword [esp + 0x2c]
sub edx, ebp
jmp 0x670c3df3
mov ebx, esi
neg ebx
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x80]
sub eax, edi
add ebx, eax
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x7c]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
sub edx, ebp
add edx, dword [esp + 0x2c]
jmp 0x670c3e02
mov ebx, esi
neg ebx
mov edx, dword [esp + 0x34]
sub edx, dword [esp + 0x7c]
sub edx, ebp
add edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x80]
sub eax, edi
add ebx, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x7c]
add edx, ebp
cmp dword [esp + 0x2c], edx
lea ebp, [ebx + edi]
mov edi, edx
mov dword [esp + 0x74], edx
cmovl edi, dword [esp + 0x2c]
mov ebx, ebp
cmp dword [esp + 0x30], ebp
movups xmmword [esp + 0x8c], xmm0
cmovl ebx, dword [esp + 0x30]
add eax, edx
add esi, dword [esp + 0x2c]
add edx, dword [esp + 0x7c]
cmp esi, eax
mov dword [esp + 0x90], ebx
cmovle esi, edx
mov dword [esp + 0x8c], edi
mov edx, dword [esp + 0x80]
sub esi, edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x30]
add esi, dword [esp + 0x38]
lea eax, [edx + ebp]
add edx, ebp
mov dword [esp + 0x50], ebx
cmp esi, eax
mov byte [esp + 0x13], cl
mov eax, dword [esp + 0x14]
cmovle esi, edx
mov dword [esp + 0x78], ebp
mov edx, dword [esp + 0x20]
sub esi, ebx
mov ebx, dword [esp + 0x54]
add edx, edi
cmp byte [esp + 0x1f], 0
mov dword [esp + 0x98], esi
movups xmm0, xmmword [esp + 0x8c]
mov ecx, dword [ebx + 0x3c]
movq qword [esp + 0x58], xmm1
movups xmmword [esp + 0x60], xmm0
movups xmmword [esp + 0x2c], xmm0
je 0x670c3eca
mov dword [ecx + edx*8], eax
mov ecx, dword [esp + 0x18]
jmp 0x670c3edf
sub eax, dword [esp + 0xb4]
mov dword [ecx + edx*8], eax
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x3c]
inc edi
add dword [esp + 0x24], 2
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x4c], edi
mov dword [eax + edx*8 + 4], ecx
mov edx, dword [esp + 0x44]
mov eax, dword [ebx + 0x38]
mov dword [edx + eax], 0
add edx, 4
cmp edi, dword [esp + 0xc4]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x44], edx
jle 0x670c3c30
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.67284a63
add esp, 0xb0
ret