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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov esi, ecx
lea edi, [ecx + 8]
cmp byte [ecx + 0x10], 0
je 0x39302c
mov ecx, edi
call fcn.003820b0
mov byte [esi + 0x10], 0
push edi
call fcn.003941f0
add esp, 4
mov byte [esi + 0x10], 1
lea ebx, [esi + 0x14]
cmp byte [esi + 0x1c], 0
jne 0x393091
mov ecx, edi
call fcn.0038bcb0
cmp byte [esi + 0x1c], 0
jne 0x393088
cmp byte [esi + 0x10], 0
je 0x39305c
mov ecx, edi
call fcn.003820b0
mov eax, dword [esi]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x1037d868]
bt edx, ecx
jae 0x39307d
push eax
call fcn.002ddbe0
add esp, 4
mov dword [esi], 0
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, ebx
call fcn.00392eb0
jmp 0x39304f
mov ecx, ebx
call fcn.00392eb0
mov byte [esi + 0x1c], 0
cmp byte [esi + 0x10], 0
jne 0x393042
push 0x10306a45
push 0x1030677e
push 0x3f4
push 0x10306790
push 0x10306412
call fcn.002eb940
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb0
mov esi, esp
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x10376020]
xor eax, ebp
mov dword [esi + 0xa8], eax
mov eax, dword [ecx]
cmp eax, 2
mov ecx, 2
cmovb ecx, eax
mov dword [esi + 0x10], ecx
xor eax, eax
dec eax
lea edi, [esi + 0x80]
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
mov ecx, edi
call fcn.00332ce0
mov dword [esi + 0xc], esp
mov dword [edi], 0
mov dword [esi + 8], ebx
add ebx, 0x1c
sub esp, 0x18
mov ecx, esp
push edi
call fcn.00332d20
mov ecx, ebx
call fcn.00332fa0
mov esp, dword [esi + 0xc]
test al, al
je 0x3933eb
cmp byte [0x1038e718], 0
jne 0x393359
push 0x1037a6cc
call fcn.0034a260
add esp, 4
test al, al
mov edi, dword [esi + 8]
jne 0x3933fa
mov ecx, edi
call fcn.00393530
mov dword [esi + 0x98], 0xffffffff
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x393345
lea edi, [esi + 0x98]
push edi
call fcn.003336a0
mov eax, dword [edi]
test eax, eax
je 0x39334f
xor ecx, ecx
inc ecx
lock xadd dword [eax + 4], ecx
cmp ecx, 0x7fffffff
mov edi, dword [esi + 8]
je 0x3933ee
lea ecx, [edi + 0x60]
push eax
call fcn.003d6450
mov eax, dword [esi + 0x98]
test eax, eax
je 0x3931d2
xor ecx, ecx
inc ecx
lock xadd dword [eax + 4], ecx
cmp ecx, 0x7fffffff
je 0x3933f1
lea ecx, [edi + 0x98]
push dword [ebp + 0xc]
push eax
call fcn.003d7260
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
xor ecx, ecx
cmp eax, 1
sete cl
lea ebx, [ecx*2 - 1]
test eax, eax
cmove ebx, eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x124]
mov dword [esi + 0xc], eax
xor eax, eax
mov byte [esi + 0x50], al
mov byte [esi + 0x58], al
mov al, byte [0x1038e718]
mov edx, dword [esi + 0x98]
test edx, edx
je 0x393237
xor edi, edi
inc edi
lock xadd dword [edx + 4], edi
cmp edi, 0x7fffffff
je 0x3933f4
mov edi, dword [ebp + 8]
movsd xmm0, qword [edi + 0x10]
movsd qword [esi + 0x48], xmm0
sub esp, 0x30
movups xmm1, xmmword [esi + 0x50]
movups xmmword [esp + 0x20], xmm1
movsd qword [esp + 8], xmm0
movzx eax, al
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
mov dword [esp], ecx
mov dword [esp + 0x18], ebx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 4], eax
mov ecx, dword [esi + 0xc]
call fcn.003d9e30
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x128]
test ecx, ecx
jne 0x393370
mov ecx, dword [eax + 0x12c]
test ecx, ecx
je 0x39330c
xor eax, eax
mov byte [esi + 0x20], al
mov byte [esi + 0x28], al
mov dl, byte [0x1038e718]
mov eax, dword [esi + 0x98]
test eax, eax
je 0x3932c5
xor edi, edi
inc edi
lock xadd dword [eax + 4], edi
cmp edi, 0x7fffffff
je 0x3933f7
mov edi, dword [ebp + 8]
movsd xmm0, qword [edi + 0x10]
movsd qword [esi + 0x18], xmm0
sub esp, 0x30
movups xmm1, xmmword [esi + 0x20]
movups xmmword [esp + 0x20], xmm1
movsd qword [esp + 8], xmm0
movzx edx, dl
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ebx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.003d9e30
mov eax, dword [esi + 8]
mov byte [eax + 0x130], 1
mov eax, dword [esi + 0x98]
test eax, eax
je 0x393323
lock dec dword [eax + 4]
je 0x393365
lea ecx, [esi + 0x80]
call fcn.00332d60
mov ecx, dword [esi + 0xa8]
xor ecx, ebp
call fcn.002a5ceb
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov dword [esi + 0x98], 0
xor eax, eax
mov edi, dword [esi + 8]
jmp 0x3931ab
mov ecx, ebx
call fcn.00333170
jmp 0x39314a
push eax
call fcn.00334290
add esp, 4
jmp 0x393323
xor eax, eax
mov byte [esi + 0x38], al
mov byte [esi + 0x40], al
mov dl, byte [0x1038e718]
mov eax, dword [esi + 0x98]
test eax, eax
je 0x39339c
xor edi, edi
inc edi
lock xadd dword [eax + 4], edi
cmp edi, 0x7fffffff
je 0x393521
mov edi, dword [ebp + 8]
movsd xmm0, qword [edi + 0x10]
movsd qword [esi + 0x30], xmm0
sub esp, 0x30
movups xmm1, xmmword [esi + 0x38]
movups xmmword [esp + 0x20], xmm1
movsd qword [esp + 8], xmm0
movzx edx, dl
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
mov dword [esp + 0x18], ebx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 4], eax
call fcn.003d9e30
mov eax, dword [esi + 8]
jmp 0x39328f
int3
int3
int3
int3
int3
call fcn.003d5b60
test al, al
je 0x393162
lea eax, [edi + 0x13c]
mov ecx, dword [edi + 0x13c]
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], eax
lock inc dword [edi + 0x140]
mov eax, dword [edi + 0x18]
lea ecx, [eax + 0x38]
mov edx, dword [eax + 0x38]
mov dword [esi + 0x6c], edx
mov dword [esi + 0x70], ecx
lock inc dword [eax + 0x3c]
lea eax, [edi + 0xc]
movzx edx, byte [edi + 0x17]
test dl, dl
jns 0x39347f
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x393483
mov eax, dword [eax]
lea edi, [esi + 0x98]
mov ecx, edi
push edx
push eax
call fcn.002d86d0
mov dword [edi + 8], 0x10310603
mov dword [edi + 0xc], 7
lea eax, [esi + 0x60]
push 1
push 0x1030ad73
push 2
push edi
push eax
call fcn.00336db0
add esp, 0x14
jmp 0x39348e
test edx, edx
jne 0x39344a
xor eax, eax
mov dword [esi + 0x64], eax
mov dword [esi + 0x60], eax
mov dword [esi + 0x68], eax
lea eax, [esi + 0x74]
lea ecx, [esi + 0x6c]
lea edx, [esi + 0x60]
lea edi, [esi + 0x7c]
push eax
push ecx
push 0x1035c2a4
push 0x1035c2a0
push edx
push edi
call fcn.00392de0
add esp, 0x18
mov eax, dword [edi]
mov dword [edi], 0
mov edx, dword [esi + 8]
mov ecx, dword [edx + 0x128]
mov dword [edx + 0x128], eax
test ecx, ecx
je 0x3934e7
push 1
call fcn.003dbc00
mov ecx, dword [esi + 0x7c]
mov dword [esi + 0x7c], 0
test ecx, ecx
je 0x3934e7
push 1
call fcn.003dbc00
cmp byte [esi + 0x6b], 0
jns 0x3934f8
push dword [esi + 0x60]
call fcn.002a5449
add esp, 4
lea ecx, [esi + 0x6c]
call fcn.00392eb0
lea ecx, [esi + 0x74]
call fcn.00392eb0
mov edi, dword [esi + 8]
mov ecx, dword [edi + 0x124]
push dword [edi + 0x128]
call fcn.003d9870
jmp 0x393162
int3