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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa8
call 0x5049ff
pop eax
mov dword [esp + 0x9c], edx
mov ebx, ecx
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xc0]
mov dword [ebp + 8], 0
mov dword [ebp + 0x24], 0
mov dword [ebp + 0x38], 0
mov dword [ebp + 0x54], 0
mov dword [ebp + 0x68], 0
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
cmp ecx, edx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x7c], edx
jbe 0x504a5e
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [eax + 0xc]
cmp ecx, 0xffffffff
mov dword [esp + 0xc], ecx
je 0x509f04
mov ecx, dword [eax]
test ecx, ecx
je 0x504a81
cmp ecx, 1
jne 0x504a98
mov ecx, dword [ebx + 0x130]
jmp 0x504aac
mov ecx, dword [ebx + 0x130]
cmp ecx, dword [ebx + 0x134]
mov dword [esp + 0x78], ecx
sete byte [esp + 0x5f]
jmp 0x504ab5
mov ecx, dword [eax + 4]
cmp dword [ebx + 0x15c], ecx
jbe 0x504a53
mov edx, dword [ebx + 0x158]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x78], ecx
mov byte [esp + 0x5f], 1
mov ecx, dword [eax + 8]
movzx eax, byte [eax + 0x18]
mov esi, dword [esp + 0xc4]
mov edi, dword [esp + 0x98]
mov dword [esp + 8], ebx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x9c]
mov byte [esp + 0x72], al
mov eax, dword [esi + 8]
mov dword [esp + 0xa0], edi
cmp cl, 2
sete dl
or dl, cl
mov byte [esp + 0x73], dl
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x54], edx
cmp byte [esp + 0x9c], 0
mov dword [esp + 0x10], edi
setne cl
cmp edi, dword [esp + 0x7c]
adc dword [esp + 0xa0], 0
test eax, eax
setne al
and al, cl
cmp dword [esp + 0x54], 0
je 0x504b30
test al, al
je 0x504b46
jmp 0x505f00
cmp edi, dword [esp + 0x98]
seta cl
and cl, byte [esp + 0x5f]
or cl, al
jne 0x504a53
mov edx, dword [ebp + 8]
cmp edx, dword [ebp]
jne 0x504b58
mov ecx, ebp
call fcn.0045d970
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x78]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*4], 0
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x10]
mov dword [ebp + 8], edx
je 0x505f00
mov eax, dword [esp + 0xc]
lea ecx, [edi - 1]
mov esi, 0
mov dword [esp + 0x50], ecx
mov ecx, edi
sub eax, edi
sub ecx, 4
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
cmovb ecx, esi
mov dword [esp + 0x20], ecx
add eax, edi
mov dword [esp], eax
jmp 0x504bc2
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0x10]
mov edx, dword [ebp + 8]
test edx, edx
je 0x505f00
dec edx
mov dword [ebp + 8], edx
lea edx, [edx + edx*2]
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ecx + edx*4 + 4]
test eax, eax
je 0x504be3
jmp 0x505eeb
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x58], ecx
cmp edx, ecx
jbe 0x509ca8
mov edi, dword [ebp + 0x1c]
mov esi, ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [edi + ecx*4]
cmp ecx, dword [esp + 0x54]
jae 0x504c1e
cmp ecx, eax
jae 0x509cbe
mov ebx, dword [esp + 0xbc]
mov ebx, dword [ebx + 0x10]
cmp dword [ebx + ecx*4], esi
mov ebx, dword [esp + 8]
je 0x504bac
mov ecx, dword [esp + 0x54]
cmp ecx, eax
mov dword [esp + 0x68], ecx
jae 0x509dd0
mov ebp, dword [esp + 0xbc]
mov eax, dword [ebp + 0x10]
mov dword [eax + ecx*4], esi
mov eax, esi
mov esi, ecx
mov ecx, dword [esp + 0x58]
cmp ecx, edx
jae 0x509c9e
mov dword [edi + ecx*4], esi
inc esi
mov dword [ebp + 0x24], esi
mov edx, dword [ebx + 0x150]
cmp edx, eax
jbe 0x509cb2
mov ecx, dword [ebx + 0x14c]
lea edx, [eax + eax*4]
mov edi, eax
mov dword [esp + 0x54], esi
lea eax, [ecx + edx*4]
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx*4 + 0x509f5c]
add ecx, dword [esp + 0x64]
jmp ecx
cmp eax, 2
jne 0x509e62
nop word cs:[eax + eax]
nop
cmp byte [ebx + 0x162], 0
je 0x505f30
cmp byte [ebx + 0x163], 0
setne al
mov dword [esp + 0xa4], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x24]
cmp ecx, edx
jbe 0x505f49
jmp 0x509ecc
mov dword [esp + 0xa4], 0
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x24]
cmp ecx, edx
ja 0x509ecc
test ecx, ecx
je 0x509c10
lea esi, [edi + 1]
mov eax, 0
mov ebp, dword [ebp + 0x10]
mov edx, esi
sub edx, 4
cmovb edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 8]
mov ebx, dword [ebp]
mov edx, dword [edx + 0x150]
cmp edx, ebx
jbe 0x509cca
lea eax, [ebp + ecx*4]
mov ecx, ebp
mov dword [esp + 4], esi
mov dword [esp + 0x50], eax
lea eax, [edi + 2]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xc]
sub eax, esi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x14]
lea eax, [eax + edi + 1]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 8]
jmp 0x505fdd
mov eax, dword [eax + 0x14c]
add ecx, 4
mov dword [esp + 0x18], ecx
lea ecx, [ebx + ebx*4]
lea esi, [eax + ecx*4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax*4 + 0x50a080]
add eax, dword [esp + 0x64]
jmp eax
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 8]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 4]
je 0x504a53
cmp byte [esp + 0x72], 0
jne 0x504a53
movups xmm0, xmmword [ebp + 0x3c]
movups xmm1, xmmword [ebp + 0xc]
cmp edi, dword [esp + 0x7c]
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 ecx, dword [ebp + 0x38]
movups xmm1, xmmword [ebp + 0x5c]
movups xmm2, xmmword [ebp + 0x28]
movdqu xmmword [ebp + 0x1c], xmm0
movups xmmword [ebp + 0x58], xmm2
movups xmmword [ebp + 0x2c], xmm1
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x54], 0
jae 0x504a53
mov edi, dword [esp + 0xa0]
pshufd xmm0, xmm0, 0xee
movd dword [esp + 0x54], xmm0
cmp edi, dword [esp + 0x7c]
jbe 0x504afa
jmp 0x504a53
push 0x851ca0
call fcn.007c1be0
push 0x851cb0
call fcn.007c1be0
mov ecx, eax
push 0x850794
call fcn.007c1be0
mov edx, eax
push 0x851cc0
call fcn.007c1be0
mov ecx, ebx
push 0x850794
call fcn.007c1be0
mov ecx, edx
mov edx, ebx
push 0x851cf0
call fcn.007c1be0
mov ecx, edi
push 0x851cb0
call fcn.007c1be0
mov ecx, esi
push 0x850794
call fcn.007c1be0
mov ecx, edx
mov edx, edi
push 0x851cf0
call fcn.007c1be0
mov ecx, edx
mov edx, dword [esp + 4]
push 0x851cf0
call fcn.007c1be0
mov ecx, edx
mov edx, dword [esp + 0x24]
push 0x850af4
call fcn.007c1be0
mov ecx, edi
mov edx, dword [esp + 0x24]
push 0x850af4
call fcn.007c1be0
mov ecx, dword [esp + 0x50]
push 0x851140
call fcn.007c1be0
push 0x8509e0
call fcn.007c1be0
mov edx, dword [esp + 0xc]
push 0x851170
call fcn.007c1be0
mov edx, dword [esp + 0xc]
push 0x850f64
call fcn.007c1be0
mov edx, dword [esp + 0xc]
push 0x851160
call fcn.007c1be0
mov edx, dword [esp + 0xc]
push 0x851180
call fcn.007c1be0
push 0x851120
call fcn.007c1be0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
push 0x850f74
call fcn.007c1be0
mov ecx, dword [esp + 4]
push 0x851130
call fcn.007c1be0
mov ecx, edi
mov edx, dword [esp + 0xc]
push 0x850f74
call fcn.007c1be0
mov ecx, edi
push 0x851130
call fcn.007c1be0
lea edx, [esp + 0x68]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x80], 0x851c78
mov dword [esp + 0x84], 3
mov dword [esp + 0x90], 0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], fcn.00412930
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x58]
mov dword [esp + 0x38], fcn.00412930
mov dword [esp + 0x3c], edx
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x80]
mov edx, 0x851c90
mov dword [esp + 0x40], 0x4c5f70
mov dword [esp + 0x8c], 3
call fcn.007c1b50
mov ecx, 0x850b04
call fcn.007c1fe0
mov ecx, eax
push 0x850b68
call fcn.007c1c40
xor edx, edx
push 0x850af4
call fcn.007c1be0
mov ecx, edi
mov edx, eax
push 0x850b68
call fcn.007c1e60
mov edx, dword [esp + 0x24]
push 0x850b14
call fcn.007c21f0
xor edx, edx
push 0x850b14
call fcn.007c21f0
mov ecx, 0x851ce0
call fcn.007c1fe0
mov ecx, edi
mov edx, dword [esp + 0xc]
push 0x8511a0
call fcn.007c1c40
mov ecx, edx
mov edx, edi
push 0x851d00
call fcn.007c1b80
mov ecx, ebx
mov edx, eax
push 0x850b68
call fcn.007c1e60
push 0x851cd0
call fcn.007c1c40
mov ecx, esi
mov edx, eax
push 0x850b68
call fcn.007c1e60
mov ecx, edi
mov edx, dword [esp + 0xc]
push 0x851190
call fcn.007c1c40
mov ecx, ebx
mov edx, dword [esp + 0xc]
push 0x8511a0
call fcn.007c1c40
lea ecx, [esp + 0x2c]
mov edx, 0x850ad4
mov dword [esp + 0x2c], 0x850abc
mov dword [esp + 0x30], 1
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], 0x93d1f8
mov dword [esp + 0x38], 0
call fcn.007c1b50
mov ecx, edx
mov edx, ebx
push 0x851d00
call fcn.007c1b80
mov ecx, ebx
mov edx, dword [esp + 0xc]
push 0x851190
call fcn.007c1c40
ud2