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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc0
mov eax, dword [esp + 0xd8]
mov ebp, dword [esp + 0xd4]
mov esi, dword [esp + 0xe0]
call 0x50b104
pop ebx
mov dword [esp + 0x48], ebx
mov dword [ebp + 8], 0
mov dword [ebp + 0x24], 0
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x54], 0
mov dword [ebp + 0x68], esi
mov edi, dword [eax + 0x14]
mov esi, dword [eax + 0x10]
cmp esi, edi
mov dword [esp + 0xac], edi
jbe 0x50b146
mov dword [ecx], 0
add esp, 0xc0
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [eax + 0xc]
mov dword [esp + 0xa0], ecx
cmp edi, 0xffffffff
mov dword [esp + 0x10], edi
je 0x5107c5
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + 0x14]
mov byte [esp + 0x5b], cl
mov ecx, dword [edx]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x50b189
cmp ecx, 1
jne 0x50b1c8
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + 0x130]
jmp 0x50b1e4
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0x130]
cmp edi, dword [ecx + 0x134]
mov dword [esp + 0x84], edi
je 0x50b1eb
cmp byte [edx + 0x10], 3
lea ecx, [edx + 4]
mov edx, 0x84ef0c
mov dword [esp + 0x78], 0
cmovne edx, ecx
xor ecx, ecx
cmp byte [edx + 0xc], 2
cmove edx, ecx
mov dword [esp + 0x7c], edx
jmp 0x50b1f9
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x60]
cmp dword [edx + 0x15c], ecx
jbe 0x510528
mov edx, dword [edx + 0x158]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x84], ecx
mov cl, 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xe0]
movzx edx, byte [esp + 0x5b]
movzx eax, byte [eax + 0x18]
mov dword [esp + 8], esi
mov dword [esp + 0xbc], esi
lea ecx, [ecx*4]
cmp dl, 2
mov byte [esp + 0x77], al
mov dword [esp + 0xb4], ecx
setne cl
test dl, 1
sete dl
xor eax, eax
and dl, cl
xor ecx, ecx
mov byte [esp + 0x76], dl
jmp 0x50b29b
movups xmm0, xmmword [ebp + 0x3c]
movups xmm1, xmmword [ebp + 0xc]
movups xmmword [ebp + 0xc], xmm0
movups xmmword [ebp + 0x3c], xmm1
movsd xmm1, qword [ebp + 0x1c]
movdqu xmm0, xmmword [ebp + 0x4c]
movsd qword [ebp + 0x4c], xmm1
mov eax, dword [ebp + 0x38]
movups xmm1, xmmword [ebp + 0x5c]
movups xmm2, xmmword [ebp + 0x28]
movdqu xmmword [ebp + 0x1c], xmm0
pshufd xmm0, xmm0, 0xee
movups xmmword [ebp + 0x58], xmm2
movups xmmword [ebp + 0x2c], xmm1
mov dword [ebp + 0x68], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x54], 0
cmp eax, dword [esp + 0xac]
movd eax, xmm0
ja 0x5105a7
test eax, eax
mov dword [esp + 0x64], ecx
je 0x50b2b0
mov edi, dword [esp + 8]
jmp 0x50b325
cmp byte [esp + 0x5b], 0
sete al
cmp ecx, 1
setne cl
cmp dword [esp + 8], esi
seta dl
test byte [esp + 0x78], dl
jne 0x5105a3
or al, cl
mov ecx, dword [esp + 0x64]
je 0x5105a7
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x50b2a3
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
push dword [esp + 0xac]
push dword [esp + 0xc]
push dword [esp + 0x18]
push dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x44]
push ecx
call dword [eax + 0x20]
add esp, 0x18
cmp dword [esp + 0x30], 0
je 0x5105a3
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
cmp byte [esp + 0x5b], 0
mov dword [esp], edi
sete al
cmp ecx, 1
setne cl
cmp edi, esi
mov esi, edi
setne dl
test byte [esp + 0x78], dl
jne 0x50b39e
or al, cl
je 0x50b39e
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, edx
mov eax, esi
mov dword [esp + 0xc], esi
sub ecx, esi
jb 0x5107bb
mov edx, dword [ebp + 8]
shl ecx, 2
add ecx, dword [ebp + 0x5c]
cmp edx, dword [ebp]
mov dword [esp + 0x68], ecx
jne 0x50b379
mov ecx, ebp
call fcn.0045d970
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x84]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*4], 0
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp]
mov dword [ebp + 8], edx
jne 0x50f0d0
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x24]
cmp ecx, edx
ja 0x510793
mov edi, dword [ebp + 0x10]
lea eax, [esi + 1]
lea ebx, [esi + 2]
mov dword [esp + 0xb0], 0
mov dword [esp + 8], eax
mov dword [esp + 0x50], ebx
lea edx, [edi + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x80], edx
sub ecx, eax
mov dword [esp + 0x4c], ecx
xor ecx, ecx
sub eax, 4
cmovb eax, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
lea eax, [eax + esi + 1]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
cmp edi, edx
je 0x50f06e
mov ebp, dword [esp + 0x48]
jmp 0x50b427
mov ebx, dword [edi]
mov edx, dword [eax + 0x150]
cmp edx, ebx
jbe 0x5105c9
mov eax, dword [eax + 0x14c]
add edi, 4
lea ecx, [ebx + ebx*4]
mov dword [esp + 0x68], edi
lea edi, [eax + ecx*4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax*4 + 0x510980]
add eax, ebp
jmp eax
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
cmp eax, 1
cmove edx, esi
cmove edi, dword [esp + 0xb8]
cmove ecx, eax
cmp byte [esp + 0x77], 0
mov esi, dword [esp + 0xbc]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa4], edi
je 0x50b240
cmp ecx, 1
jne 0x50b240
jmp 0x510574
lea eax, [esi + 1]
mov ecx, esi
mov ebx, dword [ebp + 0x24]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
sub eax, esi
sub ecx, 4
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
lea eax, [eax + esi]
mov dword [esp + 0x50], eax
lea eax, [esi - 1]
mov dword [esp + 0x1c], eax
mov eax, 0
cmovb ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea eax, [eax*4]
mov dword [esp + 0x20], eax
jmp 0x50f12b
mov esi, dword [esp]
nop
mov edx, dword [ebp + 8]
test edx, edx
je 0x50b39e
dec edx
mov dword [ebp + 8], edx
lea ecx, [edx + edx*2]
mov eax, dword [ebp + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [eax + ecx*4 + 4]
test edx, edx
je 0x50f175
cmp edx, 2
je 0x50b39e
cmp edi, dword [esp + 0xc]
jae 0x5105f3
mov eax, dword [eax + ecx*4 + 8]
mov edx, dword [esp + 0x68]
mov dword [edx + edi*4], eax
jmp 0x50f120
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x54], edi
cmp edx, edi
jbe 0x510568
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + edi*4]
cmp ecx, ebx
jae 0x50f1bb
cmp ecx, eax
jae 0x51055c
mov ebp, edi
mov edi, ebx
mov ebx, dword [esp + 0xd4]
mov ebx, dword [ebx + 0x10]
cmp dword [ebx + ecx*4], ebp
mov ebx, edi
mov edi, ebp
mov ebp, dword [esp + 0xd4]
je 0x50f11b
cmp ebx, eax
mov dword [esp + 0x6c], ebx
jae 0x510645
mov eax, dword [ebp + 0x10]
mov dword [eax + ebx*4], edi
mov ecx, dword [esp + 0x54]
cmp ecx, edx
jae 0x51053a
mov eax, dword [esp + 0x60]
mov dword [esi + ecx*4], ebx
inc ebx
mov dword [ebp + 0x24], ebx
mov edx, dword [eax + 0x150]
cmp edx, edi
jbe 0x510597
mov ecx, dword [eax + 0x14c]
lea edx, [edi + edi*4]
lea eax, [ecx + edx*4]
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx*4 + 0x51085c]
add ecx, dword [esp + 0x48]
jmp ecx
mov eax, dword [esp + 0xa0]
mov dword [eax], 0
jmp 0x50b13b
push 0x851ca0
call fcn.007c1be0
mov ecx, esi
push 0x851cb0
call fcn.007c1be0
mov ecx, esi
push 0x850794
call fcn.007c1be0
mov edx, eax
push 0x851cc0
call fcn.007c1be0
mov ecx, edi
push 0x851cb0
call fcn.007c1be0
mov ecx, 1
jmp 0x5105a7
mov ecx, edi
push 0x850794
call fcn.007c1be0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
jmp 0x50b13b
mov ecx, ebx
push 0x850794
call fcn.007c1be0
mov ecx, edx
mov edx, esi
push 0x851cf0
call fcn.007c1be0
mov edx, dword [esp + 0x1c]
mov ecx, esi
push 0x850af4
call fcn.007c1be0
mov edx, dword [esp + 0xc]
mov ecx, edi
push 0x850af4
call fcn.007c1be0
push 0x8509e0
call fcn.007c1be0
mov ecx, dword [esp + 0x1c]
push 0x851140
call fcn.007c1be0
push 0x851130
call fcn.007c1be0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push 0x850f74
call fcn.007c1be0
mov ecx, dword [esp + 8]
push 0x851130
call fcn.007c1be0
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x70]
mov dword [esp + 0x88], 0x851c78
mov dword [esp + 0x8c], 3
mov dword [esp + 0x98], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], fcn.00412930
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x30]
lea edx, [esp + 0x54]
mov dword [esp + 0x3c], fcn.00412930
mov dword [esp + 0x40], edx
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x88]
mov edx, 0x851c90
mov dword [esp + 0x44], 0x4c5f70
mov dword [esp + 0x94], 3
call fcn.007c1b50
mov edx, dword [esp + 0x10]
push 0x851170
call fcn.007c1be0
mov edx, dword [esp + 0x10]
push 0x850f64
call fcn.007c1be0
push 0x851120
call fcn.007c1be0
mov edx, dword [esp + 0x10]
push 0x851160
call fcn.007c1be0
mov edx, dword [esp + 0x10]
push 0x851180
call fcn.007c1be0
mov ecx, esi
push 0x851130
call fcn.007c1be0
mov ecx, esi
mov edx, dword [esp + 0x10]
push 0x850f74
call fcn.007c1be0
mov ecx, 0x850b04
call fcn.007c1fe0
mov ecx, eax
push 0x850b68
call fcn.007c1c40
mov ecx, esi
mov edx, eax
push 0x850b68
call fcn.007c1e60
mov edx, dword [esp + 0x1c]
push 0x850b14
call fcn.007c21f0
mov edx, dword [esp + 0xc]
push 0x850b14
call fcn.007c21f0
mov ecx, ebx
mov edx, eax
push 0x850b68
call fcn.007c1e60
mov ecx, 0x851ce0
call fcn.007c1fe0
mov ecx, ebp
mov edx, eax
push 0x850b68
call fcn.007c1e60
mov ecx, edi
mov edx, eax
push 0x850b68
call fcn.007c1e60
push 0x851cd0
call fcn.007c1c40
mov ecx, edx
mov edx, esi
push 0x851d00
call fcn.007c1b80
mov ecx, esi
mov edx, dword [esp + 0x10]
push 0x8511a0
call fcn.007c1c40
push 0x850b78
call fcn.007c1e60
lea ecx, [esp + 0x30]
mov edx, 0x850ac4
mov dword [esp + 0x30], 0x850abc
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0x93d1f8
mov dword [esp + 0x3c], 0
call fcn.007c1b50
mov ecx, edx
mov edx, eax
push 0x851d00
call fcn.007c1b80
mov ecx, esi
mov edx, dword [esp + 0x10]
push 0x851190
call fcn.007c1c40
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push 0x851190
call fcn.007c1c40
mov ecx, edx
mov edx, dword [esp + 8]
push 0x851d00
call fcn.007c1b80
mov ecx, eax
mov edx, esi
push 0x850b68
call fcn.007c1c40
mov ecx, dword [esp + 0xe0]
push 0x850ae4
call fcn.007c21f0
ud2