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

Disassembly:
sub esp, 0xa4
push ebx
push ebp
push esi
mov esi, dword [esp + 0xb4]
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x18], eax
push edi
mov dword [esp + 0x28], eax
xor edi, edi
mov edx, dword [esi]
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x20], edi
mov ebp, dword [edx + 0x1c]
mov dword [esp + 0x2c], eax
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x78], eax
movq qword [esp + 0x70], xmm0
movlpd qword [esp + 0x44], xmm0
movlpd qword [esp + 0x4c], xmm0
movlpd qword [esp + 0x54], xmm0
mov dword [esp + 0x5c], 0x10
mov eax, dword [edx + 0x28]
mov ebx, dword [edx + 0x1c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], ecx
test eax, eax
je 0x7902f1
push eax
push ebx
call fcn.007670d0
add esp, 8
test eax, eax
je 0x7902eb
mov eax, 0xffff8702
mov dword [esp + 0x24], eax
jmp 0x790333
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov eax, dword [edx + 0x104]
test eax, eax
je 0x79030f
nop dword [eax + eax]
mov eax, dword [eax + 0x108]
inc ecx
test eax, eax
jne 0x790300
mov dword [esp + 0x24], ecx
mov eax, dword [edx + 0x28]
test eax, eax
je 0x79032f
push eax
push ebx
call fcn.00767730
add esp, 8
test eax, eax
je 0x79032f
mov eax, 0xffff8702
mov dword [esp + 0x24], eax
jmp 0x790333
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x2c]
push ecx
push 0x1c
push eax
push ebp
call fcn.00767920
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x7908cc
mov edx, dword [esi + 0x13c]
test edx, 0x100
jne 0x790388
mov eax, dword [esi + 8]
test byte [eax + 0x9c], 1
jne 0x790388
cmp dword [eax + 0x70], edi
je 0x790388
mov ebx, 1
mov dword [esp + 0x38], 0x101b
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebx
jmp 0x790392
mov dword [esp + 0x38], 0x1b
xor ebx, ebx
mov eax, dword [esp + 0xc4]
cmp eax, 6
jne 0x790490
mov ecx, ebx
mov dword [esp + 0xb0], edi
and ecx, 1
xorps xmm0, xmm0
shl ecx, 0xc
or ecx, eax
movq qword [esp + 0xa8], xmm0
movups xmmword [esp + 0x98], xmm0
push ecx
test edx, 0x400
je 0x7903e5
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0xa0]
push eax
push esi
call fcn.00777f20
jmp 0x79040c
mov eax, dword [esi]
mov eax, dword [eax + 0x12c]
cmp dword [eax + 0x14], edi
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0xa0]
push eax
push esi
je 0x790407
call fcn.00769270
jmp 0x79040c
call fcn.0078edc0
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x79042c
cmp ebx, 0xffff86ec
mov eax, 0xffff86f4
cmove ebx, eax
mov dword [esp + 0x10], ebx
jmp 0x7908cc
mov ecx, dword [esp + 0x1c]
lea ebp, [esp + 0x98]
or ecx, 4
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc0]
test byte [ecx + 0x18], 0x40
je 0x79065a
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x50]
push eax
push ecx
push ebp
push esi
call fcn.007900e0
mov ebx, eax
add esp, 0x1c
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x7908c8
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jmp 0x790674
mov ebp, dword [esp + 0xbc]
cmp eax, 2
jne 0x7905e9
mov eax, dword [esi]
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], edi
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc0]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x7c], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
movq qword [esp + 0x8c], xmm0
mov dword [esp + 0x94], eax
test edx, 0x8000
je 0x7904e4
mov eax, esi
jmp 0x790500
push 0
lea eax, [esp + 0x14]
push eax
push esi
call fcn.0078eb90
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x79052c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 0x20]
sub ecx, 3
je 0x79056c
sub ecx, 1
je 0x79055e
push 0
push 0x943ed4
push dword [esp + 0x38]
call fcn.0075bca0
add esp, 0xc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x7905d2
push eax
push ecx
push esi
call fcn.0078d1d0
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x7905d6
test eax, eax
jne 0x7905d6
jmp 0x7908c8
lea ecx, [esp + 0x7c]
push ecx
push ebp
push eax
call fcn.007e05b0
jmp 0x790578
lea ecx, [esp + 0x7c]
push ecx
push ebp
push eax
call fcn.007d6d10
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x79052c
test byte [esp + 0x94], 1
je 0x7905a5
push dword [esp + 0x7c]
push dword [esp + 0x34]
call fcn.00767ac0
add esp, 8
and dword [esp + 0x94], 0xfffffffe
push ebp
push dword [esp + 0x34]
call fcn.007ce1a0
mov ecx, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x790530
or ebx, 2
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebx
jmp 0x790530
mov eax, dword [esp + 0x18]
mov ebx, eax
mov dword [esp + 0x10], ebx
test eax, eax
jne 0x7908c8
jmp 0x790442
cmp eax, 0x14
jne 0x790449
or dword [ebp + 0x18], 8
test dword [esi + 0x13c], 0x400
mov dword [esp + 0x50], edi
mov dword [esp + 0x5c], 0x440
push 0x1b
je 0x79061e
lea eax, [esp + 0x48]
push eax
push ebp
push esi
call fcn.00777f20
jmp 0x79063e
mov eax, dword [esi]
mov eax, dword [eax + 0x12c]
cmp dword [eax + 0x14], edi
lea eax, [esp + 0x48]
push eax
push ebp
push esi
je 0x790639
call fcn.00769270
jmp 0x79063e
call fcn.0078edc0
add esp, 0x10
cmp eax, 0xffff86f4
je 0x790442
mov ebx, 0xffff86ed
mov dword [esp + 0x10], ebx
jmp 0x7908c8
movups xmm0, xmmword [ecx]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x78], eax
movups xmmword [esp + 0x60], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0x20]
cmp eax, 3
jne 0x790691
test dword [ecx + 0x2e0], 0x800
jne 0x79069a
jmp 0x790776
cmp eax, 4
jne 0x790776
mov eax, dword [esi]
cmp dword [eax + 0x20], 4
mov edx, dword [eax + 0x1c]
jne 0x7906b7
mov eax, dword [eax + 0x138]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x34], ebx
jmp 0x7906c7
mov eax, dword [eax + 0x12c]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x18], ecx
mov eax, dword [ebx + 4]
mov dword [esp + 0x30], eax
cmp eax, ecx
jbe 0x7906f8
push ecx
push eax
push edx
call fcn.0075c050
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x7908c8
jmp 0x790776
jae 0x790776
test byte [ebx + 0x18], 0x40
lea eax, [esp + 0x60]
push eax
push ecx
push edx
je 0x790723
call fcn.007679f0
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x7908c8
mov ecx, dword [esp + 0x64]
jmp 0x790756
call fcn.00767980
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x7908c8
mov eax, dword [esp + 0xc0]
push dword [esp + 0x30]
push dword [eax]
push dword [esp + 0x68]
call fcn.0086cdf0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov eax, ebx
sub eax, ecx
push eax
mov eax, dword [esp + 0x64]
push dword [esp + 0x38]
add eax, ecx
push eax
call fcn.0086d370
add esp, 0xc
mov dword [esp + 0x64], ebx
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x4c]
push dword [esp + 0x2c]
push eax
lea eax, [esp + 0x70]
push eax
push ebp
push esi
call fcn.00790a00
mov ebx, eax
add esp, 0x1c
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x7908c8
test byte [esp + 0x1c], 4
jne 0x7908c8
push eax
lea eax, [esp + 0x40]
push eax
push esi
call fcn.0078eb90
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x7908c8
push dword [esp + 0x38]
or dword [ebp + 0x18], 8
lea eax, [esp + 0x48]
push eax
push ebp
push dword [esp + 0x48]
call fcn.0078eaa0
mov ebx, eax
mov dword [esp + 0x20], eax
add esp, 0x10
cmp ebx, 0xffff86ec
je 0x7907fd
cmp ebx, 0xffff86f4
jne 0x790808
or dword [esp + 0x1c], 2
xor ebx, ebx
mov dword [esp + 0x10], ebx
push dword [esp + 0x3c]
mov dword [esp + 0x3c], ebx
call fcn.0078d3c0
add esp, 4
test eax, eax
je 0x790833
mov ebp, dword [esp + 0x14]
test ebx, ebx
jne 0x7908cc
mov ebx, eax
mov dword [esp + 0x10], ebx
jmp 0x7908cc
mov eax, dword [esp + 0x38]
mov ebx, eax
mov dword [esp + 0x10], ebx
test eax, eax
jne 0x7908c8
test byte [esp + 0x1c], 2
mov dword [esp + 0x10], ebx
jne 0x7908c8
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x44]
call fcn.0078d010
mov edi, dword [esp + 0x34]
mov ebx, eax
mov eax, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x10], ebx
test eax, eax
je 0x7908c4
test ebx, ebx
jne 0x7908c4
test byte [eax + 0x11c], 1
jne 0x7908a3
lea ecx, [esp + 0x44]
push ecx
push ebp
push edi
push esi
push eax
call fcn.0078ded0
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x7908a3
cmp ebx, 0xffff86ed
jne 0x7908c4
push dword [esi + 0x10]
lea eax, [esp + 0x24]
push eax
call fcn.0078d070
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x20]
add edi, 0x1c
mov dword [esp + 0x10], ebx
test eax, eax
jne 0x790873
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
push ebx
push 0
push esi
call fcn.0078d1d0
add esp, 0xc
test eax, eax
je 0x7908e5
test ebx, ebx
cmove ebx, eax
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x60]
test eax, eax
je 0x790902
mov ecx, dword [esp + 0xc0]
cmp eax, dword [ecx]
je 0x790902
push eax
push ebp
call fcn.00767960
add esp, 8
mov eax, dword [esp + 0x44]
test eax, eax
je 0x790914
push eax
push ebp
call fcn.00767ac0
add esp, 8
test dword [esi + 0x13c], 0x20000
je 0x790934
push 0
push 4
lea eax, [esi + 0xc0]
push eax
push ebp
call fcn.0077f0d0
add esp, 0x10
test edi, edi
je 0x790951
push dword [esi + 0x10]
push edi
call fcn.0078cf70
add esp, 8
test eax, eax
je 0x790951
test ebx, ebx
cmove ebx, eax
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x24]
test esi, esi
jle 0x7909d2
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
add ebp, 0x18
test byte [ebp], 0x20
je 0x790995
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
test edi, edi
je 0x790991
test byte [esi + 0x18], 1
je 0x790989
push dword [esi]
push ebx
call fcn.00767ac0
add esp, 8
and dword [esi + 0x18], 0xfffffffe
add esi, 0x1c
sub edi, 1
jne 0x790974
mov esi, dword [esp + 0x24]
test byte [ebp], 1
je 0x7909ab
push dword [ebp - 0x18]
push ebx
call fcn.00767ac0
add esp, 8
and dword [ebp], 0xfffffffe
add ebp, 0x1c
mov eax, 0x92492493
mov ecx, ebp
sub ecx, dword [esp + 0x2c]
sub ecx, 0x18
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, esi
jl 0x790964
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x7909e7
push eax
push dword [esp + 0x18]
call fcn.00767960
add esp, 8
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xa4
ret