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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov dword [esp + 0x50], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x10376020]
xor eax, ebp
mov dword [esp + 0xd8], eax
mov al, byte [0x10379a88]
mov byte [esp + 0x4b], al
test al, 0x19
jne 0x38eed9
xor eax, eax
dec eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 0x70]
cmp byte [eax + 0x155], 0
je 0x38e972
mov bl, byte [0x10379a88]
test bl, 0x19
jne 0x38ef49
xor edi, edi
dec edi
xor eax, eax
mov edx, edi
mov dword [esp + 0x3c], edi
lea esi, [ecx + 0x78]
cmp byte [ecx + 0x7c], 0
jne 0x38e8d7
test bl, 0x19
jne 0x38ed64
mov eax, ecx
mov ecx, dword [ecx + 0x70]
mov edi, dword [eax + 0x78]
call fcn.003cccb0
test al, al
jne 0x38ea1c
mov ecx, dword [esp + 0x50]
cmp dword [ecx + 0x58], 0
jne 0x38ecec
cmp dword [ecx + 0x148], 0
setne al
mov dword [esp + 0x3c], eax
je 0x38e787
test edi, edi
jne 0x38ea28
test edi, edi
jne 0x38ea42
mov bl, byte [0x10379a88]
test bl, 0x19
jne 0x38efb1
xor esi, esi
dec esi
mov dword [esp + 0x40], 0
mov dword [esp + 0x58], esi
mov dword [esp + 0x4c], esi
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc0], 0xffffffff
mov eax, dword [ecx + 0x118]
cmp eax, dword [ecx + 0x11c]
je 0x38e8b9
lea eax, [ecx + 0x118]
mov dword [esp], eax
lea ecx, [esp + 0xb0]
call fcn.002f9620
sub esp, 4
pcmpeqd xmm0, xmm0
lea edi, [esp + 0x90]
movdqa xmmword [edi], xmm0
mov dword [edi + 0x10], 0xffffffff
mov ecx, edi
call fcn.0034aed0
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x38e912
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
mov edi, dword [eax + 4]
sub edi, dword [eax]
sar edi, 2
cmp edi, edx
cmovae edi, edx
mov edx, dword [esp + 0x98]
cmp ecx, edi
je 0x38e919
cmp eax, edx
je 0x38ed25
mov byte [esp + 0x44], bl
mov edx, dword [eax]
mov eax, dword [eax + 4]
sub eax, edx
sar eax, 2
cmp eax, ecx
jbe 0x38ecf9
mov ebx, dword [edx + ecx*4]
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x10391000]
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov ecx, ebx
call edi
sub esp, 4
cmp dword [esp + 0xb8], 0
mov bl, byte [esp + 0x44]
je 0x38e81b
inc dword [esp + 0xbc]
lea ecx, [esp + 0xb0]
call fcn.002f9670
jmp 0x38e81b
lea edi, [esp + 0xb0]
mov ecx, edi
call fcn.0034aed0
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
jmp 0x38e7f3
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 0x40], esi
mov esi, edx
call fcn.003ccc30
sub esp, 0xc
mov edx, esi
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov ecx, dword [ebp + 8]
jmp 0x38e743
mov edx, dword [esp + 0x98]
test edx, edx
jne 0x38ed37
lea ecx, [esp + 0x90]
call fcn.0038f740
lea ecx, [esp + 0xb0]
call fcn.0038f740
test bl, 0x19
jne 0x38eda2
test byte [0x10379a88], 0x19
mov ebx, dword [ebp + 8]
jne 0x38ee34
mov ecx, dword [ebx + 0x70]
mov dword [esp], ebx
call fcn.003cb990
sub esp, 4
cmp byte [ebx + 0x7c], 0
sete al
mov ecx, dword [esp + 0x3c]
xor cl, 1
or cl, al
je 0x38e995
test byte [esp + 0x4b], 0x19
jne 0x38ede9
mov ecx, dword [esp + 0xd8]
xor ecx, ebp
call fcn.002a5ceb
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov ecx, dword [ebx + 0x80]
mov edx, dword [ebx + 0x84]
mov eax, dword [ebx + 0x8c]
mov esi, dword [ebx + 0x88]
mov edi, esi
mov dword [esp + 0x3c], ecx
sub edi, ecx
mov ecx, eax
mov dword [esp + 0x44], edx
sbb ecx, edx
seto dl
mov ebx, ecx
sar ebx, 0x1f
test dl, dl
cmovne edi, ebx
add ebx, 0x80000000
test dl, dl
cmove ebx, ecx
cmp edi, 0xc351
mov ecx, ebx
sbb ecx, 0
mov ecx, dword [esp + 0x50]
jl 0x38e972
cmp dword [ecx + 0x58], 0
jne 0x38e972
test byte [0x10379080], 0x19
je 0x38e972
jmp 0x38f020
lea esi, [esp + 0xb0]
mov ecx, esi
call fcn.0034aed0
xor eax, eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
jmp 0x38eac3
test edi, edi
mov ecx, dword [esp + 0x50]
je 0x38ebf2
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov ecx, esi
call fcn.00391c40
sub esp, 4
mov ecx, dword [esp + 0x50]
mov al, 1
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 8]
cmp byte [eax + 0x7c], 0
je 0x38e78f
cmp dword [ecx + 0x58], 0
jne 0x38e78f
mov al, byte [0x10379a88]
mov byte [esp + 0x44], al
test al, 0x19
jne 0x38ec7b
xor eax, eax
dec eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc0], 0xffffffff
mov eax, dword [ecx + 0x134]
cmp eax, dword [ecx + 0x138]
je 0x38e9fe
lea eax, [ecx + 0x134]
mov dword [esp], eax
lea ecx, [esp + 0xb0]
call fcn.0033b2c0
sub esp, 4
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x90]
movdqa xmmword [esi], xmm0
mov dword [esi + 0x10], 0xffffffff
mov ecx, esi
call fcn.0034aed0
xor eax, eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
lea esi, [esp + 0xb0]
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x38ebbf
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
mov edi, dword [eax + 4]
sub edi, dword [eax]
sar edi, 2
cmp edi, edx
cmovae edi, edx
mov edx, dword [esp + 0x98]
cmp ecx, edi
je 0x38ebc6
cmp eax, edx
je 0x38ebfd
mov edx, dword [eax]
mov eax, dword [eax + 4]
sub eax, edx
sar eax, 2
cmp eax, ecx
jbe 0x38ecf9
mov ebx, dword [edx + ecx*4]
mov eax, dword [ebp + 8]
movsd xmm0, qword [eax + 0x88]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [eax + 0x80]
movsd qword [esp + 0x80], xmm0
mov eax, dword [ebx]
mov edi, dword [eax + 8]
mov ecx, edi
call dword [0x10391000]
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 8], xmm0
movq xmm0, qword [esp + 0x80]
movq qword [esp], xmm0
mov ecx, ebx
call edi
sub esp, 0x10
cmp dword [esp + 0xb8], 0
je 0x38eaf2
inc dword [esp + 0xbc]
mov ecx, esi
call fcn.0033b310
jmp 0x38eaf2
mov edx, dword [esp + 0x98]
test edx, edx
jne 0x38ec0b
lea ecx, [esp + 0x90]
call fcn.0038f7d0
lea ecx, [esp + 0xb0]
call fcn.0038f7d0
test byte [esp + 0x44], 0x19
jne 0x38ec34
mov ecx, dword [esp + 0x50]
jmp 0x38e78f
mov al, 1
mov dword [esp + 0x3c], eax
jmp 0x38e78f
cmp ecx, dword [esp + 0x9c]
je 0x38ebca
jmp 0x38eb33
mov ecx, dword [edx + 4]
sub ecx, dword [edx]
sar ecx, 2
mov edi, dword [esp + 0xa0]
cmp ecx, edi
cmovae ecx, edi
cmp dword [esp + 0x9c], ecx
je 0x38ebca
mov ecx, dword [esp + 0xbc]
jmp 0x38eb2b
mov eax, dword [esp + 0x4c]
cmp byte [eax], 0
je 0x38ebe9
mov eax, dword [esp + 0x58]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb4], eax
movq xmm0, qword [esp + 0xb0]
movq qword [esp + 8], xmm0
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.00316d30
jmp 0x38ebe9
lea esi, [esp + 0xb0]
mov dword [esp], esi
call fcn.0031e4b0
call fcn.002de5d0
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], 0x1035c0ef
mov dword [esp + 4], 0x10379a88
mov dword [esp], 0x58
call fcn.00316cb0
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x40], 0x1035c0ef
mov dword [esp + 0x4c], 0x10379a88
jmp 0x38ea81
mov dword [esp + 0x3c], 0
jmp 0x38e787
mov dword [esp + 0x10], 0x10306efc
mov dword [esp + 0xc], 0x10306f19
mov dword [esp + 8], 0x601
mov dword [esp + 4], 0x10306f26
mov dword [esp], 0x10306412
call fcn.002eb940
cmp ecx, dword [esp + 0x9c]
je 0x38e921
jmp 0x38e85c
mov ecx, dword [edx + 4]
sub ecx, dword [edx]
sar ecx, 2
mov edi, dword [esp + 0xa0]
cmp ecx, edi
cmovae ecx, edi
cmp dword [esp + 0x9c], ecx
je 0x38e921
mov ecx, dword [esp + 0xbc]
jmp 0x38e854
cmp byte [eax], 0
je 0x38e74c
mov dword [esp + 0xb0], edx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xb4], ecx
movq xmm0, qword [esp + 0xb0]
movq qword [esp + 8], xmm0
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00316d30
mov ecx, dword [ebp + 8]
jmp 0x38e74c
mov eax, dword [esp + 0x40]
cmp byte [eax], 0
je 0x38e942
mov dword [esp + 0xb0], esi
mov eax, dword [esp + 0x58]
mov dword [esp + 0xb4], eax
movq xmm0, qword [esp + 0xb0]
movq qword [esp + 8], xmm0
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00316d30
jmp 0x38e942
mov eax, dword [esp + 0x5c]
cmp byte [eax], 0
je 0x38e97d
mov eax, dword [esp + 0x68]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb4], eax
movq xmm0, qword [esp + 0xb0]
movq qword [esp + 8], xmm0
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.00316d30
jmp 0x38e97d
lea esi, [esp + 0xb0]
mov dword [esp], esi
call fcn.0031e4b0
call fcn.002de5d0
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], 0x1035c143
mov dword [esp + 4], 0x10379a88
mov dword [esp], 0x58
call fcn.00316cb0
mov esi, eax
mov edi, edx
mov ecx, dword [ebx + 0x70]
mov dword [esp], ebx
call fcn.003cb990
sub esp, 4
cmp byte [0x10379a88], 0
je 0x38e960
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], edi
movq xmm0, qword [esp + 0xb0]
movq qword [esp + 8], xmm0
mov dword [esp + 4], 0x1035c143
mov dword [esp], 0x10379a88
call fcn.00316d30
jmp 0x38e960
lea esi, [esp + 0xb0]
mov dword [esp], esi
call fcn.0031e4b0
call fcn.002de5d0
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], 0x1035c097
mov dword [esp + 4], 0x10379a88
mov dword [esp], 0x58
call fcn.00316cb0
mov ecx, dword [ebp + 8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x6c], 0x1035c097
mov dword [esp + 0x5c], 0x10379a88
jmp 0x38e70c
lea esi, [esp + 0xb0]
mov dword [esp], esi
call fcn.0031e4b0
call fcn.002de5d0
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], 0x1035c0ca
mov dword [esp + 4], 0x10379a88
mov dword [esp], 0x58
call fcn.00316cb0
mov ecx, dword [ebp + 8]
mov dword [esp + 0x3c], edx
mov edx, eax
mov edi, 0x1035c0ca
mov eax, 0x10379a88
jmp 0x38e736
lea esi, [esp + 0xb0]
mov dword [esp], esi
call fcn.0031e4b0
call fcn.002de5d0
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], 0x1035c11b
mov dword [esp + 4], 0x10379a88
mov dword [esp], 0x58
call fcn.00316cb0
mov ecx, dword [esp + 0x50]
mov esi, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], 0x1035c11b
mov dword [esp + 0x40], 0x10379a88
jmp 0x38e7b1
mov dword [esp + 0x50], esi
mov esi, eax
mov eax, dword [esp + 0x44]
mov ecx, edi
add ecx, 1
mov edx, ebx
adc edx, 0x80000000
cmp ecx, 2
sbb edx, 0
jb 0x38f069
movd xmm0, edi
movd xmm1, ebx
punpckldq xmm0, xmm1
movq qword [esp + 0x78], xmm0
fild qword [esp + 0x78]
fstp qword [esp + 0x70]
movsd xmm0, qword [esp + 0x70]
divsd xmm0, qword [0x10321d40]
jmp 0x38f082
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0x3c]
sbb esi, eax
setl al
movzx eax, al
movsd xmm0, qword [eax*8 + 0x10317080]
movsd qword [esp + 0x50], xmm0
lea edi, [esp + 0x90]
mov dword [esp], edi
call fcn.0031e4b0
call fcn.002de5d0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
mov word [esp + 0xb0], 0x401
mov dword [esp + 0xb4], 0x1035c16d
movq xmm0, qword [esp + 0x50]
movq qword [esp + 0xc0], xmm0
lea esi, [esp + 0xb0]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], eax
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 0x2c], 8
mov dword [esp + 0x1c], 0
mov dword [esp + 8], 0x1035c176
mov dword [esp + 4], 0x10379080
mov dword [esp], 0x49
call fcn.00316cb0
mov ecx, esi
call fcn.002f8e30
jmp 0x38e972