Function at 0x77bb2c
Capabilities:
Check for software breakpoints
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x58
mov eax, dword [0xcde0]
cmp dword [0x82f0], eax
jbe 0x77bb51
mov dword [0x8314], 0x49
jmp 0x77cccd
push dword [ebp + 8]
mov dword [0x8314], 0
call fcn.0079be7d
pop edx
test eax, eax
je 0x77cccd
push 0xedde0d90
push 0
push 0x2000
push 0
push 0x3de000
call fcn.0079aada
add esp, 0x14
mov esi, eax
test eax, eax
je 0x77ccb5
cmp eax, 0x1f
jbe 0x77ccb5
mov dword [ebp - 0x10], 0
jmp 0x77bc12
lea edi, [edx + 0x3de000]
test edi, 3
jne 0x77bc0c
mov ebx, esi
sub ebx, edx
cmp ebx, 0xb
jbe 0x77bc0c
cmp dword [edx + 0x3de000], 0x1badb002
jne 0x77bc0c
mov ecx, dword [edx + 0x3de004]
lea eax, [ecx + 0x1badb002]
add eax, dword [edx + 0x3de008]
test eax, eax
jne 0x77bc0c
test ecx, 0x10000
je 0x77bbe9
cmp ebx, 0x1f
jbe 0x77bc0c
and cl, 4
je 0x77bbf3
cmp ebx, 0x2f
jbe 0x77bc0c
mov edi, dword [edi + 4]
test di, 0xfff8
je 0x77bc1e
mov dword [0x8314], 0xa
jmp 0x77ccb5
lea eax, [edx + 1]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
cmp edx, esi
jb 0x77bba3
jmp 0x77ccd6
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x40], 0x3409c7
jmp 0x77bc5d
push 0x3409d1
push 0x3de008
call fcn.00794946
pop ebx
test eax, eax
pop edi
je 0x77bc4d
cmp dword [ebp + 0x10], 5
jne 0x77bda4
mov dword [ebp - 0x50], 0
xor edi, edi
mov dword [ebp - 0x40], 0
cmp esi, 0x34
jbe 0x77bdb4
cmp word [0x3de000], 0x457f
sete dl
xor eax, eax
cmp byte [0x3de002], 0x4c
sete al
and eax, edx
cmp byte [0x3de003], 0x46
sete dl
and eax, edx
cmp byte [0x3de004], 1
sete dl
and eax, edx
cmp byte [0x3de005], 1
sete dl
and eax, edx
cmp byte [0x3de006], 1
sete dl
and eax, edx
cmp word [0x3de010], 2
sete dl
and eax, edx
cmp word [0x3de012], 3
sete dl
and eax, edx
cmp dword [0x3de014], 1
sete dl
test edx, eax
je 0x77bdb4
cmp dword [ebp - 0x50], 1
mov eax, dword [0x3de018]
je 0x77bcec
and eax, 0xffffff
mov dword [0x359af4], eax
cmp dword [0x359af4], 0xfffff
jbe 0x77cc91
mov ecx, dword [0x3de01c]
test ecx, ecx
je 0x77ccb5
mov edx, dword [0x3de02c]
test dx, dx
je 0x77ccb5
movzx eax, word [0x3de02a]
movzx edx, dx
imul eax, edx
lea eax, [ecx + eax]
cmp eax, esi
jae 0x77ccb5
cmp dword [ebp - 0x50], 0
je 0x77bd64
xor ebx, ebx
mov edx, 0x3409d9
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
jmp 0x77c53b
cmp dword [ebp + 0x10], 5
je 0x77c50a
xor ebx, ebx
mov edx, 0x3409d9
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x50], 4
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0x3409d1
jmp 0x77c53b
mov dword [ebp - 0x50], 0
xor edi, edi
mov dword [ebp - 0x40], 0
test edi, 0x10000
je 0x77be7b
mov edx, dword [ebp - 0x10]
lea ebx, [edx + 0x3de000]
mov eax, dword [ebx + 0x1c]
mov dword [0x359af4], eax
mov ecx, dword [ebx + 0x10]
mov dword [0x3594a0], ecx
mov eax, dword [ebx + 0xc]
sub eax, ecx
sub edx, eax
mov eax, edx
xor edx, edx
mov dword [0x8328], eax
mov dword [0x832c], edx
cmp dword [ebx + 0x14], 0
jne 0x77be01
add ecx, dword [0x8320]
sub ecx, eax
mov dword [ebx + 0x14], ecx
mov eax, dword [ebx + 0x14]
mov edx, eax
sub edx, dword [0x3594a0]
mov dword [ebp - 0x4c], edx
cmp dword [ebx + 0x18], 0
jne 0x77be18
mov dword [ebx + 0x18], eax
mov esi, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x14]
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x44], eax
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
cmp edx, eax
jb 0x77ccb5
cmp ecx, eax
jbe 0x77ccb5
cmp esi, ecx
jb 0x77ccb5
sub edx, eax
cmp edx, dword [ebp - 0x10]
ja 0x77ccb5
cmp dword [0x3594a0], 0xfffff
jbe 0x77cc91
mov ebx, 2
mov edx, 0x3409dd
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x48], 0
jmp 0x77c53b
cmp esi, 0x20
je 0x77bfdc
mov ecx, dword [0x3de000]
movzx ebx, cx
lea eax, [ebx - 0x107]
cmp eax, 1
setbe dl
cmp ebx, 0x10b
sete al
or dl, al
jne 0x77bedd
cmp ebx, 0xcc
je 0x77bedd
shr ecx, 8
mov eax, ecx
shr ecx, 0x10
and eax, 0xff00
or eax, ecx
cmp eax, 0x107
je 0x77bedd
cmp eax, 0x108
je 0x77bedd
cmp eax, 0x10b
je 0x77bedd
cmp eax, 0xcc
jne 0x77bfdc
mov eax, dword [0x3de014]
mov dword [ebp - 0x58], 1
mov dword [0x359af4], eax
cmp dword [ebp - 0x50], 0
jne 0x77bf58
and eax, 0xffffff
mov dword [0x359af4], eax
cmp byte [0x3de000], 0xb
jne 0x77bf25
cmp byte [0x3de001], 1
jne 0x77bf25
mov dword [0x3594a0], eax
mov dword [ebp - 0x50], 4
mov dword [ebp - 0x40], 0x3409d1
jmp 0x77bf58
and eax, 0xf00000
mov dword [0x3594a0], eax
cmp word [0x3de000], 0x108
je 0x77bf43
mov dword [ebp - 0x58], 0
jmp 0x77bf4a
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x50], 5
mov dword [ebp - 0x40], 0x3409e4
mov edx, dword [0x3de000]
xor ebx, ebx
movzx eax, dx
mov ecx, 0x1000
cmp eax, 0x10b
je 0x77bf97
cmp eax, 0xcc
je 0x77bf93
shr edx, 8
xor ebx, ebx
mov eax, edx
mov ecx, 0x20
shr edx, 0x10
and eax, 0xff00
or eax, edx
cmp eax, 0x10b
jne 0x77bf97
xor ecx, ecx
xor ebx, ebx
mov edx, dword [0x3de004]
mov dword [0x8328], ecx
mov dword [ebp - 0x4c], edx
mov dword [0x832c], ebx
mov ecx, dword [0x3de008]
mov dword [ebp - 0x48], ecx
mov eax, dword [0x3de00c]
mov dword [ebp - 0x44], eax
cmp dword [0x3594a0], 0xfffff
jbe 0x77cc91
mov ebx, 1
mov edx, 0x3409eb
jmp 0x77c53b
cmp word [0x3de1fe], 0xaa55
jne 0x77ccb5
mov cl, byte [0x3de1f1]
cmp cl, 0x40
ja 0x77ccb5
movzx edx, cl
mov dword [ebp - 0x38], edx
cmp dword [0x3de202], 0x53726448
jne 0x77c0ae
mov bx, word [0x3de206]
cmp bx, 0x1ff
jbe 0x77c0ae
mov dl, byte [0x3de211]
mov eax, edx
and eax, 1
mov dword [ebp - 0x3c], eax
mov byte [0x3de210], 0x71
movzx eax, word [0x413]
shl eax, 0xa
sub eax, 0x9400
mov dword [0xcddc], eax
cmp eax, 0x90000
jbe 0x77c05c
mov dword [0xcddc], 0x90000
cmp bx, 0x200
jbe 0x77c075
or edx, 0xffffff80
mov word [0x3de224], 0x8e00
mov byte [0x3de211], dl
cmp word [0x3de206], 0x201
jbe 0x77c091
mov eax, dword [0xcddc]
add eax, 0x9000
mov dword [0x3de228], eax
jmp 0x77c0da
mov word [0x3de020], 0xa33f
mov word [0x3de022], 0x9000
mov word [0x3de212], 0x9400
jmp 0x77c0da
mov word [0x3de020], 0xa33f
mov word [0x3de022], 0x9000
mov dword [0xcddc], 0x90000
mov dword [ebp - 0x38], 4
mov dword [ebp - 0x3c], 0
jmp 0x77c0e5
test cl, cl
jne 0x77c0e5
mov dword [ebp - 0x38], 4
mov edx, dword [ebp - 0x38]
mov eax, dword [0x8320]
shl edx, 9
sub eax, edx
mov dword [ebp - 0x24], edx
sub eax, 0x200
mov dword [ebp - 0x28], eax
add eax, dword [0xcde0]
cmp dword [ebp - 0x3c], 0
mov dword [0xcdd8], eax
jne 0x77c138
mov eax, dword [0xcddc]
sub eax, 0x10000
cmp dword [ebp - 0x28], eax
jbe 0x77c138
push 0x3409f1
push 0
call fcn.00794ffc
mov dword [0x8314], 0x1c
jmp 0x77ccb3
movzx eax, word [0x413]
shl eax, 0xa
mov edx, dword [0xcddc]
add edx, 0x9400
cmp edx, eax
jbe 0x77c161
mov dword [0x8314], 0x1c
jmp 0x77ccb5
cmp dword [0x8330], 0
jle 0x77c190
mov eax, 0x340a25
cmp dword [ebp - 0x3c], 0
jne 0x77c17a
mov eax, 0x340a26
push dword [ebp - 0x28]
push dword [ebp - 0x24]
push eax
push 0x340a2d
push 0
call fcn.00794ffc
add esp, 0x14
push 0x340a53
push dword [ebp + 0xc]
call fcn.00794dc9
pop edx
test eax, eax
pop ecx
je 0x77c232
add eax, 4
push 0
mov dword [ebp - 0x14], eax
push eax
push 0x340a58
call fcn.0079691e
add esp, 0xc
test eax, eax
jg 0x77c1ca
mov dword [ebp - 0x1c], 0xffff
jmp 0x77c1e7
push 0
push dword [ebp - 0x14]
push 0x348073
call fcn.0079691e
add esp, 0xc
test eax, eax
jg 0x77c1f0
mov dword [ebp - 0x1c], 0xfffe
mov dword [ebp - 0x18], 0
jmp 0x77c229
push 0
push dword [ebp - 0x14]
push 0x340a5f
call fcn.0079691e
add esp, 0xc
test eax, eax
jg 0x77c20f
mov dword [ebp - 0x1c], 0xfffd
jmp 0x77c1e7
lea eax, [ebp - 0x1c]
push 0
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x77ccb5
mov eax, dword [ebp - 0x1c]
mov word [0x3de1fa], ax
push 0x346891
push dword [ebp + 0xc]
call fcn.00794dc9
pop esi
test eax, eax
pop edi
je 0x77c327
add eax, 4
push 0
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push 0x34c880
push eax
call fcn.0079499d
mov eax, dword [0x8314]
add esp, 0xc
test eax, eax
je 0x77c283
cmp eax, 0x23
jne 0x77c307
mov dword [0x34c880], 0x38000000
jmp 0x77c311
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax]
push eax
call fcn.00794c8c
pop ebx
cmp eax, 0x6b
je 0x77c2a3
cmp eax, 0x6d
je 0x77c2ae
xor edi, edi
cmp eax, 0x67
jne 0x77c2b6
jmp 0x77c2a7
xor eax, eax
jmp 0x77c2b3
mov eax, 0xa
jmp 0x77c2b0
xor eax, eax
add eax, 0xa
lea edi, [eax + 0xa]
mov eax, dword [0x34c880]
mov edx, dword [0x34c884]
mov dword [ebp - 0x64], eax
mov ecx, edi
or eax, 0xffffffff
mov dword [ebp - 0x60], edx
shr eax, cl
cmp edx, 0
ja 0x77c2d8
cmp dword [ebp - 0x64], eax
jbe 0x77c2e4
mov dword [0x34c880], 0x38000000
jmp 0x77c331
mov ecx, edi
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x77c2fa
mov edx, eax
xor eax, eax
mov dword [0x34c880], eax
mov dword [0x34c884], edx
jmp 0x77c33b
mov dword [0x34c880], 0
mov dword [0x34c884], 0
mov dword [0x8314], 0
jmp 0x77c33b
mov dword [0x34c880], 0
mov dword [0x34c884], 0
mov esi, dword [ebp - 0x24]
add esi, 0x200
cmp esi, 0x2000
ja 0x77c362
push esi
push 0x3de000
push dword [0xcdd8]
call fcn.00794e4f
add esp, 0xc
jmp 0x77c39e
push 0x2000
push 0x3de000
push dword [0xcdd8]
call fcn.00794e4f
mov eax, dword [ebp - 0x24]
sub eax, 0x1e00
xor edx, edx
push 0xedde0d90
push edx
push eax
mov eax, dword [0xcdd8]
add eax, 0x2000
xor edx, edx
push edx
push eax
call fcn.0079aada
add esp, 0x20
cmp dword [0x3de202], 0x53726448
jne 0x77c3b5
cmp word [0x3de206], 0x1ff
ja 0x77c3d9
mov eax, 0x3f
sub eax, dword [ebp - 0x38]
shl eax, 9
push eax
mov eax, dword [ebp - 0x38]
inc eax
push 0
shl eax, 9
add eax, dword [0xcdd8]
push eax
call fcn.00794efc
add esp, 0xc
push dword [ebp + 0xc]
push 0
call fcn.007969b8
mov ebx, dword [0xcdd8]
mov edx, eax
add ebx, 0x9000
pop eax
pop ecx
jmp 0x77c3f9
mov byte [ebx], al
inc edx
inc ebx
mov eax, dword [0xcdd8]
add eax, 0x93ff
cmp ebx, eax
jae 0x77c40d
mov al, byte [edx]
test al, al
jne 0x77c3f5
push 0x346891
push dword [ebp + 0xc]
call fcn.00794dc9
pop ecx
test eax, eax
pop edi
jne 0x77c478
test byte [ebp + 0x14], 1
jne 0x77c478
cmp word [0x3de206], 0x202
ja 0x77c478
mov eax, dword [0xcdd8]
lea edx, [ebx + 0xf]
add eax, 0x93ff
cmp edx, eax
jae 0x77c478
mov byte [ebx], 0x20
mov byte [ebx + 1], 0x6d
mov byte [ebx + 2], 0x65
mov byte [ebx + 3], 0x6d
mov byte [ebx + 4], 0x3d
lea eax, [ebx + 5]
mov edx, dword [0x359c44]
push 0
add edx, 0x400
push edx
push 0x75
push eax
call fcn.00794764
add esp, 0x10
mov byte [eax], 0x4b
lea ebx, [eax + 1]
mov byte [ebx], 0
xor edx, edx
mov eax, dword [0xcdd8]
push 0xedde0d90
add eax, 0x9400
push edx
mov dword [0x3594a0], eax
mov eax, dword [ebp - 0x28]
push eax
xor edx, edx
mov eax, dword [0xcde0]
push edx
push eax
mov dword [0x8328], esi
mov dword [0x832c], 0
call fcn.0079aada
add esp, 0x14
cmp dword [0x8314], 0
jne 0x77ccb5
cmp dword [ebp + 0x10], 0
je 0x77c4f0
cmp dword [ebp + 0x10], 3
setne al
test byte [ebp - 0x3c], al
jne 0x77ccb5
cmp dword [ebp - 0x3c], 0
sete dl
cmp dword [ebp + 0x10], 2
setne al
test al, dl
jne 0x77ccb5
cmp dword [ebp - 0x3c], 1
sbb ecx, ecx
mov edx, dword [ebp - 0x28]
add ecx, 3
mov dword [0xcdd4], edx
mov dword [ebp - 0x50], ecx
jmp 0x77cc8a
xor ebx, ebx
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x50], 5
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov edx, 0x3409d9
mov dword [ebp - 0x40], 0x3409e4
cmp dword [0x8314], 0
jne 0x77ccb5
mov eax, dword [ebp + 0xc]
mov dword [0xd58c], 0
mov dword [0xd588], eax
mov eax, dword [0x8318]
mov dword [0xd590], 0
cmp eax, dword [0x82cc]
jne 0x77c581
mov eax, dword [0x82a0]
shl eax, 0x18
or eax, dword [0x829c]
jmp 0x77c58a
shl eax, 0x18
or eax, dword [0x831c]
mov dword [0xd584], eax
mov dword [0xd594], 0
shr eax, 0x18
mov dword [0xd598], 0
and dword [0xd578], 0xffffffc7
mov dword [0xd59c], 0
mov dword [0xd5a0], 0
cmp eax, 0x23
jne 0x77c5d8
mov eax, dword [0x82b8]
shl eax, 0x10
or eax, 0xffffff
mov dword [0xd584], eax
cmp dword [0x8330], 0
jle 0x77c5f4
push edx
push dword [ebp - 0x40]
push 0x340a63
push 0
call fcn.00794ffc
add esp, 0x10
test ebx, ebx
je 0x77c8de
shr edi, 0x10
and edi, 1
je 0x77c60b
mov eax, 0x340a6d
jmp 0x77c610
mov eax, 0x347bf8
cmp dword [0x8330], 0
jle 0x77c632
push dword [ebp - 0x4c]
push eax
push dword [0x3594a0]
push 0x340a77
push 0
call fcn.00794ffc
add esp, 0x14
mov eax, dword [0x3594a0]
xor edx, edx
add eax, 0x2000000
mov ebx, dword [ebp - 0x4c]
xor esi, esi
push 0xedde0d90
mov dword [0x3594a0], eax
push esi
push ebx
push edx
push eax
call fcn.0079aada
add esp, 0x14
test edx, edx
jne 0x77ccb5
cmp eax, ebx
jne 0x77ccb5
mov eax, dword [ebp - 0x4c]
add eax, dword [0x3594a0]
test edi, edi
mov dword [0x3594a0], eax
jne 0x77c6fa
cmp dword [ebp - 0x58], 0
je 0x77c692
add eax, 0xfff
and eax, 0xfffff000
mov dword [0x3594a0], eax
jmp 0x77c6a9
cmp dword [0x8330], 0
jle 0x77c6c4
push 0x340a94
push 0
call fcn.00794ffc
pop eax
pop edx
cmp dword [0x8330], 0
jle 0x77c6c4
push dword [ebp - 0x48]
push 0x340a98
push 0
call fcn.00794ffc
add esp, 0xc
xor edx, edx
mov ebx, dword [ebp - 0x48]
xor esi, esi
mov eax, dword [0x3594a0]
push 0xedde0d90
push esi
push ebx
push edx
push eax
call fcn.0079aada
add esp, 0x14
test edx, edx
jne 0x77ccb5
cmp eax, ebx
jne 0x77ccb5
mov edx, dword [ebp - 0x48]
add dword [0x3594a0], edx
cmp dword [0x8314], 0
jne 0x77ccb5
push dword [ebp - 0x44]
push 0
push dword [0x3594a0]
call fcn.00794efc
mov ecx, dword [ebp - 0x44]
add dword [0x3594a0], ecx
add esp, 0xc
cmp dword [0x8330], 0
jle 0x77c73c
push ecx
push 0x340aa4
push 0
call fcn.00794ffc
add esp, 0xc
mov esi, dword [0x3de010]
test esi, esi
je 0x77cc3a
mov eax, dword [0x8320]
xor ebx, ebx
sub eax, dword [0x8328]
mov edx, dword [0x8324]
sbb edx, dword [0x832c]
cmp ebx, edx
jb 0x77c76f
cmp esi, eax
jae 0x77cc3a
mov eax, dword [0x3594a0]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x58], 0
je 0x77c78c
add eax, 0xfff
and eax, 0xfffff000
mov dword [0x3594a0], eax
mov edx, dword [0x3594a0]
lea eax, [edx - 0x2000000]
mov dword [0xd59c], eax
mov dword [edx], esi
add dword [0x3594a0], 4
cmp dword [0x8330], 0
jle 0x77c7c4
push dword [0x3de010]
push 0x340aaf
push 0
call fcn.00794ffc
add esp, 0xc
push 0xedde0d90
xor edx, edx
mov eax, dword [0x3de010]
push edx
xor edx, edx
push eax
mov eax, dword [0x3594a0]
push edx
push eax
call fcn.0079aada
add esp, 0x14
mov ecx, dword [0x3de010]
test edx, edx
jne 0x77c88f
cmp eax, ecx
jne 0x77c88f
xor edx, edx
lea eax, [ebp - 0x10]
push 0xedde0d90
add dword [0x3594a0], ecx
push 0
mov dword [0xd594], ecx
push 4
push edx
push eax
call fcn.0079aada
mov ecx, eax
add esp, 0x14
xor ecx, 4
or ecx, edx
jne 0x77c88f
mov edx, dword [0x3594a0]
mov eax, dword [ebp - 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
mov dword [0xd598], eax
sub eax, 4
add dword [0x3594a0], 4
mov dword [ebp - 0x10], eax
cmp dword [0x8330], 0
jle 0x77c85f
push eax
push 0x340abd
push 0
call fcn.00794ffc
add esp, 0xc
mov eax, dword [ebp - 0x10]
xor edx, edx
push 0xedde0d90
push edx
xor edx, edx
push eax
mov eax, dword [0x3594a0]
push edx
push eax
call fcn.0079aada
mov esi, eax
mov eax, dword [ebp - 0x10]
add dword [0x3594a0], eax
add esp, 0x14
test edx, edx
jne 0x77c88f
cmp esi, eax
je 0x77c8d2
cmp dword [0x8330], 0
jle 0x77c8a6
push 0x340acb
push 0
call fcn.00794ffc
pop esi
pop edi
mov edx, dword [ebp - 0x34]
mov dword [0xd594], 0
mov dword [0x3594a0], edx
mov dword [0xd598], 0
mov dword [0xd59c], 0
jmp 0x77cc3a
or dword [0xd578], 0x10
jmp 0x77cc3a
mov dword [0x3594a0], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x30], 0
jmp 0x77ca2d
movzx eax, word [0x3de02a]
imul eax, ecx
mov edx, dword [0x3de01c]
add edx, 0x3de000
add edx, eax
cmp dword [edx], 1
jne 0x77ca2a
mov ecx, dword [edx + 4]
mov dword [0x832c], 0
mov dword [0x8328], ecx
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x50]
sub eax, 4
cmp eax, 1
mov eax, dword [edx + 0xc]
ja 0x77c954
mov esi, eax
and esi, 0xffffff
jmp 0x77c956
mov esi, eax
mov ebx, dword [edx + 0x14]
cmp esi, 0xfffff
jbe 0x77cc91
cmp dword [ebp - 0x50], 1
jne 0x77c986
mov ecx, dword [0x359af4]
mov edx, dword [edx + 8]
cmp ecx, edx
jb 0x77c986
lea eax, [edx + ebx]
cmp ecx, eax
jae 0x77c986
add ecx, esi
sub ecx, edx
mov dword [ebp - 0x54], ecx
cmp dword [ebp - 0x2c], ebx
jbe 0x77c98e
mov dword [ebp - 0x2c], ebx
cmp dword [0x8330], 0
jle 0x77c9b0
mov eax, ebx
sub eax, dword [ebp - 0x2c]
push eax
push dword [ebp - 0x2c]
push esi
push 0x340ad1
push 0
call fcn.00794ffc
add esp, 0x14
xor edx, edx
inc dword [ebp - 0x30]
push edx
xor edx, edx
push ebx
push edx
push esi
call fcn.00794dfe
add esp, 0x10
test eax, eax
je 0x77cc9d
add esi, 0x2000000
mov eax, esi
mov dword [ebp - 0x20], esi
add eax, ebx
cmp dword [0x3594a0], eax
jae 0x77c9e5
mov dword [0x3594a0], eax
xor edx, edx
mov esi, dword [ebp - 0x2c]
xor edi, edi
mov eax, dword [ebp - 0x20]
push 0xedde0d90
push edi
push esi
push edx
push eax
call fcn.0079aada
add esp, 0x14
test edx, edx
jne 0x77cc9d
cmp eax, esi
jne 0x77cc9d
cmp ebx, dword [ebp - 0x2c]
jbe 0x77ca2a
mov eax, dword [ebp - 0x20]
sub ebx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x2c]
push ebx
push 0
push eax
call fcn.00794efc
add esp, 0xc
inc dword [ebp - 0x10]
movzx eax, word [0x3de02c]
mov ecx, dword [ebp - 0x10]
cmp ecx, eax
jb 0x77c902
cmp dword [0x8314], 0
jne 0x77cc9d
cmp dword [ebp - 0x30], 0
je 0x77cc9d
movzx ecx, word [0x3de030]
movzx edx, word [0x3de02e]
movzx eax, word [0x3de032]
mov dword [0xd594], ecx
mov dword [0xd598], edx
mov dword [0xd5a0], eax
cmp dword [ebp - 0x58], 0
je 0x77ca96
mov eax, dword [0x3594a0]
add eax, 0xfff
and eax, 0xfffff000
mov dword [0x3594a0], eax
mov edi, edx
mov edx, dword [0x3de020]
imul edi, ecx
mov esi, edi
mov dword [0x8328], edx
sar esi, 0x1f
xor edx, edx
mov eax, dword [0x3594a0]
push 0xedde0d90
mov dword [0x832c], 0
push esi
push edi
push edx
push eax
call fcn.0079aada
add esp, 0x14
cmp edx, esi
jne 0x77cbd1
cmp eax, edi
jne 0x77cbd1
mov eax, dword [0x3594a0]
lea ecx, [eax - 0x2000000]
add eax, edi
mov dword [ebp - 0x5c], ecx
mov dword [0xd59c], ecx
mov dword [0x3594a0], eax
cmp dword [0x8330], 0
jle 0x77cb12
push eax
push 0x340ae4
push 0
call fcn.00794ffc
add esp, 0xc
mov dword [ebp - 0x10], 0
jmp 0x77cbbe
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x5c]
add ecx, eax
cmp dword [ecx + 0xc], 0
jne 0x77cbbb
cmp dword [ecx + 0x14], 0
je 0x77cbbb
mov eax, dword [ecx + 0x20]
mov edx, dword [0x3594a0]
add edx, eax
neg eax
and edx, eax
mov dword [0x3594a0], edx
xor edx, edx
mov eax, dword [ecx + 0x10]
mov dword [0x832c], 0
mov dword [0x8328], eax
mov eax, dword [0x3594a0]
mov edi, dword [ecx + 0x14]
mov esi, edi
sar esi, 0x1f
push esi
push edi
push edx
push eax
call fcn.00794dfe
add esp, 0x10
test eax, eax
je 0x77cbd1
xor edx, edx
mov eax, dword [0x3594a0]
push 0xedde0d90
push esi
push edi
push edx
push eax
call fcn.0079aada
add esp, 0x14
cmp edx, esi
jne 0x77cbd1
cmp eax, edi
jne 0x77cbd1
imul edx, dword [ebp - 0x10], 0x28
mov eax, dword [0x3594a0]
mov ecx, dword [ebp - 0x5c]
sub eax, 0x2000000
mov dword [ecx + edx + 0xc], eax
add dword [0x3594a0], edi
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [0xd594]
jb 0x77cb1e
xor eax, eax
jmp 0x77cbd6
mov eax, 1
cmp dword [0xd59c], 0xffff
jbe 0x77cbe6
test eax, eax
je 0x77cc31
cmp dword [0x8330], 0
jle 0x77cbfd
push 0x340acb
push 0
call fcn.00794ffc
pop ecx
pop ebx
mov dword [0xd594], 0
mov dword [0xd598], 0
mov dword [0xd59c], 0
mov dword [0xd5a0], 0
mov dword [0x3594a0], 0
jmp 0x77cc41
or dword [0xd578], 0x20
jmp 0x77cc41
mov dword [ebp - 0x54], 0
cmp dword [0x8314], 0
jne 0x77cc9d
cmp dword [0x8330], 0
jle 0x77cc68
push dword [0x359af4]
push 0x340af1
push 0
call fcn.00794ffc
add esp, 0xc
cmp dword [ebp - 0x54], 0
je 0x77cc76
mov eax, dword [ebp - 0x54]
mov dword [0x359af4], eax
mov ecx, dword [ebp - 0x50]
cmp dword [ebp + 0x10], 0
setne dl
cmp dword [ebp + 0x10], ecx
setne al
test al, dl
jne 0x77ccb5
call fcn.0079ad08
jmp 0x77cce8
mov dword [0x8314], 7
jmp 0x77ccb5
cmp dword [0x8330], 0
jle 0x77ccb5
push 0xff
push 0xa
call dword [0x30d8e5]
pop eax
pop edx
call fcn.0079ad08
cmp dword [0x8314], 0
jne 0x77cccd
mov dword [0x8314], 0xd
mov dword [ebp - 0x50], 0
jmp 0x77cce8
cmp byte [0x3de007], 9
jne 0x77bc2e
jmp 0x77bc4d
mov eax, dword [ebp - 0x50]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret