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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov dword [esp + 0x20], edx
mov ebx, ecx
mov eax, dword [0xbcbae0]
xor eax, ebp
mov dword [esp + 0x78], eax
call fcn.00798140
mov esi, eax
lea eax, [ebx + 0x34]
push 0x30
push esi
push eax
call fcn.00981170
add esp, 0xc
test eax, eax
jne 0x797c14
mov dword [esp + 0xc], 0
jmp 0x797c1c
mov eax, dword [esi + 0x10]
inc eax
mov dword [esp + 0xc], eax
mov ecx, ebx
call fcn.00798150
mov edi, eax
test eax, eax
jne 0x7980d3
mov ecx, dword [ebx + 0x44]
mov eax, dword [ebp + 0x14]
mov dword [esp], ebx
test ecx, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
jne 0x797d37
lea ecx, [esp + 0x58]
mov edx, 0x377f0682
call fcn.007979e0
lea ecx, [esp + 0x5c]
mov edx, 0x2de218
call fcn.007979e0
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x60]
mov edx, esi
call fcn.007979e0
mov edx, dword [ebx + 0x70]
lea ecx, [esp + 0x64]
call fcn.007979e0
cmp dword [ebx + 0x70], 0
jne 0x797c91
lea eax, [ebx + 0x54]
push eax
push 8
call fcn.00777c70
add esp, 8
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x58]
lea edx, [esp + 0x58]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x6c], ecx
mov ecx, 1
push eax
push 0
push 0x18
call fcn.00798210
add esp, 0xc
mov edi, dword [esp + 0x50]
lea ecx, [esp + 0x70]
mov edx, edi
call fcn.007979e0
mov ebx, dword [esp + 0x54]
lea ecx, [esp + 0x74]
mov edx, ebx
call fcn.007979e0
mov eax, dword [esp]
lea edx, [esp + 0x58]
mov dword [eax + 0x24], esi
mov eax, dword [esp]
mov byte [eax + 0x41], 0
mov eax, dword [esp]
mov dword [eax + 0x4c], edi
mov eax, dword [esp]
mov dword [eax + 0x50], ebx
mov ebx, dword [esp]
mov byte [ebx + 0x2f], 1
mov ecx, dword [ebx + 8]
push 0
push 0
push 0x20
call fcn.0077cc70
add esp, 0xc
mov edi, eax
test eax, eax
jne 0x7980d3
cmp byte [ebx + 0x30], 0
je 0x797d37
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebx + 8]
shr edx, 2
and edx, 3
call fcn.00798270
mov edi, eax
test eax, eax
jne 0x7980d3
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x10], 0
lea edx, [esi + 0x18]
mov ecx, eax
mov edi, edx
mov dword [esp + 0x24], edx
mul edx
sar edi, 0x1f
imul ecx, edi
add eax, 0x20
mov dword [esp + 8], edi
mov edi, eax
mov eax, dword [ebx + 8]
mov ebx, dword [ebp + 8]
adc edx, ecx
mov ecx, dword [ebp + 0x14]
test ebx, ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], esi
jne 0x797da5
mov dword [esp + 0x28], 0
mov eax, edi
jmp 0x797ecd
mov eax, edi
mov dword [esp + 0x28], 0
cmp dword [esp + 0xc], 0
mov edi, edx
mov dword [esp + 4], eax
je 0x797e66
cmp dword [ebp + 0x10], 0
je 0x797dd8
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x797dd8
inc dword [esp + 0x14]
xor eax, eax
jmp 0x797e77
mov dword [esp + 0x34], 0
mov ecx, dword [esp]
lea eax, [esp + 0x34]
mov edx, dword [ebx + 0x18]
push eax
call fcn.00798290
add esp, 4
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 0xc]
jb 0x797e66
lea eax, [ecx - 1]
mov esi, eax
mul dword [esp + 0x24]
imul esi, dword [esp + 8]
add eax, 0x38
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
adc edx, esi
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0x68]
dec eax
cmp eax, ecx
jb 0x797e29
mov eax, dword [esp]
mov dword [eax + 0x68], ecx
mov ecx, ebx
call fcn.007983d0
mov esi, dword [esp + 0x20]
test eax, eax
jne 0x797e42
mov edi, 7
jmp 0x7980d3
mov ecx, dword [esp]
mov edx, eax
mov ecx, dword [ecx + 8]
push dword [esp + 0x18]
push dword [esp + 0x20]
push esi
call fcn.0077cc70
add esp, 0xc
test eax, eax
je 0x797eb8
mov edi, eax
jmp 0x7980d3
inc dword [esp + 0x14]
cmp dword [ebp + 0x10], 0
jne 0x797e74
xor eax, eax
jmp 0x797e82
mov eax, dword [ebx + 0x10]
test eax, eax
mov eax, 0
cmove eax, dword [ebp + 0xc]
lea ecx, [esp + 0x38]
mov edx, ebx
push edi
mov esi, dword [esp + 8]
push esi
push eax
call fcn.00798400
add esp, 0xc
test eax, eax
je 0x797ea2
mov edi, eax
jmp 0x7980d3
add esi, dword [esp + 0x24]
adc edi, dword [esp + 8]
or byte [ebx + 0x1c], 0x40
mov dword [esp + 0x28], ebx
mov eax, esi
mov edx, edi
jmp 0x797ec2
and byte [ebx + 0x1c], 0xbf
mov edx, edi
mov eax, dword [esp + 4]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x797daf
cmp dword [ebp + 0x10], 0
mov ebx, 0
je 0x79804f
mov esi, dword [esp]
cmp dword [esi + 0x68], 0
je 0x797f02
mov edi, edx
mov edx, dword [esp + 0x14]
mov ecx, esi
mov ebx, eax
call fcn.00798490
mov edx, edi
mov edi, eax
mov eax, ebx
test edi, edi
jne 0x7980d3
and dword [esp + 0x2c], 3
jne 0x797f1c
mov ebx, dword [esp + 8]
mov dword [esp + 0x10], 0
xor esi, esi
jmp 0x797ff4
cmp byte [esi + 0x31], 0
jne 0x797f2d
mov ebx, dword [esp + 8]
xor esi, esi
jmp 0x797fe3
mov ecx, dword [esi + 8]
mov edi, edx
mov ebx, eax
mov dword [esp + 4], eax
call fcn.00796d40
mov ecx, eax
mov esi, edi
sar ecx, 0x1f
add ebx, eax
adc esi, ecx
add ebx, 0xffffffff
adc esi, 0xffffffff
push ecx
push eax
push esi
push ebx
call fcn.00980590
sub ebx, eax
mov eax, edi
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], edi
sbb esi, edx
cmp dword [esp + 4], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x1c], ebx
mov ebx, 0
mov dword [esp + 0x44], esi
mov dword [esp + 0xc], esi
sbb eax, esi
jge 0x797fc9
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
xor ebx, ebx
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x38]
push esi
push edi
push dword [ebp + 0xc]
call fcn.00798400
add esp, 0xc
test eax, eax
je 0x797fb0
mov edi, eax
jmp 0x7980d3
mov eax, edi
add eax, dword [esp + 0x24]
adc esi, dword [esp + 8]
inc ebx
cmp eax, dword [esp + 0x1c]
mov edi, eax
mov eax, esi
sbb eax, dword [esp + 0xc]
jl 0x797f90
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov esi, ebx
mov ebx, dword [esp + 8]
xor edi, dword [esp + 4]
xor eax, dword [esp + 0x18]
or eax, edi
jne 0x797ff4
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
call fcn.00798270
mov dword [esp + 0x10], eax
mov eax, dword [esp]
cmp byte [eax + 0x2f], 0
jne 0x798001
mov ebx, esi
jmp 0x79804f
mov ecx, dword [eax + 0x14]
test ecx, ecx
jns 0x79800c
mov ebx, esi
jmp 0x79804f
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x14]
mov edi, esi
add eax, esi
mov dword [esp + 4], edx
imul ebx, eax
mul dword [esp + 0x24]
mov esi, edx
add eax, 0x20
adc esi, ebx
mov ebx, edi
mov edi, dword [esp + 4]
mov edx, esi
cmp eax, edi
sbb edx, ecx
cmovge edi, eax
cmovl esi, ecx
mov edx, edi
mov edi, dword [esp]
mov ecx, edi
push esi
call fcn.00798600
add esp, 4
mov byte [edi + 0x2f], 0
mov eax, dword [esp]
mov edi, dword [ebp + 8]
mov esi, dword [eax + 0x44]
test edi, edi
jne 0x798062
mov ecx, dword [esp + 0x10]
jmp 0x79806a
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x7980e8
test ecx, ecx
mov edi, ecx
mov ecx, ebx
sete al
test ebx, ebx
jle 0x79809a
test edi, edi
jne 0x79809a
mov eax, dword [esp + 0x28]
mov ecx, dword [esp]
inc esi
mov edx, esi
push dword [eax + 0x18]
call fcn.00798870
add esp, 4
test eax, eax
mov edi, eax
sete al
dec ebx
jg 0x798077
mov ebx, dword [esp]
test al, al
je 0x7980d3
mov ecx, dword [esp + 0x20]
xor edi, edi
mov eax, ecx
shr ecx, 0x10
and eax, 0xff00
or ecx, eax
cmp dword [ebp + 0x10], 0
mov word [ebx + 0x42], cx
mov dword [ebx + 0x44], esi
je 0x7980d3
mov eax, dword [ebp + 0xc]
inc dword [ebx + 0x3c]
mov ecx, ebx
mov dword [ebx + 0x48], eax
call fcn.00798950
mov dword [ebx + 0xc], esi
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.00980459
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test byte [edi + 0x1c], 0x40
mov dword [esp + 4], edi
jne 0x7980f6
xor eax, eax
jmp 0x798107
mov ecx, dword [esp]
inc esi
mov edx, esi
push dword [edi + 0x18]
call fcn.00798870
add esp, 4
mov ecx, eax
test eax, eax
jne 0x79806a
mov edi, dword [esp + 4]
mov edi, dword [edi + 0x10]
test edi, edi
je 0x79806a
jmp 0x7980e8