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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
test edi, edi
je 0x407076
mov ebx, dword [edi + 4]
mov eax, dword [edi + 8]
mov dword [esp + 0x24], eax
jmp 0x407085
mov eax, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x735c]
xor edx, edx
test eax, eax
sete dl
lea ebp, [edx*4 + 1]
cmp ebp, esi
jbe 0x4070b9
mov edx, dword [esp + 0xc]
mov eax, 0xffffffb8
test esi, esi
jne 0x407727
sub edx, dword [esp + 0xc]
mov eax, edx
jmp 0x407727
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x18], edx
lea edx, [ecx + 0x72ac]
mov dword [esp + 0x1c], edx
lea edx, [ecx + 0x2828]
mov dword [esp + 0x54], edx
lea edx, [ecx + 0x10]
mov dword [esp + 0x50], edx
lea edx, [ecx + 0x682c]
mov dword [esp + 0x4c], edx
lea edx, [ecx + 0x1820]
mov dword [esp + 0x48], edx
lea edx, [ecx + 0x1018]
mov dword [esp + 0x44], edx
lea edx, [edi + 0xc]
mov dword [esp + 0x40], edx
lea edx, [edi + 0x181c]
mov dword [esp + 0x3c], edx
lea edx, [edi + 0x1014]
mov dword [esp + 0x38], edx
lea edx, [edi + 0x2824]
mov dword [esp + 0x34], edx
lea edx, [ecx + 0x72c0]
mov dword [esp + 0x58], edx
lea edx, [ecx + 0x7328]
mov dword [esp + 0x2c], edx
lea edx, [ecx + 0x7300]
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], edx
xor edx, edx
test eax, eax
sete al
mov edi, dword [ebx]
and edi, 0xfffffff0
cmp edi, 0x184d2a50
jne 0x407320
mov dl, al
lea ebp, [edx*4 + 1]
mov edi, dword [esp + 0x84]
mov ecx, 0xffffffb8
nop word cs:[eax + eax]
nop
cmp esi, 8
jb 0x4076df
mov eax, dword [ebx + 4]
cmp eax, 0xfffffff7
ja 0x4076e6
add eax, 8
cmp eax, esi
cmova eax, ecx
cmp eax, 0xffffff88
ja 0x407727
sub esi, eax
cmp esi, ebp
jb 0x4076ed
add ebx, eax
mov eax, dword [ebx]
and eax, 0xfffffff0
cmp eax, 0x184d2a50
je 0x407190
nop
test edi, edi
je 0x40732f
mov eax, dword [edi + 4]
add eax, dword [edi + 8]
xor edx, edx
mov ecx, dword [esp]
cmp dword [ecx + 0x72b8], eax
setne dl
mov dword [ecx + 0x7394], edx
mov edx, ecx
mov dword [ecx + 0x72bc], ebp
mov dword [ecx + 0x72f4], 0
mov dword [ecx + 0x72ec], 0
mov dword [ecx + 0x72e8], 0
mov eax, dword [esp + 0x1c]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [ecx + 0x2828], 0xc00000c
mov dword [ecx + 0x72fc], 0
mov dword [ecx + 0x72f8], 0
mov dword [ecx + 0x7390], 0
mov dword [ecx + 0x72f0], 3
mov eax, dword [0x420558]
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 8], eax
movsd xmm0, qword [0x420550]
movsd qword [ecx], xmm0
mov eax, dword [esp + 0x50]
mov dword [edx], eax
mov eax, dword [esp + 0x48]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x54]
mov dword [edx + 0xc], eax
mov eax, dword [edi + 0x6aa8]
mov dword [edx + 0x7390], eax
mov eax, dword [edi + 4]
mov dword [edx + 0x72b0], eax
mov eax, dword [edi + 4]
mov dword [edx + 0x72b4], eax
mov eax, dword [edi + 4]
add eax, dword [edi + 8]
mov dword [edx + 0x72b8], eax
mov dword [edx + 0x72ac], eax
cmp dword [edi + 0x6aac], 0
je 0x407357
mov dword [edx + 0x72f8], 1
mov dword [edx + 0x72fc], 1
mov ecx, dword [esp + 0x40]
mov dword [edx], ecx
mov ecx, dword [esp + 0x3c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx + 0xc], ecx
mov ecx, dword [edi + 0x6828]
mov dword [edx + 0x682c], ecx
mov ecx, dword [edi + 0x682c]
mov dword [edx + 0x6830], ecx
mov ecx, dword [edi + 0x6830]
mov dword [edx + 0x6834], ecx
jmp 0x40736b
mov edi, dword [esp + 0x84]
test edi, edi
jne 0x4071d8
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [esp + 8]
call fcn.0040aee0
add esp, 0xc
cmp eax, 0xffffff88
ja 0x407727
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov edx, dword [esp]
jmp 0x40736b
mov dword [edx + 0x72f8], 0
mov dword [edx + 0x72fc], 0
mov edi, dword [esp + 4]
cmp eax, edi
je 0x407395
mov dword [edx + 0x72b8], eax
mov ecx, dword [edx + 0x72b0]
sub ecx, eax
add ecx, edi
mov dword [edx + 0x72b4], ecx
mov dword [edx + 0x72b0], edi
mov dword [edx + 0x72ac], edi
mov eax, dword [edx + 0x735c]
xor ecx, ecx
test eax, eax
sete cl
lea ecx, [ecx*4 + 5]
cmp esi, ecx
jb 0x4076d8
xor ecx, ecx
mov dword [esp + 0x10], eax
test eax, eax
sete cl
movzx edx, byte [ebx + ecx*4]
mov ebp, ecx
mov eax, edx
and eax, 3
mov dword [esp + 0x14], eax
mov eax, edx
shr eax, 6
mov edi, edx
and edi, 0x20
shr dl, 5
test eax, eax
sete cl
and cl, dl
lea ebp, [ebp*4 + 1]
mov edx, dword [esp + 0x14]
add ebp, dword [edx*4 + 0x421ef4]
add ebp, dword [eax*4 + 0x421f04]
cmp edi, 1
movzx eax, cl
adc ebp, 0
add ebp, eax
cmp ebp, 0xffffff88
ja 0x407714
lea eax, [ebp + 3]
cmp esi, eax
jb 0x4076d8
push dword [esp + 0x10]
push ebp
push ebx
push dword [esp + 0x64]
call fcn.00406c80
add esp, 0x10
cmp eax, 0xffffff88
ja 0x40770b
test eax, eax
jne 0x4076d8
mov ecx, dword [esp]
mov eax, dword [ecx + 0x72dc]
test eax, eax
je 0x407453
cmp dword [ecx + 0x7390], eax
jne 0x40770f
cmp dword [ecx + 0x72e0], 0
je 0x4074c2
xor eax, eax
cmp dword [ecx + 0x7360], 0
sete al
mov dword [ecx + 0x7364], eax
mov edi, dword [esp + 4]
jne 0x4074d0
movaps xmm0, xmmword [0x422070]
movups xmmword [ecx + 0x7300], xmm0
movaps xmm0, xmmword [0x422080]
movups xmmword [ecx + 0x7310], xmm0
mov dword [ecx + 0x7324], 0x61c8864e
mov dword [ecx + 0x7320], 0x7a143579
xorps xmm0, xmm0
mov eax, dword [esp + 0x2c]
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
jmp 0x4074d0
mov dword [ecx + 0x7364], 0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esp + 8], eax
add ebx, ebp
sub esi, ebp
jmp 0x4074f5
add edi, ebp
mov eax, dword [esp + 0x10]
add eax, ebx
mov ebx, eax
test byte [esp + 0x14], 1
jne 0x407624
cmp esi, 3
jb 0x4076d8
movzx eax, word [ebx]
movzx ebp, byte [ebx + 2]
shl ebp, 0x10
or ebp, eax
shr ebp, 3
mov dword [esp + 0x14], eax
shr eax, 1
and eax, 3
mov edx, eax
cmp eax, 1
je 0x407528
cmp eax, 3
je 0x4076f6
mov edx, ebp
add esi, 0xfffffffd
sub esi, edx
jb 0x4076d8
add ebx, 3
cmp eax, 2
mov dword [esp + 0x10], ebx
je 0x407580
cmp eax, 1
je 0x4075b0
test eax, eax
jne 0x4076f6
mov eax, dword [esp + 8]
sub eax, edi
cmp edx, eax
ja 0x4076fd
test edi, edi
je 0x4075dd
push edx
push ebx
push edi
mov ebp, edx
call fcn.0040f900
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov ebx, ebp
jmp 0x407600
mov eax, dword [esp + 8]
sub eax, edi
push 1
mov ebp, ebx
mov ebx, edx
push edx
push ebp
push eax
push edi
push ecx
call fcn.00407c80
mov ecx, dword [esp + 0x18]
add esp, 0x18
mov ebp, eax
cmp eax, 0xffffff88
jbe 0x407600
jmp 0x407714
mov eax, dword [esp + 8]
sub eax, edi
cmp ebp, eax
ja 0x4076fd
test edi, edi
je 0x4075ea
mov eax, ebx
mov ebx, edx
movzx eax, byte [eax]
movzx eax, al
push ebp
push eax
push edi
call fcn.0040fe80
mov ecx, dword [esp + 0xc]
add esp, 0xc
jmp 0x407600
xor ebp, ebp
mov ebx, edx
test edx, edx
je 0x407600
jmp 0x407704
mov ebx, edx
test ebp, ebp
mov ebp, 0
jne 0x407704
nop dword [eax]
cmp dword [ecx + 0x7364], 0
je 0x4074e0
push ebp
push edi
push dword [esp + 0x30]
call fcn.00402090
mov ecx, dword [esp + 0xc]
add esp, 0xc
jmp 0x4074e0
mov eax, dword [ecx + 0x72c0]
mov ebp, dword [ecx + 0x72c4]
mov edx, eax
and edx, ebp
cmp edx, 0xffffffff
mov ecx, dword [esp]
je 0x407659
mov edx, edi
sub edx, dword [esp + 4]
xor eax, edx
sar edx, 0x1f
xor ebp, edx
mov ecx, dword [esp]
or ebp, eax
mov ebp, 0xffffffec
jne 0x407714
cmp dword [ecx + 0x72e0], 0
je 0x407697
mov ebp, 0xffffffea
cmp esi, 4
jb 0x407714
cmp dword [ecx + 0x7360], 0
jne 0x407691
push dword [esp + 0x28]
call fcn.00402370
mov ecx, dword [esp + 4]
add esp, 4
cmp dword [ebx], eax
jne 0x407714
add ebx, 4
add esi, 0xfffffffc
mov ebp, edi
mov edx, dword [esp + 4]
sub ebp, edx
cmp ebp, 0xffffff89
jae 0x407714
test ebp, ebp
cmovne edx, edi
sub dword [esp + 0x18], ebp
mov eax, dword [ecx + 0x735c]
mov edi, edx
xor edx, edx
test eax, eax
sete dl
lea ebp, [edx*4 + 1]
mov dl, 1
mov dword [esp + 0x20], edx
cmp esi, ebp
mov edx, edi
jae 0x407154
jmp 0x4070a1
mov ebp, 0xffffffb8
jmp 0x407714
mov eax, 0xffffffb8
jmp 0x407727
mov eax, 0xfffffff2
jmp 0x407727
mov edx, dword [esp + 4]
jmp 0x4070a1
mov ebp, 0xffffffec
jmp 0x407714
mov ebp, 0xffffffba
jmp 0x407714
mov ebp, 0xffffffb6
jmp 0x407714
mov ebp, eax
jmp 0x407714
mov ebp, 0xffffffe0
cmp ebp, 0xfffffff6
mov eax, 0xffffffb8
cmovne eax, ebp
test byte [esp + 0x20], 1
cmove eax, ebp
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret