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

Disassembly:
sub esp, 0x6c
lea eax, [esp]
push esi
push eax
push dword [esp + 0x80]
push dword [esp + 0x80]
call fcn.007922c0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x793d08
push ebx
mov ebx, dword [esp + 0x78]
push ebp
push edi
mov edx, dword [ebx + 0x2e0]
mov ecx, edx
mov ebp, edx
and ecx, 1
and ebp, 0x400
je 0x7938e9
lea eax, [esi + 0x26]
jmp 0x7938f2
mov eax, ecx
neg eax
sbb eax, eax
and eax, 6
mov edi, dword [esp + 0x90]
lea ebx, [edi*2 + 0x1a]
add eax, ebx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x8c]
movzx eax, word [eax + ebx]
movzx eax, byte [eax + ebx]
mov ebx, dword [esp + 0x80]
dec eax
cmp eax, 3
ja case.default.0x793926
jmp dword [eax*4 + 0x793d10]
mov ecx, dword [esp + 0x90]
test cl, 1
jne 0x793968
test byte [esp + 0x94], 0x40
jne 0x793968
mov eax, dword [esp + 0x10]
push ecx
push dword [eax + 4]
push 0x9443b4
push dword [ebx + 0x1c]
call fcn.0075bb00
mov edx, dword [ebx + 0x2e0]
add esp, 0x10
mov ecx, dword [esp + 0x90]
mov ebp, edx
and edx, 1
and ebp, 0x400
mov dword [esp + 0x18], ebp
test ecx, ecx
jne 0x793986
mov eax, dword [ebx]
mov edi, dword [esp + 0x8c]
jmp 0x7939ad
test ebp, ebp
je 0x793991
mov eax, 0x26
jmp 0x79399a
mov eax, edx
neg eax
sbb eax, eax
and eax, 6
mov edi, dword [esp + 0x8c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x18], ebp
movzx eax, word [eax + edi + 0x18]
cmp dword [esp + 0x18], 0
movzx ebp, ax
mov eax, dword [esp + 0x14]
je 0x7939cc
mov ecx, 0x26
add eax, edi
mov edx, ecx
sub bp, word [eax + ecx]
dec bp
jmp 0x7939e4
mov ecx, edx
neg ecx
sbb ecx, ecx
add eax, edi
and ecx, 6
sub bp, word [eax + ecx]
dec bp
neg edx
sbb edx, edx
and edx, 6
mov eax, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x18], ebp
movzx ebp, bp
xor edx, edx
movzx ecx, word [eax + edi]
xor eax, eax
inc ecx
add ecx, edi
mov dword [esp + 0x14], ecx
cmp ax, bp
jae 0x793a41
movzx eax, bp
mov dword [esp + 0x1c], eax
mov eax, ecx
nop
movzx ecx, dx
movzx edi, word [ecx + eax]
add ecx, edi
lea eax, [ecx + 4]
cmp eax, dword [esp + 0x1c]
ja 0x793b29
mov eax, dword [esp + 0x14]
cmp word [ecx + eax + 2], di
jne 0x793b01
add edx, 4
add edx, edi
cmp dx, bp
jb 0x793a10
mov ecx, eax
mov eax, dword [esp + 0x10]
or dword [eax + 0x3c], 4
mov eax, dword [esp + 0x94]
test al, 2
jne case.0x793926.1
mov eax, dword [ebx + 0x10]
mov edx, fcn.007cd1f0
test eax, eax
mov dword [esp + 0x78], 0
xorps xmm0, xmm0
mov dword [esp + 0x5c], 0
cmove eax, edx
movq qword [esp + 0x70], xmm0
mov dword [esp + 0x1c], eax
xor edi, edi
xor eax, eax
movlpd qword [esp + 0x4c], xmm0
movlpd qword [esp + 0x54], xmm0
movups xmmword [esp + 0x60], xmm0
cmp ax, bp
jae case.0x793926.1
mov edx, dword [esp + 0x60]
movzx eax, di
movzx ebp, word [eax + ecx]
add ecx, 2
add eax, ecx
mov ecx, ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
test edx, edx
je 0x793adc
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x64]
push eax
push ebx
call dword [esp + 0x28]
add esp, 0xc
test eax, eax
jg 0x793b51
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
add edi, 4
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x18]
mov edx, eax
add edi, ebp
movzx eax, cx
mov dword [esp + 0x60], edx
cmp di, ax
jae case.0x793926.1
mov ecx, dword [esp + 0x14]
jmp 0x793aa4
mov eax, dword [esp + 0x94]
test al, 0x40
jne 0x793cdf
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x90]
push edi
push dword [eax + 4]
push 0x944410
jmp 0x793cd4
mov eax, dword [esp + 0x94]
test al, 0x40
jne 0x793cdf
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x90]
push edi
push dword [eax + 4]
push 0x9443e4
jmp 0x793cd4
mov eax, dword [esp + 0x10]
or dword [eax + 0x3c], 1
jmp case.0x793926.1
test ebp, ebp
je 0x793b69
mov ecx, 0x26
jmp 0x793b70
neg ecx
sbb ecx, ecx
and ecx, 6
mov esi, dword [esp + 0x84]
lea eax, [edi*2 + 0x1a]
add eax, ecx
mov ecx, dword [esp + 0x8c]
movzx eax, word [eax + ecx]
movq xmm0, qword [eax + ecx]
mov edx, dword [eax + ecx + 8]
movq qword [esp + 0x1c], xmm0
mov eax, dword [esp + 0x20]
cmp eax, dword [esi + 0x20]
ja 0x793bf1
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 4]
je 0x793bf1
test eax, eax
je 0x793bf1
mov dword [esp + 0x28], eax
xorps xmm0, xmm0
lea eax, [esp + 0x28]
mov dword [esp + 0x30], 0
push eax
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], 2
mov dword [esp + 0x38], edx
push dword [ecx + 4]
push esi
call fcn.00791c80
add esp, 0xc
mov esi, eax
jmp case.0x793926.1
test byte [esp + 0x94], 0x40
jne 0x793cdf
push eax
mov eax, dword [esp + 0x14]
push edi
push dword [eax + 4]
push 0x943660
push dword [ebx + 0x1c]
call fcn.0075bb00
add esp, 0x14
jmp 0x793cdf
test ebp, ebp
je 0x793c28
mov ecx, 0x26
jmp 0x793c2f
neg ecx
sbb ecx, ecx
and ecx, 6
mov edx, dword [esp + 0x8c]
lea eax, [edi*2 + 0x1a]
add eax, ecx
movzx eax, word [eax + edx]
mov eax, dword [eax + edx + 4]
mov edx, dword [esp + 0x84]
cmp eax, dword [edx + 0x20]
ja 0x793ca4
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 4]
je 0x793ca4
test eax, eax
je 0x793ca4
mov dword [esp + 0x28], eax
xorps xmm0, xmm0
lea eax, [esp + 0x28]
movlpd qword [esp + 0x30], xmm0
push eax
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], 1
push dword [ecx + 4]
push edx
call fcn.00791c80
mov esi, eax
add esp, 0xc
test esi, esi
jne case.0x793926.1
mov eax, dword [esp + 0x10]
or dword [eax + 0x3c], 4
jmp case.0x793926.1
test byte [esp + 0x94], 0x40
jne 0x793cdf
mov eax, dword [esp + 0x10]
push edi
push dword [eax + 4]
push 0x944448
jmp 0x793cd4
test byte [esp + 0x94], 0x40
jne 0x793cdf
mov eax, dword [esp + 0x10]
push edi
push dword [eax + 4]
push 0x944478
push dword [ebx + 0x1c]
call fcn.0075bb00
add esp, 0x10
mov esi, 0xffff8704
push dword [esp + 0x10]
push dword [esp + 0x88]
push dword [ebx + 0x1c]
call fcn.007926a0
add esp, 0xc
pop edi
pop ebp
pop ebx
test eax, eax
je 0x793d06
test esi, esi
cmove esi, eax
mov eax, esi
pop esi
add esp, 0x6c
ret