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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x150
mov eax, dword [0x10376020]
xor eax, ebp
mov dword [esp + 0x148], eax
mov esi, dword [ecx]
mov dword [ecx], 0
test esi, esi
je 0x3be198
cmp byte [esi + 0x24], 0
jne 0x3be1f9
xor eax, eax
lea ecx, [esp + 0x40]
mov dword [ecx + 0x10], eax
xorps xmm0, xmm0
movaps xmmword [ecx], xmm0
xor edx, edx
dec edx
push ecx
push edx
push edx
push eax
push dword [esi + 4]
call dword [0x1036f828]
test eax, eax
je 0x3be1ae
lea ecx, [esi + 0x28]
call fcn.003bf570
lea ecx, [esi + 0x18]
call fcn.003477d0
lea ecx, [esi + 0xc]
call fcn.003477d0
mov dword [esi], 0x10305118
cmp byte [esi + 8], 0
jne 0x3be835
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
je 0x3be18f
push eax
call fcn.003bb4f0
add esp, 4
push esi
call fcn.002a5449
add esp, 4
mov ecx, dword [esp + 0x148]
xor ecx, ebp
call fcn.002a5ceb
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 2
call fcn.00344430
add esp, 4
test al, al
je 0x3be156
call fcn.00344f70
lea edi, [esp + 0x74]
mov ecx, edi
push eax
push 2
push 0x13c
push 0x103603e8
call fcn.003450b0
lea eax, [esp + 0x7c]
push 0xc
push 0x10360566
push eax
call fcn.002d8830
add esp, 0xc
mov ecx, edi
call fcn.00345110
jmp 0x3be156
xor eax, eax
push eax
push eax
push eax
push dword [esi + 4]
call fcn.003ec0b0
add esp, 0x10
or edx, eax
je 0x3be256
push 2
call fcn.00344430
add esp, 4
test al, al
je 0x3be133
lea edi, [esp + 0x74]
mov ecx, edi
push 2
push 0x204
push 0x103603e8
call fcn.00344530
lea eax, [esp + 0x7c]
push 0x19
push 0x10360573
push eax
call fcn.002d8830
add esp, 0xc
mov ecx, edi
call fcn.003448e0
jmp 0x3be133
push dword [esi + 4]
call dword [0x1036f7ac]
test eax, eax
jne 0x3be2b2
push 2
call fcn.00344430
add esp, 4
test al, al
je 0x3be133
call fcn.00344f70
lea edi, [esp + 0x74]
mov ecx, edi
push eax
push 2
push 0x20b
push 0x103603e8
call fcn.003450b0
lea eax, [esp + 0x7c]
push 0x12
push 0x1036058d
push eax
call fcn.002d8830
add esp, 0xc
mov ecx, edi
call fcn.00345110
jmp 0x3be133
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
mov eax, edi
sub eax, ebx
sar eax, 3
imul ecx, eax, 0xba2e8ba3
lea eax, [esp + 0x40]
mov dword [eax + 0xc], 0
mov dword [eax], 0x43504144
mov dword [eax + 4], 1
mov dword [esp + 4], ecx
mov dword [eax + 8], ecx
push 0x10
push eax
push dword [esi + 4]
call fcn.003ea700
add esp, 0xc
test al, al
jne 0x3be32f
push 2
call fcn.00344430
add esp, 4
test al, al
je 0x3be133
lea edi, [esp + 0x74]
mov ecx, edi
push 2
push 0x217
push 0x103603e8
call fcn.00344530
lea eax, [esp + 0x7c]
push 0x16
push 0x103605a0
jmp 0x3be241
cmp edi, ebx
je 0x3be133
xor eax, eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], eax
cmp dword [esp + 4], 0x4924925
jae 0x3be7ff
lea ebx, [esp + 0x68]
lea eax, [esp + 0x74]
mov dword [eax + 0x10], ebx
imul edi, dword [esp + 4], 0x38
push edi
call fcn.002a5419
add esp, 4
add edi, eax
mov dword [ebx - 0xc], eax
mov dword [ebx - 8], eax
mov dword [ebx - 4], edi
xorps xmm0, xmm0
lea ecx, [esp + 0x74]
movups xmmword [ecx], xmm0
call fcn.003bf5b0
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x3c], ecx
cmp eax, ecx
je 0x3be3a4
lea eax, [esi + 0xc]
mov dword [esp + 0x18], eax
jmp 0x3be550
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
sub ecx, eax
je 0x3be81f
push ecx
push eax
push dword [esi + 4]
call fcn.003ea700
add esp, 0xc
test al, al
je 0x3be41e
lea eax, [esp + 0x68]
movzx ecx, byte [eax + 0xb]
mov edx, ecx
and edx, 0x7f
test cl, cl
cmovs edx, dword [eax + 4]
cmovs eax, dword [eax]
push edx
push eax
push dword [esi + 4]
call fcn.003ea700
add esp, 0xc
test al, al
jne 0x3be45e
push 2
call fcn.00344430
add esp, 4
test al, al
je 0x3be45e
lea edi, [esp + 0x74]
mov ecx, edi
push 2
push 0x233
push 0x103603e8
call fcn.00344530
lea eax, [esp + 0x7c]
push 0x1c
push 0x103605e8
jmp 0x3be44e
push 2
call fcn.00344430
add esp, 4
test al, al
je 0x3be45e
lea edi, [esp + 0x74]
mov ecx, edi
push 2
push 0x22e
push 0x103603e8
call fcn.00344530
lea eax, [esp + 0x7c]
push 0x17
push 0x103605d0
push eax
call fcn.002d8830
add esp, 0xc
mov ecx, edi
call fcn.003448e0
lea ecx, [esp + 0x5c]
call fcn.003bf530
cmp byte [esp + 0x73], 0
jns 0x3be133
push dword [esp + 0x68]
call fcn.002a5449
add esp, 4
jmp 0x3be133
push 2
call fcn.00344430
add esp, 4
test al, al
je 0x3be45e
lea ebx, [esp + 0x74]
mov ecx, ebx
push 2
push 0x225
push 0x103603e8
call fcn.00344530
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.00347af0
add esp, 8
push 0x18
push 0x103605b7
push eax
call fcn.002d8830
add esp, 0xc
push dword [esp + 0x18]
push eax
call fcn.00347af0
add esp, 8
mov ecx, ebx
jmp 0x3be459
cmp dword [esp + 8], 0
je 0x3be804
movaps xmm0, xmmword [esp + 0x130]
mov ecx, dword [esp + 8]
movups xmmword [ecx], xmm0
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edi
mov al, byte [esp + 3]
mov byte [ecx + 0x30], al
xor eax, eax
mov dword [ecx + 0x31], eax
mov dword [ecx + 0x34], eax
add ecx, 0x38
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0xc]
add eax, 0x58
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x3c]
je 0x3be3a8
mov eax, dword [esp + 0xc]
lea edi, [eax + 0x10]
mov ecx, edi
lea ebx, [esp + 0x74]
push ebx
call fcn.00347e50
mov ecx, ebx
push dword [esp + 0x18]
call fcn.00347a70
mov ebx, eax
lea ecx, [esp + 0x74]
call fcn.003477d0
test bl, bl
jne 0x3be483
mov eax, dword [esp + 0xc]
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0x130], xmm0
mov ecx, edi
lea eax, [esp + 0x11c]
push eax
call fcn.00347fc0
movzx eax, byte [esp + 0x127]
test al, al
js 0x3be5b7
and eax, 0x7f
lea edx, [esp + 0x11c]
jmp 0x3be5c5
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
lea ecx, [esp + 0x128]
push eax
push edx
call fcn.002d86d0
push dword [esp + 0x12c]
push dword [esp + 0x12c]
lea edi, [esp + 0x7c]
push edi
call fcn.00335210
add esp, 0xc
lea ecx, [esp + 0x68]
mov edx, edi
call fcn.003bf600
mov dword [esp + 0x34], eax
cmp byte [esp + 0x7f], 0
jns 0x3be610
push dword [esp + 0x74]
call fcn.002a5449
add esp, 4
lea ecx, [esp + 0x11c]
call fcn.003477d0
mov edi, dword [esp + 0xc]
lea edx, [edi + 0x1c]
lea ecx, [esp + 0x68]
call fcn.003bf600
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x3c]
mov dword [esp + 0x30], eax
mov al, byte [edi + 0x44]
add al, al
or al, byte [edi + 0x30]
mov byte [esp + 3], al
mov eax, dword [edi + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x20], eax
mov edi, dword [edi + 0x50]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], eax
mov dword [esp + 0x38], ecx
cmp eax, ecx
jb 0x3be4d7
lea eax, [esp + 0x78]
xor ecx, ecx
dec ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 8]
mov dword [esp + 4], ecx
sub eax, ecx
sar eax, 3
imul ebx, eax, 0xb6db6db7
lea eax, [ebx + 1]
cmp eax, 0x4924925
jae 0x3be7ff
mov edx, eax
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 4]
sar eax, 3
imul eax, eax, 0xb6db6db7
lea ecx, [eax + eax]
cmp ecx, edx
cmova edx, ecx
cmp eax, 0x2492492
mov eax, 0x4924924
cmovae edx, eax
lea eax, [esp + 0x68]
mov dword [esp + 0x84], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], edx
test edx, edx
je 0x3be711
cmp dword [esp + 0x10], 0x4924925
jae 0x3be838
imul eax, dword [esp + 0x10], 0x38
push eax
call fcn.002a5419
add esp, 4
mov dword [esp + 0x14], eax
imul eax, ebx, 0x38
add eax, dword [esp + 0x14]
je 0x3be804
movaps xmm0, xmmword [esp + 0x130]
mov edx, eax
movups xmmword [eax], xmm0
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edi
mov cl, byte [esp + 3]
mov byte [eax + 0x30], cl
xor ecx, ecx
mov dword [eax + 0x31], ecx
mov dword [eax + 0x34], ecx
mov ecx, dword [esp + 4]
cmp dword [esp + 8], ecx
je 0x3be7b0
mov ecx, eax
mov ebx, dword [esp + 8]
movsd xmm0, qword [ebx - 8]
movsd qword [ecx - 8], xmm0
movups xmm0, xmmword [ebx - 0x18]
movups xmmword [ecx - 0x18], xmm0
movups xmm0, xmmword [ebx - 0x38]
movups xmm1, xmmword [ebx - 0x28]
lea edi, [ebx - 0x38]
lea edx, [ecx - 0x38]
movups xmmword [ecx - 0x28], xmm1
movups xmmword [ecx - 0x38], xmm0
mov ecx, edx
mov ebx, edi
cmp edi, dword [esp + 4]
jne 0x3be77e
imul ecx, dword [esp + 0x10], 0x38
mov ebx, dword [esp + 0x14]
add ebx, ecx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x78], edx
mov ecx, dword [esp + 8]
mov dword [esp + 0x7c], ecx
mov edi, eax
add edi, 0x38
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x80], eax
mov dword [esp + 0x74], edx
lea ecx, [esp + 0x74]
call fcn.003bf5b0
mov ecx, edi
mov dword [esp + 0x60], edi
jmp 0x3be53b
call fcn.002d8e00
push 0x10306a0c
push 0x10306a2f
push 0x28
push 0x103067f4
push 0x10306412
call fcn.002eb940
push 0x10306efc
push 0x10306f19
push 0x601
push 0x10306f26
jmp 0x3be815
int3
call fcn.002d86c0
int3