Function at 0x78497b
Capabilities:
Check http status code
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1d8
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x34], 0xffffffff
mov dword [0x30da4d], 0xffffffff
mov dword [0x34cae0], 0
mov dword [0x34cae4], 0
mov dword [0x34cae8], 0
mov dword [0x34caec], 0
mov dword [0x8314], 0
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0xffffffff
mov dword [ebp - 0x148], 0
push 8
push 0x3464a4
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x784e47
push dword [ebp + 8]
push 1
call fcn.007969b8
mov dword [ebp + 8], eax
pop esi
mov al, byte [eax]
pop edi
sub eax, 0x30
cmp al, 9
ja 0x784b21
push 1
call fcn.0077a479
pop ebx
test eax, eax
jne 0x785369
lea eax, [ebp - 0x18]
push 0
push eax
lea eax, [ebp + 8]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov edi, 0x8f00
xor ebx, ebx
mov esi, edi
mov dword [ebp - 0xf4], 0
jmp 0x784aff
mov al, byte [ebp - 0x18]
cmp byte [edi], al
je 0x7888d6
inc dword [ebp - 0xf4]
add ebx, 0x18
add esi, 0x18
add edi, 0x18
cmp dword [ebp - 0xf4], 8
je 0x785369
sub esp, 0x18
mov eax, esp
push 0x18
push esi
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x18
test eax, eax
je 0x784ad8
jmp 0x785369
call fcn.00784926
movzx eax, byte [0x8ee2]
push eax
push 0x346576
push 0
call fcn.00794ffc
mov edx, dword [0x82d4]
add esp, 0xc
mov eax, dword [0x82d0]
cmp edx, 0xffffffff
jne 0x784b52
cmp eax, 0xffffffff
je 0x784b75
push dword [0x82dc]
push dword [0x82d8]
push edx
push eax
push dword [0x82cc]
push 0x346594
push 0
call fcn.00794ffc
add esp, 0x1c
push 1
call fcn.0077a479
pop ecx
test eax, eax
je 0x784ba6
sub esp, 0x18
mov eax, esp
push 0x18
push 0x8e08
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x18
test eax, eax
jne 0x7888fc
push 0x346604
push 0
call fcn.00794ffc
push 1
call fcn.0077a479
add esp, 0xc
test eax, eax
jne 0x784d04
mov esi, 0x8f10
mov dword [ebp - 0x1cc], 0x8f00
mov dword [ebp - 0x1d0], 0x8f00
sub esp, 0x18
mov eax, esp
push 0x18
push dword [ebp - 0x1d0]
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x18
test eax, eax
jne 0x784d04
xor edi, edi
mov ebx, 0x8e08
sub esp, 0x18
mov eax, esp
push 0x18
push dword [ebp - 0x1cc]
push eax
call fcn.00794e4f
sub esp, 0xc
mov eax, esp
push 0x18
push ebx
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d3b1
add esp, 0x30
test eax, eax
jne 0x784c43
inc edi
add ebx, 0x18
cmp edi, 8
jne 0x784c0a
mov al, byte [esi - 0xd]
mov byte [ebp - 0xed], al
test al, al
mov al, byte [esi - 9]
jns 0x784c63
and eax, 0x40
cmp eax, 1
sbb edx, edx
and edx, 0xc
add edx, 0x46
jmp 0x784c71
and eax, 0x40
cmp eax, 1
sbb edx, edx
and edx, 2
add edx, 0x53
xor ebx, ebx
cmp edi, 7
mov di, word [esi - 0xc]
mov eax, 0x43
setg bl
add ebx, 0x3d
test di, 0x4000
jne 0x784ca1
mov cl, byte [esi - 0xf]
mov al, 0x46
test cl, cl
jns 0x784ca1
xor eax, eax
cmp cl, 0xff
sete al
lea eax, [eax + eax*4 + 0x48]
push edx
push ebx
push eax
push dword [esi + 4]
push dword [esi]
push dword [esi - 4]
push dword [esi - 8]
movzx eax, byte [esi - 9]
push eax
movzx eax, byte [esi - 0xa]
push eax
movzx eax, di
push eax
movzx eax, byte [ebp - 0xed]
push eax
movzx eax, byte [esi - 0xe]
push eax
movzx eax, byte [esi - 0xf]
push eax
movzx eax, byte [esi - 0x10]
push eax
push 0x346680
push 0
call fcn.00794ffc
add dword [ebp - 0x1cc], 0x18
add dword [ebp - 0x1d0], 0x18
add esi, 0x18
add esp, 0x40
cmp dword [ebp - 0x1cc], 0x8fc0
jne 0x784bdd
mov ebx, 0x8e18
mov dword [ebp - 0x1c4], 0x8e08
mov dword [ebp - 0x1c8], 0x8e08
sub esp, 0x18
mov eax, esp
push 0x18
push dword [ebp - 0x1c8]
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x18
test eax, eax
jne 0x788943
push 1
call fcn.0077a479
pop edx
test eax, eax
jne 0x784d93
mov esi, 0x8f00
sub esp, 0x18
mov eax, esp
push 0x18
push dword [ebp - 0x1c4]
push eax
call fcn.00794e4f
sub esp, 0xc
mov eax, esp
push 0x18
push esi
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d3b1
add esp, 0x30
test eax, eax
jne 0x784e21
add esi, 0x18
cmp esi, 0x8fc0
jne 0x784d54
mov edi, dword [ebx - 0xd]
mov al, byte [ebx - 9]
mov edx, edi
test dl, dl
jns 0x784daf
and eax, 0x40
cmp eax, 1
sbb edx, edx
and edx, 0xc
add edx, 0x46
jmp 0x784dbd
and eax, 0x40
cmp eax, 1
sbb edx, edx
and edx, 2
add edx, 0x53
mov si, word [ebx - 0xc]
mov eax, 0x43
test si, 0x4000
jne 0x784de2
mov cl, byte [ebx - 0xf]
mov al, 0x46
test cl, cl
jns 0x784de2
xor eax, eax
cmp cl, 0xff
sete al
lea eax, [eax + eax*4 + 0x48]
push edx
push eax
push dword [ebx + 4]
push dword [ebx]
push dword [ebx - 4]
push dword [ebx - 8]
movzx eax, byte [ebx - 9]
push eax
mov ecx, edi
movzx eax, byte [ebx - 0xa]
push eax
movzx eax, si
push eax
movzx eax, cl
push eax
movzx eax, byte [ebx - 0xe]
push eax
movzx eax, byte [ebx - 0xf]
push eax
movzx eax, byte [ebx - 0x10]
push eax
push 0x3466b9
push 0
call fcn.00794ffc
add esp, 0x3c
add dword [ebp - 0x1c8], 0x18
add dword [ebp - 0x1c4], 0x18
add ebx, 0x18
cmp dword [ebp - 0x1c8], 0x8ec8
je 0x788943
jmp 0x784d1d
push 6
push 0x3466f1
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x784fbe
mov edx, dword [ebp + 8]
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x3c], 0xffffffff
lea eax, [edx + 6]
mov dword [ebp - 0x10], eax
cmp byte [edx + 6], 0x3d
jne 0x784ebf
lea eax, [edx + 7]
push 0
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, 0
ja 0x784eb0
cmp eax, 0xff
jbe 0x784ebf
mov dword [0x8314], 0x1e
jmp 0x785369
push 0
call fcn.0077a479
sub esp, 0x18
mov eax, esp
push 0x18
push 0x8e08
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x1c
test eax, eax
je 0x784ef4
cmp byte [0x8ee2], 0
je 0x788911
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, 0
ja 0x78530b
cmp eax, 0xff
ja 0x78530b
xor esi, esi
mov dword [ebp - 0x10c], 0x8e08
xor edi, edi
sub esp, 0x18
lea ebx, [edi + 0x8e08]
mov eax, esp
mov dword [ebp - 0x1b0], ebx
push 0x18
push ebx
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x18
test eax, eax
jne 0x78530b
mov ecx, dword [ebp - 0x10c]
xor edx, edx
mov ebx, dword [ebp - 0x3c]
movzx eax, byte [ecx]
cmp edx, ebx
mov ecx, dword [ebp - 0x40]
jne 0x784fa5
cmp eax, ecx
jne 0x784fa5
test esi, esi
je 0x78530b
push 0x18
push dword [ebp - 0x1b0]
push 0x8f00
call fcn.00794e4f
push edi
push 0x8e08
push 0x8e20
call fcn.00794e4f
push 0x18
push 0x8f00
push 0x8e08
call fcn.00794e4f
add esp, 0x24
jmp 0x78530b
inc esi
add edi, 0x18
add dword [ebp - 0x10c], 0x18
cmp esi, 7
jne 0x784f1c
jmp 0x78530b
push 8
push 0x3466f8
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
je 0x788920
push 8
push 0x346701
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785056
mov eax, dword [ebp + 8]
mov esi, 0xff
add eax, 8
mov dword [ebp - 0x10], eax
jmp 0x785003
cmp esi, 0x22
je 0x78503a
mov ecx, esi
mov edx, esi
sar ecx, 0x1f
mov eax, dword [ebp - 0x10]
call fcn.00781f4d
test eax, eax
je 0x78503a
cmp esi, 0x23
je 0x78503a
lea ebx, [ebp - 0xc0]
push esi
push esi
push 0x34670a
push ebx
call fcn.00794ffc
push dword [ebp + 0xc]
push ebx
call fcn.0078497b
add esp, 0x18
dec esi
jns 0x784ffe
mov dword [0x8348], 0xffffffff
mov dword [0x8340], 0xffffffff
jmp 0x788943
push 8
push 0x346718
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x78531a
push 0
call fcn.0077a479
sub esp, 0x18
mov eax, esp
push 0x18
push 0x8e08
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x1c
test eax, eax
je 0x7850a5
cmp byte [0x8ee2], 0
je 0x788943
push 0xc0
push 0
push 0x8f00
call fcn.00794efc
mov dword [ebp - 0xfc], 0x8f00
add esp, 0xc
xor edi, edi
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x144], 8
mov esi, 0x8e08
cmp byte [esi + 1], 0xff
jne 0x7850fe
test byte [esi + 5], 0x40
jne 0x7850fe
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
cmp ebx, edx
ja 0x7850fe
jb 0x7850f4
cmp ecx, eax
jae 0x7850fe
mov ecx, eax
mov ebx, edx
mov dword [ebp - 0x144], edi
inc edi
add esi, 0x18
cmp edi, 7
jne 0x7850d8
cmp dword [ebp - 0x144], 7
ja 0x785161
imul ebx, dword [ebp - 0x144], 0x18
push 0x18
lea esi, [ebx + 0x8e08]
add ebx, 0x8e20
push esi
push dword [ebp - 0xfc]
call fcn.00794e4f
mov eax, 8
sub eax, dword [ebp - 0x144]
imul eax, eax, 0x18
push eax
push ebx
push esi
call fcn.00794e4f
add dword [ebp - 0xfc], 0x18
add esp, 0x18
cmp dword [ebp - 0xfc], 0x8fa8
jne 0x7850c3
mov ebx, 0x8f01
cmp byte [ebx], 0xff
jne 0x7852fc
lea esi, [ebx + 3]
mov dword [ebp - 0x100], esi
test byte [ebx + 4], 0x40
jne 0x7852fc
mov eax, dword [0x82a4]
lea edx, [ebx + 2]
lea ecx, [ebx + 1]
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x104], ecx
movzx eax, byte [ebx - 1]
push eax
lea esi, [ebp - 0xc0]
push dword [ebx + 0x13]
push dword [ebx + 0xf]
push dword [ebx + 0xb]
push dword [ebx + 7]
movzx eax, byte [ebx + 2]
and eax, 0x3f
mov edi, dword [0x82bc]
push eax
movzx eax, byte [ebx + 1]
inc eax
push eax
push 0x346721
push esi
call fcn.00794ffc
add esp, 0x24
cmp dword [0x8330], 1
jle 0x7851f6
push esi
movzx eax, byte [ebx - 1]
push eax
push 0x346766
push 0
call fcn.00794ffc
add esp, 0x10
mov dword [0x8314], 0
mov dword [0x34c8a4], 1
cmp byte [ebx - 1], 0x22
jne 0x785224
mov dword [0x82a4], 1
mov dword [0x82bc], 0
push dword [ebp + 0xc]
push esi
call fcn.0078497b
mov dl, byte [ebx - 1]
pop ecx
cmp dl, 0x22
pop eax
jne 0x785248
mov eax, dword [ebp - 0x140]
mov dword [0x82bc], edi
mov dword [0x82a4], eax
mov eax, dword [0x8314]
mov dword [0x34c8a4], 0
test eax, eax
je 0x7852c0
cmp dword [0x8330], 0
jle 0x785369
push esi
push eax
push 0x340b64
push 0
call fcn.00794ffc
xor eax, eax
jmp 0x7888f7
imul edx, edx, 0x18
mov ecx, dword [ebp - 0x104]
mov esi, dword [ebp - 0x108]
mov al, byte [ecx]
mov ecx, dword [ebp - 0x100]
mov byte [edx + 0x8e0a], al
mov al, byte [esi]
mov byte [edx + 0x8e0b], al
mov ax, word [ecx]
mov word [edx + 0x8e0c], ax
mov al, byte [ebx + 5]
mov byte [edx + 0x8e0e], al
mov al, byte [ebx + 6]
mov byte [edx + 0x8e0f], al
jmp 0x7852fc
cmp dl, 0x22
jne 0x7852d9
mov eax, dword [0x359b20]
mov edx, dword [0x359af0]
shl eax, 9
mov dword [edx + 0x218], eax
mov cl, byte [ebx - 1]
xor edx, edx
mov eax, 0x8e08
cmp byte [eax], cl
jne 0x7852f3
cmp byte [eax + 1], 0xff
jne 0x7852f3
test byte [eax + 5], 0x40
je 0x78527d
inc edx
add eax, 0x18
cmp edx, 7
jne 0x7852e3
add ebx, 0x18
cmp ebx, 0x8fa9
jne 0x785166
push 0x8e08
call fcn.0077a3e0
jmp 0x788927
push 0xb
push 0x34678b
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7853a8
mov eax, dword [ebp + 8]
push 0
add eax, 0xb
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, 0
ja 0x78535f
cmp edx, 2
jbe 0x785370
mov dword [0x8314], 0x30
xor eax, eax
jmp 0x788948
mov bl, byte [0x410]
mov esi, ecx
and ebx, 0x3e
or esi, edx
mov byte [0x410], bl
je 0x788943
mov eax, edx
xor eax, 1
or eax, ecx
cmp eax, 1
sbb eax, eax
and eax, 0xffffffc0
add eax, 0x41
or ebx, eax
mov byte [0x410], bl
jmp 0x788943
push 0xd
push 0x346797
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785406
mov eax, dword [ebp + 8]
push 0
add eax, 0xd
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, 0
ja 0x7853ed
cmp eax, 0x7f
jbe 0x7853fc
mov dword [0x8314], 0x31
jmp 0x785369
mov byte [0x475], al
jmp 0x788943
push 0xc
push 0x3467a5
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x78546a
mov eax, dword [ebp + 8]
push 0
add eax, 0xc
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp edx, 0
ja 0x785451
cmp eax, 0xfe
jbe 0x785460
mov dword [0x8314], 0x38
jmp 0x785369
mov dword [0x82cc], eax
jmp 0x788943
push 0xa
push 0x3467b2
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7854b9
mov eax, dword [ebp + 8]
push 9
add eax, 0xa
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [0x82d0], eax
mov dword [0x82d4], edx
jmp 0x788943
push 0xa
push 0x3467bd
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785508
mov eax, dword [ebp + 8]
push 9
add eax, 0xa
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [0x82d8], eax
mov dword [0x82dc], edx
jmp 0x788943
push 0xd
push 0x3467c8
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x78554e
mov eax, dword [ebp + 8]
push 0
add eax, 0xd
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov dword [0xa664], eax
jmp 0x788943
push 0xd
push 0x3467d6
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785594
mov eax, dword [ebp + 8]
push 0
add eax, 0xd
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov dword [0xa668], eax
jmp 0x788943
push 0xe
push 0x3467e4
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7855da
mov eax, dword [ebp + 8]
push 0
add eax, 0xe
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov dword [0xa66c], eax
jmp 0x788943
push 0xe
push 0x3467f3
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785620
mov eax, dword [ebp + 8]
push 0
add eax, 0xe
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov dword [0xa670], eax
jmp 0x788943
push 0x10
push 0x346802
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785666
mov eax, dword [ebp + 8]
push 0
add eax, 0x10
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov dword [0x8ff7], eax
jmp 0x788943
push 0xf
push 0x346813
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7856ac
mov eax, dword [ebp + 8]
push 0
add eax, 0xf
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov dword [0x8ffb], eax
jmp 0x788943
push 0xa
push 0x346823
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x78577d
mov eax, dword [ebp + 8]
push 9
add eax, 0xa
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
shld edx, eax, 9
shl eax, 9
mov ebx, edx
mov ecx, eax
mov dword [0x34bdbc], edx
and ecx, 0xfffff000
mov dword [0x34bdb8], ecx
cmp dword [0x82bc], 0
je 0x785731
mov eax, edx
or eax, ecx
jne 0x785750
mov dword [0x34bdb8], 0xfffff000
mov dword [0x34bdbc], 0xffffffff
jmp 0x785750
add ecx, 0xffffffff
adc ebx, 0xffffffff
cmp ebx, 0
jbe 0x785750
mov dword [0x34bdb8], 0
mov dword [0x34bdbc], 1
cmp dword [0x8330], 0
jle 0x788943
mov edx, dword [0x34bdbc]
mov eax, dword [0x34bdb8]
push edx
push eax
shrd eax, edx, 9
shr edx, 9
push edx
push eax
push 0x34682e
jmp 0x78582c
push 0xa
push 0x346859
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785840
mov eax, dword [ebp + 8]
push 9
add eax, 0xa
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
shld edx, eax, 9
shl eax, 9
add eax, 0xfff
adc edx, 0
mov ecx, eax
and ecx, 0xfffff000
mov dword [0x34bdb4], edx
mov dword [0x34bdb0], ecx
cmp edx, 0
ja 0x785804
cmp ecx, 0xfffff
ja 0x785804
mov dword [0x34bdb0], 0x100000
mov dword [0x34bdb4], 0
cmp dword [0x8330], 0
jle 0x788943
mov edx, dword [0x34bdb4]
mov eax, dword [0x34bdb0]
push edx
push eax
shrd eax, edx, 9
shr edx, 9
push edx
push eax
push 0x346864
push 0
call fcn.00794ffc
mov eax, 1
add esp, 0x18
jmp 0x788948
push 6
push 0x34688f
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7858a0
mov eax, dword [ebp + 8]
push 9
add eax, 6
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x785c65
inc eax
jne 0x785c65
mov dword [ebp - 0x18], 0xfffffffe
mov dword [ebp - 0x14], 0xffffffff
jmp 0x785c65
push 5
push 0x346896
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7858c9
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
jmp 0x785c65
push 5
push 0x34689c
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7858ee
mov dword [ebp - 0x148], 1
jmp 0x785c65
push 0xb
push 0x3468a2
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x78592a
mov edx, dword [ebp - 0x174]
or dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x178]
or ecx, dword [ebp - 0x170]
jne 0x785992
mov dword [ebp - 0x178], 1
jmp 0x785964
push 0xc
push 0x3468ae
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785973
mov ebx, dword [ebp - 0x178]
or dword [ebp - 0x174], ebx
mov esi, dword [ebp - 0x174]
or esi, dword [ebp - 0x170]
jne 0x785992
mov dword [ebp - 0x174], 1
mov dword [ebp - 0x170], 1
jmp 0x785c65
push 0xd
push 0x3468bb
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7859a1
cmp dword [ebp - 0x170], 0
je 0x785964
mov dword [0x8314], 0x44
jmp 0x785369
push 0x12
push 0x3468c9
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7859c6
mov dword [ebp - 0x168], 1
jmp 0x785c65
push 0x12
push 0x3468dc
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x7859eb
mov dword [ebp - 0x16c], 1
jmp 0x785c65
push 0xb
push 0x3468ef
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785a30
mov eax, dword [ebp + 8]
push 0
add eax, 0xb
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
movzx eax, byte [ebp - 0x40]
mov dword [ebp - 0x150], eax
jmp 0x785a8b
push 0xa
push 0x3468fb
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785a75
mov eax, dword [ebp + 8]
push 0
add eax, 0xa
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
movzx edx, byte [ebp - 0x40]
mov dword [ebp - 0x150], edx
jmp 0x785ab0
push 0xa
push 0x346906
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785a9a
mov dword [ebp - 0x154], 2
jmp 0x785c65
push 9
push 0x346911
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785abf
mov dword [ebp - 0x154], 1
jmp 0x785c65
push 8
push 0x34691b
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785b1d
mov eax, dword [ebp + 8]
push 0
add eax, 8
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp edx, 0
ja 0x785b0e
cmp eax, 0x100
jbe 0x785c65
mov dword [0x8314], 0x32
jmp 0x785369
push 0x14
push 0x346924
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785b79
mov eax, dword [ebp + 8]
push 0
add eax, 0x14
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp edx, 0
ja 0x785b6a
cmp eax, 0x3f
jbe 0x785c65
mov dword [0x8314], 0x36
jmp 0x785369
push 0xa
push 0x346939
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785bcc
mov eax, dword [ebp + 8]
push 0
add eax, 0xa
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov ecx, dword [ebp - 0x40]
mov eax, ecx
mov dword [ebp - 0x14c], ecx
inc eax
cmp eax, 2
jbe 0x785c65
jmp 0x785369
push 0xf
push 0x346944
push dword [ebp + 8]
call fcn.00794cc2
add esp, 0xc
test eax, eax
jne 0x785c06
mov eax, dword [ebp + 8]
push 9
add eax, 0xf
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
jne 0x785c65
jmp 0x785369
push 0xe
push 0x346954
push dword [ebp + 8]
call fcn.00794cc2
mov ebx, dword [ebp + 8]
add esp, 0xc
mov dword [ebp - 0x1c0], ebx
test eax, eax
jne 0x785c79
mov eax, ebx
push 9
add eax, 0xe
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
test eax, eax
je 0x785369
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
cmp edx, 0
ja 0x785c65
cmp eax, 7
ja 0x785c65
mov dword [ebp - 0x38], 8
mov dword [ebp - 0x34], 0
push dword [ebp + 8]
push 0
call fcn.007969b8
mov dword [ebp + 8], eax
pop eax
pop edx
jmp 0x784a63
push dword [ebp - 0x1c0]
push 0
call fcn.007969b8
push eax
call fcn.0079a548
add esp, 0xc
cmp dword [0x8314], 0
jne 0x785369
mov eax, dword [0x8318]
mov dword [ebp - 0x188], eax
shr eax, 7
cmp dword [ebp - 0x154], 0
setne byte [ebp - 0x1a5]
and eax, 1
mov dword [ebp - 0x1ac], eax
sete al
test byte [ebp - 0x1a5], al
jne 0x785d2c
push dword [ebp - 0x1c0]
call fcn.0079a548
cmp dword [0x8314], 0
mov esi, eax
pop eax
je 0x785cf9
mov eax, dword [0x82a0]
mov dword [0x8314], 0
mov dword [0x8318], eax
xor esi, esi
mov edx, dword [0x8318]
mov dword [ebp - 0x18c], edx
cmp edx, 0x23
jne 0x785d18
mov eax, dword [0x82b8]
movzx eax, ah
mov dword [ebp - 0x18c], eax
mov eax, dword [ebp - 0x18c]
shr eax, 7
xor eax, 1
test byte [ebp - 0x1a5], al
je 0x785d3b
mov dword [0x8314], 0x39
jmp 0x785369
cmp dword [ebp - 0x18c], 0xffff
je 0x785d5c
mov eax, dword [0x82cc]
cmp dword [ebp - 0x18c], eax
je 0x785d5c
cmp dword [ebp - 0x188], eax
jne 0x785d76
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x785d76
inc eax
jne 0x785d76
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
and eax, dword [ebp - 0x18]
inc eax
setne al
test byte [ebp - 0x1a5], al
je 0x785d97
mov dword [0x8314], 0x3a
jmp 0x785369
mov dword [ebp - 0x184], 0
cmp dword [ebp - 0x154], 1
jne 0x785e60
push dword [ebp - 0x18c]
lea ebx, [ebp - 0xc0]
push 0x346963
mov edi, dword [0x831c]
push ebx
call fcn.00794ffc
push ebx
call fcn.0079be7d
add esp, 0x10
test eax, eax
je 0x785369
push 0xedde0d90
push 0
push 0x200
push 0
push 0x1f000
call fcn.0079aada
mov ecx, eax
add esp, 0x14
xor ch, 2
or ecx, edx
jne 0x786752
call fcn.0079ad08
mov dword [0x831c], edi
mov dword [ebp - 0x184], 0
xor eax, eax
test byte [eax + 0x1f1c0], 0x3f
je 0x785e60
test byte [eax + 0x1f1c4], 0x3f
je 0x785e60
cmp dword [eax + 0x1f1c6], 0
je 0x785e60
cmp dword [eax + 0x1f1ca], 0
je 0x785e60
inc dword [ebp - 0x184]
add eax, 0x10
cmp dword [ebp - 0x184], 4
jne 0x785e1b
mov dword [0x8314], 0x40
jmp 0x785369
cmp dword [0x831c], 0xffffff
je 0x785e7e
mov eax, dword [ebp - 0x18c]
add eax, 0xffffff80
cmp eax, 0x7f
ja 0x785fd9
test esi, esi
je 0x785fd9
mov al, byte [esi]
cmp al, 0x20
sete dl
cmp al, 9
sete al
or dl, al
je 0x785fd9
cmp dword [ebp - 0x18c], 0xffff
jne 0x785ec7
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp edx, 0
jg 0x785f16
jl 0x785eb8
cmp eax, 0
ja 0x785f16
mov dword [0x8314], 0x3b
jmp 0x785369
mov ecx, dword [ebp - 0x18c]
cmp ecx, dword [0x82cc]
jne 0x785f44
mov ecx, dword [0x82d0]
xor edx, edx
mov eax, ecx
mov esi, edx
and eax, 0x1ff
mov ebx, dword [0x82d4]
or esi, eax
jne 0x785ef6
mov eax, ebx
or eax, ecx
jne 0x785f05
mov dword [0x8314], 0x41
jmp 0x785369
mov edx, ebx
mov eax, ecx
shrd eax, edx, 9
shr edx, 9
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov dword [0x34cae8], eax
mov dword [0x34caec], edx
mov dword [0x34cae0], 1
mov dword [0x34cae4], 0
mov dword [ebp - 0x18c], 0xffff
jmp 0x785fd9
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp edx, 0
jg 0x786846
jl 0x785f5e
cmp eax, 0
ja 0x786846
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp edx, 0
jl 0x785f78
jg 0x786846
cmp eax, 0
ja 0x786846
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x188]
and eax, dword [ebp - 0x18]
inc eax
setne dl
cmp dword [ebp - 0x18c], ecx
setne al
test al, dl
je 0x785fa4
mov dword [0x8314], 0x43
jmp 0x785369
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0
jmp 0x787408
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x7860d8
inc eax
jne 0x7860d8
push dword [ebp + 0xc]
push dword [ebp - 0x1c0]
mov dword [0x359ba8], 0xffffffff
call fcn.0077e26a
pop edi
pop eax
cmp dword [0x8314], 0
jne 0x785369
cmp dword [0x359ba8], 1
je 0x786038
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x786038
inc eax
jne 0x786038
mov dword [0x8314], 0x3c
jmp 0x785369
mov eax, dword [0x359b34]
mov edx, dword [0x8320]
add edx, 0x1ff
mov dword [ebp - 0x1dc], 0
mov dword [ebp - 0x1e0], eax
mov ecx, dword [0x8324]
adc ecx, 0
mov ebx, dword [ebp - 0x1e0]
mov esi, dword [ebp - 0x1dc]
mov dword [0x34cae8], ebx
shrd edx, ecx, 9
mov dword [0x34caec], esi
mov ebx, dword [0x82a8]
shr ecx, 9
mov esi, dword [0x82ac]
mov dword [0x34cae0], edx
mov dword [0x34cae4], ecx
mov dword [ebp - 0x1b8], ebx
mov dword [ebp - 0x1b4], esi
cmp dword [ebp - 0x1dc], esi
jne 0x7860d8
cmp dword [ebp - 0x1e0], ebx
jne 0x7860d8
test eax, eax
je 0x7860d8
mov eax, edx
xor eax, 1
or eax, ecx
jne 0x7860d8
mov eax, dword [0x82b0]
mov edx, dword [0x82b4]
mov dword [0x34cae0], eax
mov dword [0x34cae4], edx
cmp dword [ebp - 0x18c], 0xffff
jne 0x78613d
mov eax, dword [0x34cae0]
mov edx, dword [0x34cae4]
mov ecx, eax
xor ecx, 1
or ecx, edx
jne 0x78613d
mov eax, dword [0x34cae8]
mov edx, dword [0x34caec]
shld edx, eax, 9
shl eax, 9
push 0
push 0x200
push edx
xor edx, edx
push eax
mov eax, dword [0x34c2d0]
push edx
push eax
call fcn.00796544
add esp, 0x18
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0
jmp 0x786468
push dword [ebp - 0x1c0]
call fcn.0079be7d
pop esi
test eax, eax
je 0x785369
mov edx, dword [0x8324]
mov eax, dword [0x8320]
shrd eax, edx, 9
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
shr edx, 9
cmp ebx, edx
jb 0x78617b
ja 0x786764
cmp ecx, eax
ja 0x786764
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
shld edx, eax, 9
shl eax, 9
mov dword [0x832c], edx
mov dword [0x8328], eax
xor edx, edx
mov eax, dword [0x34c2d0]
push 0xedde0d90
mov dword [0x34cae0], 0
push 0
mov dword [0x34cae4], 0
push 0x200
mov dword [0x34cae8], 0
push edx
mov dword [0x34caec], 0
push eax
mov dword [0x34d7a4], 1
mov dword [0x34d7b0], 0x317adc
call fcn.0079aada
add esp, 0x14
mov dword [0x34d7b0], 0
mov dword [0x34d7a4], 0
cmp eax, 0x200
je 0x786219
mov eax, dword [ebp - 0x188]
cmp eax, dword [0x82cc]
jne 0x786752
mov ecx, dword [0x30da95]
mov ebx, dword [0x8324]
mov dword [ebp - 0x160], ecx
mov ecx, dword [0x8320]
add ecx, 0x1ff
mov edx, dword [0x30da91]
adc ebx, 0
mov eax, dword [0x82b0]
shrd ecx, ebx, 9
mov dword [ebp - 0x164], edx
mov edx, dword [0x82b4]
shr ebx, 9
mov dword [ebp - 0x1a0], edx
mov dword [0x34cae0], ecx
mov dword [0x34cae4], ebx
mov dword [ebp - 0x1a4], eax
or edx, eax
je 0x7863a0
mov edx, dword [0x359e44]
mov esi, dword [0x34cae8]
mov dword [ebp - 0xe4], edx
cmp edx, 0x800
mov edi, dword [0x34caec]
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
jne 0x7862a5
shrd eax, edx, 2
shr edx, 2
sub esi, eax
sbb edi, edx
mov eax, esi
mov edx, edi
mov edi, dword [0x82ac]
mov esi, dword [0x82a8]
cmp edx, edi
jne 0x7863a0
cmp eax, esi
jne 0x7863a0
cmp dword [ebp - 0xe4], 0x800
jne 0x7862dc
mov eax, ecx
xor eax, 4
jmp 0x7862e1
mov eax, ecx
xor eax, 1
or eax, ebx
sete al
test al, al
je 0x7863a0
cmp dword [ebp - 0xe4], 0x800
jne 0x786319
mov ecx, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1a0]
shld ebx, ecx, 2
shl ecx, 2
mov dword [ebp - 0x1a0], ebx
mov dword [ebp - 0x1a4], ecx
mov ebx, dword [ebp - 0x1a4]
mov esi, dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x14]
mov dword [0x34cae0], ebx
mov dword [0x34cae4], esi
mov eax, dword [ebp - 0x18]
inc edx
jne 0x78633d
inc eax
je 0x7863a0
call fcn.0079ad08
lea ebx, [ebp - 0xc0]
push dword [0x82b4]
push dword [0x82b0]
push dword [0x82ac]
push dword [0x82a8]
push dword [ebp - 0x18c]
push 0x34696a
push ebx
call fcn.00794ffc
push ebx
call fcn.0079be7d
add esp, 0x20
test eax, eax
je 0x785369
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
add eax, 1
adc edx, 0
shld edx, eax, 9
shl eax, 9
mov dword [0x832c], edx
mov dword [0x8328], eax
mov eax, dword [0x34cae0]
mov edx, dword [0x34cae4]
sub eax, dword [ebp - 0x30]
sbb edx, dword [ebp - 0x2c]
mov dword [0x34cae0], eax
mov dword [0x34cae4], edx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x7863cd
inc eax
jne 0x7863cd
call fcn.0079ad08
cmp dword [ebp - 0x18c], 0xffff
jne 0x78640a
mov eax, dword [0x34cae0]
mov edx, dword [0x34cae4]
mov ecx, eax
xor ecx, 1
or ecx, edx
jne 0x78640a
push 0x346976
push 0
call fcn.00794ffc
xor eax, eax
mov dword [0x8314], 0x1e
jmp 0x78890d
mov edx, dword [ebp - 0x34]
mov ebx, dword [0x34cae4]
mov eax, dword [ebp - 0x38]
mov ecx, dword [0x34cae0]
cmp ebx, edx
jb 0x786431
ja 0x786426
cmp ecx, eax
jbe 0x786431
mov dword [0x34cae0], eax
mov dword [0x34cae4], edx
cmp dword [0x359e44], 0x800
jne 0x786468
mov ecx, dword [0x34cae8]
mov ebx, dword [0x34caec]
mov eax, dword [ebp - 0x30]
xor edx, edx
shld ebx, ecx, 2
shl ecx, 2
and eax, 3
add ecx, eax
adc ebx, edx
mov dword [0x34cae8], ecx
mov dword [0x34caec], ebx
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
shld edx, eax, 9
mov ebx, dword [0x8324]
mov ecx, dword [0x8320]
shl eax, 9
cmp ebx, edx
jb 0x7864a0
ja 0x78648b
cmp ecx, eax
jb 0x7864a0
sub ecx, eax
sbb ebx, edx
cmp ebx, 0
ja 0x7864a0
cmp ecx, 0x1ff
jbe 0x786936
mov eax, dword [0x34c2d0]
cmp word [eax + 0x1fe], 0xaa55
jne 0x786936
push eax
call fcn.0077e623
pop ebx
test eax, eax
jne 0x786855
cmp dword [0x8330], 0
jle 0x78652c
cmp dword [0x34c8a4], 0
jne 0x78652c
mov eax, dword [0x34c2d0]
mov ecx, 0x3469bc
cmp byte [eax], 0xeb
je 0x7864e9
mov ecx, 0x3469c1
mov eax, dword [0x30da4d]
mov edx, 0x3469cd
cmp eax, 1
je 0x78651b
mov edx, 0x3469d3
cmp eax, 2
je 0x78651b
mov edx, 0x3469d9
cmp eax, 3
je 0x78651b
mov edx, 0x3469df
cmp eax, 4
je 0x78651b
mov edx, 0x3469e4
push ecx
push edx
push 0x3469ef
push 0
call fcn.00794ffc
add esp, 0x10
mov ecx, dword [0x34cae0]
mov ebx, dword [0x34cae4]
mov eax, ecx
xor eax, 1
or eax, ebx
je 0x78659b
cmp dword [0x8330], 0
jle 0x78659b
cmp dword [0x34c8a4], 0
jne 0x78659b
mov eax, dword [0x359ba0]
xor edi, edi
mov esi, eax
cmp edi, ebx
jb 0x786588
cmp eax, ecx
jbe 0x786580
dec eax
xor edx, edx
push edx
push eax
push ebx
push ecx
push ebx
push ecx
push edi
push esi
push 0x346a24
push 0
call fcn.00794ffc
add esp, 0x28
jmp 0x78659b
cmp edi, ebx
jb 0x786588
cmp eax, ecx
jae 0x78659b
push ebx
push ecx
push edi
push esi
push 0x346b73
push 0
call fcn.00794ffc
add esp, 0x18
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x787233
inc eax
jne 0x787233
cmp dword [ebp - 0x1ac], 0
je 0x787233
cmp byte [ebp - 0x18c], 0
jns 0x787233
mov ebx, dword [0x34caec]
mov edx, dword [0x82ac]
mov ecx, dword [0x34cae8]
mov eax, dword [0x82a8]
cmp ebx, edx
jne 0x787233
cmp ecx, eax
jne 0x787233
mov esi, ebx
or esi, ecx
je 0x787233
mov edi, dword [0x34cae4]
mov edx, dword [0x82b4]
mov esi, dword [0x34cae0]
mov eax, dword [0x82b0]
cmp edi, edx
jne 0x787233
cmp esi, eax
jne 0x787233
mov edx, dword [0x34c2d0]
mov eax, dword [0x359b3c]
cmp dword [edx + 0x1c], eax
ja 0x786634
mov dword [edx + 0x1c], ecx
mov eax, dword [0x34c2d0]
mov esi, dword [0x359b3c]
mov eax, dword [eax + 0x1c]
sub eax, esi
mov dword [ebp - 0x180], eax
mov eax, dword [0x359ba0]
cmp dword [0x8330], 0
lea edx, [eax + esi]
mov dword [ebp - 0x17c], edx
jle 0x78668a
cmp dword [0x34c8a4], 0
jne 0x78668a
xor edx, edx
push edx
push eax
push esi
push dword [0x359b28]
push dword [0x359b2c]
push 0x346bd2
push 0
call fcn.00794ffc
add esp, 0x1c
mov ecx, dword [0x359b28]
mov ebx, dword [0x359b3c]
mov dword [ebp - 0x15c], ecx
mov dword [ebp - 0x158], ebx
cmp byte [ebp - 0x1a5], 0
jne 0x787247
cmp dword [0x8330], 0
jle 0x7866f0
cmp dword [0x34c8a4], 0
jne 0x7866f0
mov eax, dword [ebp - 0x188]
and eax, 0x7f
push eax
mov eax, dword [ebp - 0x18c]
push dword [ebp - 0x17c]
push dword [ebp - 0x180]
and eax, 0x7f
push eax
push 0x346c10
push 0
call fcn.00794ffc
add esp, 0x18
push dword [ebp - 0x17c]
push dword [ebp - 0x180]
mov eax, dword [ebp - 0x18c]
and eax, 0x7f
push eax
push 0x346c56
push dword [0x34c2d0]
call fcn.00794ffc
push dword [0x34c2d0]
call fcn.0079be7d
add esp, 0x18
test eax, eax
je 0x785369
xor edx, edx
mov eax, dword [0x34c2d0]
push 0xedde0d90
push 0
push 0x200
push edx
push eax
call fcn.0079aada
mov ecx, eax
add esp, 0x14
xor ch, 2
or ecx, edx
je 0x786773
call fcn.0079ad08
cmp dword [0x8314], 0
jne 0x785369
mov dword [0x8314], 0xd
jmp 0x785369
call fcn.0079ad08
xor ebx, ebx
xor esi, esi
mov edi, dword [0x34c2d0]
mov cl, byte [esi + edi + 0x1c2]
cmp cl, 5
sete dl
cmp cl, 0xf
sete al
or dl, al
jne 0x78679d
test cl, cl
jne 0x7867cf
mov dword [esi + edi + 0x1be], 0
mov dword [esi + edi + 0x1c2], 0
mov eax, esi
add eax, dword [0x34c2d0]
mov dword [eax + 0x1c6], 0
mov dword [eax + 0x1ca], 0
inc ebx
add esi, 0x10
cmp ebx, 4
jne 0x78677c
xor edx, edx
xor ebx, ebx
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x180]
mov dword [0x82b4], edx
mov dword [0x34cae4], edx
mov edx, dword [ebp - 0x24]
mov dword [0x82b0], eax
mov dword [0x34cae0], eax
mov dword [0x82a8], ecx
mov dword [0x82ac], ebx
mov dword [0x34cae8], ecx
mov dword [0x34caec], ebx
mov eax, dword [ebp - 0x28]
cmp edx, 0
jg 0x786846
jl 0x786828
cmp eax, 0
ja 0x786846
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp edx, 0
jg 0x786846
jl 0x78683a
cmp eax, 0
ja 0x786846
mov dword [ebp - 0x184], 4
jmp 0x786869
mov dword [0x8314], 0x42
jmp 0x785369
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
push dword [0x82a8]
push dword [0x34cae0]
push dword [0x34cae8]
push dword [0x34c2d0]
call fcn.0077e874
add esp, 0x10
test eax, eax
jne 0x78694a
mov ecx, dword [0x34cae0]
mov ebx, dword [0x34cae4]
mov eax, ecx
xor eax, 1
or eax, ebx
je 0x787247
mov esi, dword [0x359bfc]
cmp dword [0x359ba0], esi
jae 0x7868c8
xor edx, edx
cmp edx, ebx
jb 0x7868c2
cmp esi, ecx
ja 0x7868c8
mov dword [0x359ba0], esi
cmp dword [0x8330], 0
jle 0x787283
cmp dword [0x34c8a4], 0
jne 0x787283
mov eax, dword [0x359ba0]
xor edi, edi
mov esi, eax
cmp edi, ebx
jb 0x78691e
cmp eax, ecx
jbe 0x786912
dec eax
xor edx, edx
push edx
push eax
push ebx
push ecx
push ebx
push ecx
push edi
push esi
push 0x346c62
push 0
call fcn.00794ffc
add esp, 0x28
jmp 0x787247
cmp edi, ebx
jb 0x78691e
cmp eax, ecx
jae 0x787250
push ebx
push ecx
push edi
push esi
push 0x346df9
push 0
call fcn.00794ffc
add esp, 0x18
jmp 0x787247
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
mov esi, dword [ebp - 0x15c]
or esi, dword [ebp - 0x158]
jne 0x78733d
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
shld edx, eax, 9
mov ebx, dword [0x8324]
mov ecx, dword [0x8320]
shl eax, 9
cmp ebx, edx
jb 0x786990
ja 0x78697f
cmp ecx, eax
jb 0x786990
sub ecx, eax
sbb ebx, edx
cmp ebx, 0
ja 0x786990
cmp ecx, 0x1ff
jbe 0x7869a9
mov eax, dword [0x34c2d0]
cmp word [eax + 0x1fe], 0xaa55
jne 0x7869a9
cmp byte [ebp - 0x188], 0x9f
jbe 0x7869d1
cmp dword [ebp - 0x24], 0
jns 0x7869bd
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x1c], 0
jns 0x7869d1
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
test edx, edx
jns 0x786a99
cmp dword [ebp - 0x1ac], 0
jne 0x786a4c
mov edx, dword [0x34cae0]
mov ecx, dword [0x34cae4]
mov eax, edx
xor eax, 0x960
or eax, ecx
je 0x786a6c
cmp ecx, 0
ja 0x786a20
cmp edx, 0x960
ja 0x786a20
mov eax, edx
xor eax, 0x2d0
or eax, ecx
je 0x786a6c
mov eax, edx
xor eax, 0x5a0
jmp 0x786a32
mov eax, edx
xor eax, 0xb40
or eax, ecx
je 0x786a6c
mov eax, edx
xor eax, 0x1680
or eax, ecx
je 0x786a6c
mov eax, edx
mov edx, ecx
add eax, 0xfffffffe
adc edx, 0xffffffff
cmp edx, 0
ja 0x786a4c
cmp eax, 0x167d
jbe 0x786a6c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x786a58
inc eax
je 0x786a5d
call fcn.0079ad08
mov dword [0x8314], 0x3e
jmp 0x785369
mov dword [ebp - 0x28], 2
mov dword [ebp - 0x24], 0
cmp dword [0x8330], 0
jle 0x786b6c
cmp dword [0x34c8a4], 0
jne 0x786b6c
jmp 0x786b3c
mov ecx, edx
or ecx, eax
jne 0x786b49
cmp dword [ebp - 0x1ac], 0
jne 0x786b10
mov edx, dword [0x34cae0]
mov ecx, dword [0x34cae4]
mov eax, edx
xor eax, 0x140
or eax, ecx
je 0x786af1
cmp ecx, 0
ja 0x786adb
cmp edx, 0x140
ja 0x786adb
mov eax, edx
xor eax, 1
or eax, ecx
je 0x786b10
jmp 0x786afa
mov eax, edx
xor eax, 0x168
or eax, ecx
je 0x786af1
mov eax, edx
xor eax, 0x1f4
or eax, ecx
jne 0x786afa
mov dword [ebp - 0x28], 1
jmp 0x786b17
cmp ecx, 0
ja 0x786b10
cmp edx, 0x1f801
ja 0x786b10
mov dword [ebp - 0x28], 2
jmp 0x786b17
mov dword [ebp - 0x28], 0xff
mov dword [ebp - 0x24], 0
cmp dword [0x8330], 0
jle 0x786b6c
cmp dword [0x34c8a4], 0
jne 0x786b6c
cmp dword [ebp - 0x188], 0x9f
ja 0x786b6c
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push 0x346e74
jmp 0x786b62
cmp dword [0x8330], 0
jle 0x786b6c
cmp dword [0x34c8a4], 0
jne 0x786b6c
push edx
push eax
push 0x346eae
push 0
call fcn.00794ffc
add esp, 0x10
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
test edx, edx
jns 0x786c74
cmp dword [ebp - 0x1ac], 0
jne 0x786c2e
mov edx, dword [0x34cae0]
mov ecx, dword [0x34cae4]
mov eax, edx
xor eax, 0x960
or eax, ecx
je 0x786be4
cmp ecx, 0
ja 0x786bc3
cmp edx, 0x960
ja 0x786bc3
mov eax, edx
xor eax, 0x2d0
or eax, ecx
je 0x786bdb
mov eax, edx
xor eax, 0x5a0
or eax, ecx
je 0x786bdb
jmp 0x786bed
mov eax, edx
xor eax, 0xb40
or eax, ecx
je 0x786c04
mov eax, edx
xor eax, 0x1680
or eax, ecx
je 0x786c25
jmp 0x786bed
mov dword [ebp - 0x20], 9
jmp 0x786c4e
mov dword [ebp - 0x20], 0xf
jmp 0x786c4e
mov ebx, edx
mov esi, ecx
add ebx, 0xfffffffe
adc esi, 0xffffffff
cmp esi, 0
ja 0x786c0d
cmp ebx, 0xb3d
ja 0x786c0d
mov dword [ebp - 0x20], 0x12
jmp 0x786c4e
mov eax, edx
mov edx, ecx
add eax, 0xfffff4bf
adc edx, 0xffffffff
cmp edx, 0
ja 0x786c2e
cmp eax, 0xb3e
ja 0x786c2e
mov dword [ebp - 0x20], 0x24
jmp 0x786c4e
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x786c3a
inc eax
je 0x786c3f
call fcn.0079ad08
mov dword [0x8314], 0x3f
jmp 0x785369
mov dword [ebp - 0x1c], 0
cmp dword [0x8330], 0
jle 0x787408
cmp dword [0x34c8a4], 0
jne 0x787408
jmp 0x7871f6
mov ebx, edx
or ebx, eax
jne 0x787203
mov edx, dword [0x34cae0]
mov ecx, dword [0x34cae4]
mov eax, edx
xor eax, 1
or eax, ecx
jne 0x786c9f
mov dword [ebp - 0x20], 1
jmp 0x7871c5
cmp dword [ebp - 0x1ac], 0
jne 0x7871be
mov eax, edx
xor eax, 0x9d8
or eax, ecx
je 0x787129
cmp ecx, 0
ja 0x786ecb
cmp edx, 0x9d8
ja 0x786ecb
mov eax, edx
xor eax, 0x5d6
or eax, ecx
je 0x7870ed
cmp ecx, 0
ja 0x786ddd
cmp edx, 0x5d6
ja 0x786ddd
mov eax, edx
xor eax, 0x320
or eax, ecx
je 0x7870f9
cmp ecx, 0
ja 0x786d6e
cmp edx, 0x320
ja 0x786d6e
mov eax, edx
xor eax, 0x190
or eax, ecx
je 0x7870d5
cmp ecx, 0
ja 0x786d47
cmp edx, 0x190
ja 0x786d47
mov eax, edx
xor eax, 0x140
or eax, ecx
je 0x7870e1
mov eax, edx
xor eax, 0x168
jmp 0x786dd0
mov eax, edx
xor eax, 0x280
or eax, ecx
je 0x7870e1
mov eax, edx
xor eax, 0x2d0
or eax, ecx
je 0x7870ed
mov eax, edx
xor eax, 0x1f4
jmp 0x786d9e
mov eax, edx
xor ah, 5
or eax, ecx
je 0x7870e1
cmp ecx, 0
ja 0x786dab
cmp edx, 0x500
ja 0x786dab
mov eax, edx
xor eax, 0x348
or eax, ecx
je 0x7870f9
mov eax, edx
xor eax, 0x3e8
or eax, ecx
je 0x7870f9
jmp 0x787192
mov eax, edx
xor eax, 0x5b2
or eax, ecx
je 0x7870ed
mov eax, edx
xor eax, 0x5c4
or eax, ecx
je 0x7870ed
mov eax, edx
xor eax, 0x5a0
or eax, ecx
je 0x7870ed
jmp 0x787192
mov eax, edx
xor eax, 0x70c
or eax, ecx
je 0x787105
cmp ecx, 0
ja 0x786e5a
cmp edx, 0x70c
ja 0x786e5a
mov eax, edx
xor eax, 0x654
or eax, ecx
je 0x7870f9
cmp ecx, 0
ja 0x786e30
cmp edx, 0x654
ja 0x786e30
mov eax, edx
xor eax, 0x5e8
or eax, ecx
je 0x7870ed
mov eax, edx
xor eax, 0x640
jmp 0x786d9e
mov eax, edx
xor eax, 0x67c
or eax, ecx
je 0x7870f9
mov eax, edx
xor eax, 0x690
or eax, ecx
je 0x7870f9
mov eax, edx
xor eax, 0x668
jmp 0x786d9e
mov eax, edx
xor eax, 0x960
or eax, ecx
je 0x787129
cmp ecx, 0
ja 0x786e99
cmp edx, 0x960
ja 0x786e99
mov eax, edx
xor eax, 0x7b0
or eax, ecx
je 0x787111
mov eax, edx
xor eax, 0x854
or eax, ecx
je 0x78711d
jmp 0x787192
mov eax, edx
xor eax, 0x99c
or eax, ecx
je 0x787129
mov eax, edx
xor eax, 0x9ba
or eax, ecx
je 0x787129
mov eax, edx
xor eax, 0x97e
or eax, ecx
je 0x787129
jmp 0x787192
mov eax, edx
xor eax, 0xcd0
or eax, ecx
je 0x78714a
cmp ecx, 0
ja 0x786fe2
cmp edx, 0xcd0
ja 0x786fe2
mov eax, edx
xor eax, 0xb64
or eax, ecx
je 0x78719f
cmp ecx, 0
ja 0x786f71
cmp edx, 0xb64
ja 0x786f71
mov eax, edx
xor eax, 0xae4
or eax, ecx
je 0x787135
cmp ecx, 0
ja 0x786f3f
cmp edx, 0xae4
ja 0x786f3f
mov eax, edx
xor eax, 0xaa0
or eax, ecx
je 0x787135
mov eax, edx
xor eax, 0xac2
jmp 0x786f64
mov eax, edx
xor eax, 0xb28
or eax, ecx
je 0x787135
mov eax, edx
xor eax, 0xb40
or eax, ecx
je 0x78719f
mov eax, edx
xor eax, 0xb06
or eax, ecx
je 0x787135
jmp 0x787192
mov eax, edx
xor eax, 0xbd0
or eax, ecx
je 0x78719f
cmp ecx, 0
ja 0x786fb0
cmp edx, 0xbd0
ja 0x786fb0
mov eax, edx
xor eax, 0xb88
or eax, ecx
je 0x78719f
mov eax, edx
xor eax, 0xbac
or eax, ecx
je 0x78719f
jmp 0x787192
mov eax, edx
xor eax, 0xc80
or eax, ecx
je 0x78714a
mov eax, edx
xor eax, 0xca8
or eax, ecx
je 0x78714a
mov eax, edx
xor eax, 0xc2c
or eax, ecx
je 0x787141
jmp 0x787192
mov eax, edx
xor eax, 0xe18
or eax, ecx
je 0x78715c
cmp ecx, 0
ja 0x787064
cmp edx, 0xe18
ja 0x787064
mov eax, edx
xor eax, 0xd4a
or eax, ecx
je 0x787153
cmp ecx, 0
ja 0x787032
cmp edx, 0xd4a
ja 0x787032
mov eax, edx
xor eax, 0xcf8
or eax, ecx
je 0x78714a
mov eax, edx
xor eax, 0xd20
jmp 0x787057
mov eax, edx
xor eax, 0xd9e
or eax, ecx
je 0x787153
mov eax, edx
xor eax, 0xdc8
or eax, ecx
je 0x787153
mov eax, edx
xor eax, 0xd74
or eax, ecx
je 0x787153
jmp 0x787192
mov eax, edx
xor eax, 0x18fc
or eax, ecx
je 0x78716e
cmp ecx, 0
ja 0x7870a3
cmp edx, 0x18fc
ja 0x7870a3
mov eax, edx
xor eax, 0xebc
or eax, ecx
je 0x787165
mov eax, edx
xor eax, 0x1680
or eax, ecx
je 0x7871b5
jmp 0x787192
mov eax, edx
xor eax, 0x1cd4
or eax, ecx
je 0x787180
mov eax, edx
xor eax, 0x1d78
or eax, ecx
je 0x787189
mov eax, edx
xor eax, 0x1c30
or eax, ecx
je 0x787177
jmp 0x787192
mov dword [ebp - 0x20], 5
jmp 0x7871c5
mov dword [ebp - 0x20], 8
jmp 0x7871c5
mov dword [ebp - 0x20], 9
jmp 0x7871c5
mov dword [ebp - 0x20], 0xa
jmp 0x7871c5
mov dword [ebp - 0x20], 0xb
jmp 0x7871c5
mov dword [ebp - 0x20], 0xc
jmp 0x7871c5
mov dword [ebp - 0x20], 0xd
jmp 0x7871c5
mov dword [ebp - 0x20], 0xf
jmp 0x7871c5
mov dword [ebp - 0x20], 0x11
jmp 0x7871c5
mov dword [ebp - 0x20], 0x13
jmp 0x7871c5
mov dword [ebp - 0x20], 0x14
jmp 0x7871c5
mov dword [ebp - 0x20], 0x15
jmp 0x7871c5
mov dword [ebp - 0x20], 0x16
jmp 0x7871c5
mov dword [ebp - 0x20], 0x17
jmp 0x7871c5
mov dword [ebp - 0x20], 0x27
jmp 0x7871c5
mov dword [ebp - 0x20], 0x2c
jmp 0x7871c5
mov dword [ebp - 0x20], 0x2d
jmp 0x7871c5
mov dword [ebp - 0x20], 0x2e
jmp 0x7871c5
cmp ecx, 0
ja 0x7871be
cmp edx, 0xb41
ja 0x7871a8
mov dword [ebp - 0x20], 0x12
jmp 0x7871c5
cmp ecx, 0
ja 0x7871be
cmp edx, 0x1681
ja 0x7871be
mov dword [ebp - 0x20], 0x24
jmp 0x7871c5
mov dword [ebp - 0x20], 0x3f
mov dword [ebp - 0x1c], 0
cmp dword [0x8330], 0
jle 0x787408
cmp dword [0x34c8a4], 0
jne 0x787408
cmp dword [ebp - 0x188], 0x9f
ja 0x787408
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0x346ee8
jmp 0x787224
cmp dword [0x8330], 0
jle 0x787408
cmp dword [0x34c8a4], 0
jne 0x787408
push edx
push eax
push 0x346f24
push 0
call fcn.00794ffc
add esp, 0x10
jmp 0x787408
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
cmp dword [0x8330], 0
jle 0x787283
cmp dword [0x34c8a4], 0
jne 0x787283
mov eax, dword [0x359ba0]
xor edx, edx
push edx
push eax
push dword [0x359b3c]
push dword [0x359b28]
push dword [0x359b2c]
push 0x346f60
push 0
call fcn.00794ffc
add esp, 0x1c
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, ebx
mov edx, esi
and eax, esi
inc eax
mov eax, ebx
setne cl
add eax, 0xffffffff
adc edx, 0xffffffff
or eax, ebx
or edx, esi
mov eax, edx
xor edx, edx
shr eax, 0x1f
test al, cl
je 0x787313
mov eax, ebx
mov edx, esi
neg eax
adc edx, 0
mov ecx, dword [0x359ba0]
neg edx
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x198], 0
cmp edx, 0
ja 0x787313
cmp eax, dword [ebp - 0x19c]
jae 0x787313
cmp ecx, 1
jbe 0x787313
mov edx, dword [0x34cae4]
mov eax, dword [0x34cae0]
mov esi, edx
or esi, eax
je 0x787313
neg dword [ebp - 0x19c]
adc dword [ebp - 0x198], 0
mov eax, dword [ebp - 0x19c]
neg dword [ebp - 0x198]
mov edx, dword [ebp - 0x198]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x15c]
or edx, dword [ebp - 0x158]
je 0x78735d
mov ecx, dword [ebp - 0x15c]
cmp ecx, dword [0x359b28]
jne 0x78733d
mov ebx, dword [ebp - 0x158]
cmp ebx, dword [0x359b3c]
je 0x78735d
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x787349
inc eax
je 0x78734e
call fcn.0079ad08
mov dword [0x8314], 0x29
jmp 0x785369
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp edx, 0
jg 0x787381
jl 0x78736f
cmp eax, 0
ja 0x787381
mov esi, dword [0x359b28]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], esi
jmp 0x7873b3
mov esi, dword [0x359b28]
test edx, edx
jne 0x78738f
cmp eax, esi
je 0x7873b3
cmp dword [0x8330], 0
jle 0x7873b3
cmp dword [0x34c8a4], 0
jne 0x7873b3
push edx
push eax
push esi
push 0x346f96
push 0
call fcn.00794ffc
add esp, 0x14
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp edx, 0
jg 0x7873d6
jl 0x7873c5
cmp eax, 0
ja 0x7873d6
mov eax, dword [0x359b3c]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], eax
jmp 0x787408
mov esi, dword [0x359b3c]
test edx, edx
jne 0x7873e4
cmp eax, esi
je 0x787408
cmp dword [0x8330], 0
jle 0x787408
cmp dword [0x34c8a4], 0
jne 0x787408
push edx
push eax
push esi
push 0x347004
push 0
call fcn.00794ffc
add esp, 0x14
mov edx, dword [ebp - 0x188]
cmp edx, dword [0x82cc]
je 0x78750e
mov esi, 0x8e08
mov dword [ebp - 0x184], 0
mov ebx, esi
movzx eax, byte [esi]
cmp eax, dword [ebp - 0x188]
je 0x787481
sub esp, 0x18
mov eax, esp
push 0x18
push ebx
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x18
test eax, eax
jne 0x787481
inc dword [ebp - 0x184]
add ebx, 0x18
add esi, 0x18
cmp dword [ebp - 0x184], 8
jne 0x78742b
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x787dbd
inc eax
je 0x787dc2
jmp 0x787dbd
mov ecx, dword [ebp - 0x188]
cmp dword [ebp - 0x18c], ecx
sete dl
cmp dword [ebp - 0x178], 0
sete al
test al, dl
je 0x78750e
mov eax, dword [ebp - 0x174]
or eax, dword [ebp - 0x16c]
or eax, dword [ebp - 0x168]
jne 0x78750e
mov edx, dword [0x34caec]
mov eax, dword [0x34cae8]
mov ebx, edx
or ebx, eax
jne 0x78750e
mov ecx, dword [0x34cae4]
mov edx, dword [0x34cae0]
mov esi, ecx
or esi, edx
je 0x788776
mov eax, edx
xor eax, 1
or eax, ecx
jne 0x78750e
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp edx, 0
jg 0x78750e
jl 0x7874f4
cmp eax, 0
ja 0x78750e
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp edx, 0
jl 0x788776
jg 0x78750e
cmp eax, 1
jbe 0x788776
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edx
jne 0x7876af
inc eax
jne 0x7876af
push 1
call fcn.0077a479
pop ecx
test eax, eax
jne 0x7876af
xor ecx, ecx
mov edx, 0x8f00
xor edi, edi
movzx eax, byte [edx]
cmp dword [ebp - 0x18c], eax
jne 0x78769f
mov al, byte [edi + 0x8f01]
movzx edx, al
mov dword [ebp - 0x18c], edx
inc al
jne 0x787570
test byte [edi + 0x8f05], 0x40
jne 0x787570
mov dword [ebp - 0x18c], 0xffff
mov esi, dword [0x34caec]
mov ebx, dword [0x34cae8]
mov ecx, esi
or ecx, ebx
jne 0x7875f9
mov ecx, dword [0x34cae4]
mov edx, dword [0x34cae0]
mov eax, ecx
or eax, edx
je 0x7875c1
mov eax, edx
xor eax, 1
or eax, ecx
jne 0x7875f9
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp edx, 0
jg 0x7875f9
jl 0x7875af
cmp eax, 0
ja 0x7875f9
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp edx, 0
jg 0x7875f9
jl 0x7875c1
cmp eax, 1
ja 0x7875f9
mov eax, dword [edi + 0x8f10]
mov edx, dword [edi + 0x8f14]
mov dword [0x34cae0], eax
mov dword [0x34cae4], edx
movzx eax, byte [edi + 0x8f02]
inc eax
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
movzx eax, byte [edi + 0x8f03]
xor edx, edx
and eax, 0x3f
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
mov ecx, ebx
mov ebx, esi
add ecx, dword [edi + 0x8f08]
mov eax, dword [ebp - 0x188]
adc ebx, dword [edi + 0x8f0c]
cmp dword [ebp - 0x18c], eax
sete dl
cmp dword [ebp - 0x178], 0
sete al
mov dword [0x34cae8], ecx
mov dword [0x34caec], ebx
test al, dl
je 0x7876af
mov eax, dword [ebp - 0x174]
or eax, dword [ebp - 0x16c]
or eax, dword [ebp - 0x168]
jne 0x7876af
mov edx, ebx
or edx, ecx
jne 0x7876af
mov ecx, dword [0x34cae4]
mov edx, dword [0x34cae0]
mov ebx, ecx
or ebx, edx
je 0x78768b
mov eax, edx
xor eax, 1
or eax, ecx
jne 0x7876af
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp edx, 0
jg 0x7876af
jl 0x787679
cmp eax, 0
ja 0x7876af
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp edx, 0
jg 0x7876af
jl 0x78768b
cmp eax, 1
ja 0x7876af
mov eax, dword [ebp - 0x188]
cmp eax, dword [0x82cc]
jne 0x788776
jmp 0x7876af
inc ecx
add edi, 0x18
add edx, 0x18
cmp ecx, 8
jne 0x78753b
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
cmp esi, 0xffffffff
jne 0x7876c3
cmp ebx, 0xffffffff
je 0x788476
mov edx, dword [0x34cae8]
mov ecx, dword [0x34caec]
mov dword [ebp - 0xec], edx
mov edx, dword [0x82ac]
mov dword [ebp - 0xe8], ecx
mov eax, dword [0x82a8]
cmp ecx, edx
jne 0x78772a
cmp dword [ebp - 0xec], eax
jne 0x78772a
mov ecx, dword [ebp - 0xe8]
or ecx, dword [ebp - 0xec]
jne 0x78772a
mov eax, dword [0x34cae0]
mov edx, dword [0x34cae4]
mov ecx, eax
xor ecx, 1
or ecx, edx
jne 0x78772a
mov eax, dword [0x82b0]
mov edx, dword [0x82b4]
mov dword [0x34cae0], eax
mov dword [0x34cae4], edx
test esi, esi
jns 0x787755
mov eax, ebx
mov edx, esi
neg eax
adc edx, 0
mov ebx, dword [0x34cae4]
neg edx
mov ecx, dword [0x34cae0]
cmp ebx, edx
ja 0x787755
jb 0x78774f
cmp ecx, eax
jae 0x787755
mov ecx, eax
mov ebx, edx
jmp 0x787761
mov ecx, dword [0x34cae0]
mov ebx, dword [0x34cae4]
shld ebx, ecx, 9
shl ecx, 9
cmp dword [ebp - 0x14c], 0
jge 0x78779b
cmp dword [0x30da4d], 0
jle 0x7877b0
cmp dword [ebp - 0x188], 0x9f
setbe al
mov dword [ebp - 0x14c], 1
test byte [ebp - 0x1ac], al
jne 0x78779d
jmp 0x7877b0
je 0x7877ba
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
shld edx, eax, 9
shl eax, 9
add ecx, eax
adc ebx, edx
jmp 0x7877ba
mov dword [ebp - 0x14c], 0
mov eax, ecx
mov edx, ebx
add eax, 0xfff
adc edx, 0
mov ebx, eax
and ebx, 0xfffff000
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], ebx
cmp dword [ebp - 0x18c], 0xffff
je 0x7877f4
mov eax, dword [ebp - 0x18c]
cmp eax, dword [0x82cc]
jne 0x78781c
mov eax, dword [0x34cae0]
mov edx, dword [0x34cae4]
mov ecx, eax
xor ecx, 1
or ecx, edx
jne 0x78781c
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xe8]
shld ecx, edx, 9
shl edx, 9
mov dword [ebp - 0x138], ecx
mov ecx, dword [ebp - 0x18c]
mov dword [ebp - 0x13c], edx
cmp ecx, dword [0x82cc]
jne 0x787861
mov ebx, dword [0x82d0]
mov esi, dword [0x82d4]
add dword [ebp - 0x13c], ebx
adc dword [ebp - 0x138], esi
mov edx, dword [0x34bdbc]
mov eax, dword [0x34bdb8]
cmp edx, 1
jb 0x787895
ja 0x787878
cmp eax, 0
jbe 0x787895
cmp dword [0x82bc], 0
jne 0x787895
mov dword [0x34bdb8], 0
mov dword [0x34bdbc], 1
mov edx, dword [0x34bdb4]
mov eax, dword [0x34bdb0]
cmp edx, 0
ja 0x7878c0
cmp eax, 0xfffff
ja 0x7878c0
mov dword [0x34bdb0], 0x100000
mov dword [0x34bdb4], 0
test byte [0xd578], 0x40
je 0x787d6a
mov esi, dword [0x82f8]
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x124], esi
add esi, dword [0x82fc]
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0
jmp 0x787d24
mov eax, dword [ebp - 0x124]
cmp dword [eax + 0x14], 1
jne 0x787d13
mov ebx, dword [eax + 8]
mov edx, dword [0x34bdb4]
mov ecx, dword [eax + 4]
cmp edx, ebx
mov eax, dword [0x34bdb0]
ja 0x787941
jb 0x78793d
cmp eax, ecx
jae 0x787941
mov eax, ecx
mov edx, ebx
add eax, 0xfff
adc edx, 0
mov esi, eax
and esi, 0xfffff000
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xd8], esi
add ecx, dword [eax + 0xc]
mov edx, dword [0x34bdbc]
adc ebx, dword [eax + 0x10]
mov eax, dword [0x34bdb8]
cmp edx, ebx
jb 0x787982
ja 0x78797e
cmp eax, ecx
jbe 0x787982
mov eax, ecx
mov edx, ebx
mov ecx, eax
mov ebx, dword [ebp - 0xcc]
and ecx, 0xfffff000
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xe0], ecx
cmp edx, ebx
jb 0x787d13
ja 0x7879b4
mov esi, dword [ebp - 0xd0]
cmp ecx, esi
jb 0x787d13
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xdc]
sub eax, dword [ebp - 0xd0]
sbb edx, dword [ebp - 0xcc]
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp edx, 0
jl 0x787a17
jg 0x7879ea
cmp eax, 0
jbe 0x787a17
shld edx, eax, 9
shl eax, 9
cmp dword [ebp - 0x118], edx
jb 0x787d13
ja 0x787a0b
cmp dword [ebp - 0x11c], eax
jb 0x787d13
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
mov edx, dword [ebp - 0xd4]
cmp dword [ebp - 0x118], edx
jb 0x787d13
ja 0x787a3d
mov ecx, dword [ebp - 0xd8]
cmp dword [ebp - 0x11c], ecx
jb 0x787d13
mov dword [ebp - 0xf8], 0
imul ebx, dword [ebp - 0xf8], 0x18
sub esp, 0x18
mov edx, ebx
mov eax, esp
add edx, 0x8e08
push 0x18
push edx
push eax
mov dword [ebp - 0x1bc], ebx
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x18
test eax, eax
jne 0x787c0d
cmp byte [ebx + 0x8e09], 0xff
jne 0x787bd9
test byte [ebx + 0x8e0d], 0x40
jne 0x787bd9
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [edx + 0x8e10]
mov edx, dword [edx + 0x8e14]
shld edx, eax, 9
shl eax, 9
mov dword [ebp - 0x1d4], edx
mov dword [ebp - 0x1d8], eax
mov edi, edx
mov eax, dword [ecx + 0x8e18]
mov edx, dword [ecx + 0x8e1c]
shld edx, eax, 9
shl eax, 9
mov esi, dword [ebp - 0x1d8]
and esi, 0xfffff000
add eax, dword [ebp - 0x1d8]
adc edx, dword [ebp - 0x1d4]
add eax, 0xfff
adc edx, 0
mov ecx, eax
mov ebx, edx
and ecx, 0xfffff000
mov dl, 1
cmp dword [ebp - 0x118], ebx
jb 0x787b17
ja 0x787b15
cmp dword [ebp - 0x11c], ecx
jb 0x787b17
xor edx, edx
mov al, 1
cmp edi, dword [ebp - 0xdc]
jb 0x787b2d
ja 0x787b2b
cmp esi, dword [ebp - 0xe0]
jb 0x787b2d
xor eax, eax
test al, dl
je 0x787bd9
cmp edi, dword [ebp - 0xcc]
jb 0x787bed
ja 0x787b4f
cmp esi, dword [ebp - 0xd0]
jb 0x787bed
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp edx, 0
jg 0x787bab
jl 0x787b61
cmp eax, 0
ja 0x787bab
mov eax, esi
mov edx, edi
sub eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd4]
sbb edx, dword [ebp - 0xcc]
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
cmp edx, ecx
jb 0x787bed
ja 0x787b93
mov ebx, dword [ebp - 0xd8]
cmp eax, ebx
jb 0x787bed
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], edi
mov dword [ebp - 0xf8], 0xffffffff
jmp 0x787bd9
mov eax, esi
mov edx, edi
sub eax, dword [ebp - 0xd0]
sbb edx, dword [ebp - 0xcc]
cmp dword [ebp - 0x118], edx
ja 0x787bed
jb 0x787bcd
cmp dword [ebp - 0x11c], eax
ja 0x787bed
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], edi
inc dword [ebp - 0xf8]
cmp dword [ebp - 0xf8], 7
ja 0x787c0d
jmp 0x787a47
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], edi
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
mov esi, dword [ebp - 0xd4]
cmp dword [ebp - 0x118], esi
jb 0x787d13
ja 0x787c33
mov eax, dword [ebp - 0xd8]
cmp dword [ebp - 0x11c], eax
jb 0x787d13
cmp dword [ebp - 0x18c], 0xffff
je 0x787c4d
mov edx, dword [ebp - 0x18c]
cmp edx, dword [0x82cc]
jne 0x787cbc
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp edx, 0
jg 0x787cbc
jl 0x787c5f
cmp eax, 0
ja 0x787cbc
cmp dword [0x35a000], 0
je 0x787cbc
mov eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x118]
add eax, dword [ebp - 0xd0]
adc edx, dword [ebp - 0xcc]
cmp edx, dword [ebp - 0x138]
jb 0x787cbc
ja 0x787c92
cmp eax, dword [ebp - 0x13c]
jbe 0x787cbc
mov eax, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x138]
add eax, dword [ebp - 0x164]
adc edx, dword [ebp - 0x160]
cmp dword [ebp - 0x118], edx
jb 0x787d13
ja 0x787cbc
cmp dword [ebp - 0x11c], eax
jb 0x787d13
cmp dword [ebp - 0x148], 0
je 0x787d38
mov ecx, dword [ebp - 0x118]
cmp dword [ebp - 0x130], ecx
ja 0x787d13
jb 0x787ce3
mov ebx, dword [ebp - 0x11c]
cmp dword [ebp - 0x134], ebx
jae 0x787d13
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0x11c]
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x124]
add eax, dword [eax]
add eax, 4
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
cmp dword [ebp - 0x120], ecx
ja 0x787912
jmp 0x787da0
mov ebx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0x128], esi
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], edx
jmp 0x787da0
push 0x347074
push 0
call fcn.00794ffc
pop eax
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0
pop edx
mov edx, dword [0x34bdb4]
mov eax, dword [0x34bdb0]
cmp dword [ebp - 0x130], edx
ja 0x787dd1
jb 0x787dbd
cmp dword [ebp - 0x134], eax
jae 0x787dd1
call fcn.0079ad08
mov dword [0x8314], 0x1c
jmp 0x785369
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp edx, 0
jl 0x787e23
jg 0x787de3
cmp eax, 0
jbe 0x787e23
shld edx, eax, 9
shl eax, 9
mov dword [ebp - 0x130], edx
sub dword [ebp - 0x12c], eax
mov dword [ebp - 0x134], eax
sbb dword [ebp - 0x128], edx
mov edx, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x128]
shrd edx, ecx, 9
shr ecx, 9
mov dword [0x34cae0], edx
mov dword [0x34cae4], ecx
jmp 0x787e42
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
shrd ecx, ebx, 9
shr ebx, 9
mov dword [0x34cae0], ecx
mov dword [0x34cae4], ebx
mov ebx, dword [ebp - 0x134]
mov esi, dword [ebp - 0x130]
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], esi
cmp dword [ebp - 0x14c], 0
je 0x787e88
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
shld edx, eax, 9
shl eax, 9
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], eax
add dword [ebp - 0xc8], ebx
adc dword [ebp - 0xc4], esi
cmp dword [ebp - 0x18c], 0xffff
je 0x787ea2
mov edx, dword [ebp - 0x18c]
cmp edx, dword [0x82cc]
jne 0x787f1f
cmp dword [0x35a000], 0
jne 0x787f1f
mov ecx, dword [ebp - 0x138]
cmp dword [ebp - 0xc4], ecx
jne 0x787ecb
mov ebx, dword [ebp - 0x13c]
cmp dword [ebp - 0xc8], ebx
je 0x78808c
mov edx, dword [0x8324]
mov ebx, dword [ebp - 0x34]
mov eax, dword [0x8320]
mov ecx, dword [ebp - 0x38]
cmp ebx, edx
ja 0x787ef8
jb 0x787ee6
cmp ecx, eax
jae 0x787ef8
mov eax, dword [0x34cae0]
mov edx, dword [0x34cae4]
shld edx, eax, 9
shl eax, 9
push edx
push eax
push dword [ebp - 0x138]
push dword [ebp - 0x13c]
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
call fcn.00796544
add esp, 0x18
jmp 0x78808c
xor edx, edx
mov eax, dword [0x34c2d0]
push 0
push 0x200
push edx
push eax
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
call fcn.00796544
mov edx, dword [0x34cae4]
add esp, 0x18
mov eax, dword [0x34cae0]
cmp edx, 0
ja 0x787f5c
cmp eax, 1
jbe 0x78808c
mov esi, eax
mov edi, edx
add esi, 0xffffffff
mov eax, dword [ebp - 0x30]
adc edi, 0xffffffff
mov edx, dword [ebp - 0x2c]
shld edi, esi, 9
shl esi, 9
add eax, 1
adc edx, 0
mov ecx, dword [0x8320]
shld edx, eax, 9
shl eax, 9
mov ebx, dword [0x8324]
sub ecx, eax
sbb ebx, edx
cmp edi, ebx
jb 0x787f9e
ja 0x787f9a
cmp esi, ecx
jbe 0x787f9e
mov esi, ecx
mov edi, ebx
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc4]
add eax, 0x200
push 0xedde0d90
adc edx, 0
push edi
mov dword [ebp - 0x194], eax
push esi
mov dword [ebp - 0x190], edx
push edx
push eax
call fcn.0079aada
add esp, 0x14
cmp edx, edi
jne 0x787fdb
cmp eax, esi
je 0x78808c
mov edx, dword [0x359ba0]
mov dword [ebp - 0x110], 0
mov eax, edx
shl eax, 9
sub eax, 0x200
test edx, edx
mov dword [ebp - 0x114], eax
mov dl, 1
sete al
cmp dword [ebp - 0x110], edi
jb 0x788012
cmp dword [ebp - 0x114], esi
jae 0x788014
xor edx, edx
or al, dl
jne 0x78806b
push 0xedde0d90
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push dword [ebp - 0x190]
add eax, 1
mov edx, dword [ebp - 0x2c]
push dword [ebp - 0x194]
adc edx, 0
shld edx, eax, 9
shl eax, 9
mov dword [0x832c], edx
mov dword [0x8328], eax
call fcn.0079aada
add esp, 0x14
cmp edx, dword [ebp - 0x110]
jne 0x78806b
cmp eax, dword [ebp - 0x114]
je 0x78808c
call fcn.0079ad08
cmp dword [0x8314], 0
jne 0x785369
mov dword [0x8314], 0x19
jmp 0x785369
call fcn.0079ad08
mov edx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x134]
shrd eax, edx, 9
shr edx, 9
mov dword [0x34cae8], eax
mov dword [0x34caec], edx
cmp dword [ebp - 0x14c], 0
je 0x788367
mov eax, dword [0x30da4d]
cmp eax, 0xffffffff
je 0x7880fa
cmp eax, 3
mov ecx, dword [0x34c2d0]
sete dl
movzx eax, dl
dec eax
and eax, 0xffffffe4
cmp byte [eax + ecx + 0x41], 0
jne 0x78810a
movzx eax, dl
dec eax
mov dl, byte [ebp - 0x188]
and eax, 0xffffffe4
mov byte [eax + ecx + 0x40], dl
cmp dword [0x30da4d], 0xffffffff
jne 0x78810a
mov edx, dword [0x34c2d0]
mov eax, dword [0x82a8]
cmp dword [edx + 0x1c], eax
jne 0x788115
mov eax, dword [0x34c2d0]
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x1c], edx
xor edx, edx
mov eax, dword [0x34c2d0]
push 0
push 0x200
push edx
push eax
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
call fcn.00796544
push 0x200
push 0
push dword [0x34c2d0]
call fcn.00794efc
mov eax, dword [0x34c2d0]
movzx edx, byte [ebp - 0x188]
mov dword [eax + 0x1b8], edx
add esp, 0x24
mov eax, dword [0x34c2d0]
mov dword [eax + 0x1be], 0x10180
mov ecx, dword [0x34c2d0]
mov edx, dword [0x30da4d]
add ecx, 0x1c2
cmp edx, 1
je 0x78819e
cmp edx, 2
je 0x78819e
mov al, 0xc
cmp edx, 3
je 0x7881a0
cmp edx, 4
sete al
dec eax
and eax, 0x7c
add eax, 7
jmp 0x7881a0
mov al, 0xe
mov byte [ecx], al
mov eax, dword [ebp - 0x20]
mov esi, dword [0x34cae0]
mul dword [ebp - 0x28]
lea edi, [esi - 1]
mov ecx, eax
xor edx, edx
mov eax, edi
div ecx
mov dword [ebp - 0x1e4], edx
mov ecx, eax
mov eax, edx
xor edx, edx
div dword [ebp - 0x20]
mov ebx, edx
mov edx, dword [0x34c2d0]
mov byte [edx + 0x1c3], al
mov eax, ecx
shl eax, 8
lea edx, [ebx + 1]
shr ecx, 8
or eax, edx
mov edx, ecx
shl edx, 6
or eax, edx
mov edx, dword [0x34c2d0]
mov word [edx + 0x1c4], ax
mov eax, dword [0x34c2d0]
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x1c6], edx
mov eax, dword [0x34c2d0]
sub esi, dword [ebp - 0x20]
mov dword [eax + 0x1ca], esi
mov eax, dword [0x34c2d0]
mov dword [eax + 0x1ce], 0
mov dword [eax + 0x1d2], 0
mov eax, dword [0x34c2d0]
mov dword [eax + 0x1d6], 0
mov dword [eax + 0x1da], 0
mov eax, dword [0x34c2d0]
mov dword [eax + 0x1de], 0
mov dword [eax + 0x1e2], 0
mov eax, dword [0x34c2d0]
mov dword [eax + 0x1e6], 0
mov dword [eax + 0x1ea], 0
mov eax, dword [0x34c2d0]
mov dword [eax + 0x1ee], 0
mov dword [eax + 0x1f2], 0
mov eax, dword [0x34c2d0]
mov dword [eax + 0x1f6], 0
mov dword [eax + 0x1fa], 0
mov eax, dword [0x34c2d0]
mov word [eax + 0x1fe], 0xaa55
mov eax, dword [0x34c2d0]
mov byte [eax], 0xfa
mov eax, dword [0x34c2d0]
mov word [eax + 1], 0xc033
mov eax, dword [0x34c2d0]
mov word [eax + 3], 0xd08e
mov eax, dword [0x34c2d0]
mov dword [eax + 5], 0xfb7c00bc
mov eax, dword [0x34c2d0]
mov dword [eax + 9], 0x7501f50
mov eax, dword [0x34c2d0]
mov dword [eax + 0xd], 0x7c1cbefc
mov eax, dword [0x34c2d0]
mov dword [eax + 0x11], 0x50061cbf
mov eax, dword [0x34c2d0]
mov dword [eax + 0x15], 0x1e4b957
mov eax, dword [0x34c2d0]
mov dword [eax + 0x19], 0x1ecba4f3
mov eax, dword [0x34c2d0]
mov dword [eax + 0x1d], 0x537c00bb
mov eax, dword [0x34c2d0]
mov dword [eax + 0x21], 0x520180ba
mov eax, dword [0x34c2d0]
mov dword [eax + 0x25], 0x530201b8
mov eax, dword [0x34c2d0]
mov dword [eax + 0x29], 0x5f13cd41
mov eax, dword [0x34c2d0]
mov dword [eax + 0x2d], 0x5607bebe
mov eax, dword [0x34c2d0]
mov dword [eax + 0x31], 0xcbfa5a5d
jmp 0x7883b4
cmp dword [ebp - 0x188], 0x9f
setbe al
test byte [ebp - 0x1ac], al
je 0x7883d8
mov ecx, dword [0x34c2d0]
mov edx, dword [ecx + 0x1b8]
test edx, edx
jne 0x78839b
movzx eax, byte [ebp - 0x188]
mov dword [ecx + 0x1b8], eax
jmp 0x7883b4
test edx, 0xffffff00
jne 0x7883b4
mov eax, dword [ebp - 0x188]
shl eax, 8
or edx, eax
mov dword [ecx + 0x1b8], edx
mov eax, dword [0x34c2d0]
xor edx, edx
push 0
push 0x200
push edx
push eax
push dword [ebp - 0x130]
push dword [ebp - 0x134]
call fcn.00796544
add esp, 0x18
mov ecx, dword [ebp - 0x188]
mov dword [ebp - 0x18c], 0xffff
cmp ecx, dword [0x82cc]
jne 0x788476
mov ebx, dword [ebp - 0x134]
mov esi, dword [ebp - 0x130]
mov dword [0x82d0], ebx
mov edx, dword [ebp - 0x34]
mov ebx, dword [0x8324]
mov dword [0x82d4], esi
mov ecx, dword [0x8320]
mov eax, dword [ebp - 0x38]
cmp edx, ebx
ja 0x78843b
jb 0x788428
cmp eax, ecx
jae 0x78843b
mov ecx, dword [0x34cae0]
mov ebx, dword [0x34cae4]
shld ebx, ecx, 9
shl ecx, 9
mov dword [0x82d8], ecx
mov dword [0x82dc], ebx
cmp dword [ebp - 0x14c], 0
je 0x788943
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
shld edx, eax, 9
shl eax, 9
add ecx, eax
adc ebx, edx
mov dword [0x82d8], ecx
mov dword [0x82dc], ebx
jmp 0x788943
cmp byte [ebp - 0x1a5], 0
je 0x7884c1
mov ecx, dword [ebp - 0x150]
mov eax, dword [0x30da4d]
shl ecx, 8
cmp eax, 1
je 0x7884ac
cmp eax, 2
je 0x7884ac
mov edx, 0xc
cmp eax, 3
je 0x7884b1
mov dl, 7
cmp eax, 4
je 0x7884b1
mov dl, 0x83
jmp 0x7884b1
mov edx, 0xe
imul eax, dword [ebp - 0x184], 0x18
or ecx, edx
mov word [eax + 0x8e0c], cx
mov edx, dword [0x34caec]
mov eax, dword [0x34cae8]
mov esi, edx
or esi, eax
jne 0x78851f
mov eax, dword [0x34cae4]
or eax, dword [0x34cae0]
sete dl
cmp dword [ebp - 0x18c], 3
setbe al
test al, dl
je 0x78851f
and dword [0x359ee8], 0xfffffffe
mov dword [0x359ee4], 0x200
mov dword [0x359ed0], 0x50
mov dword [0x359ed4], 2
mov dword [0x359ed8], 0x12
jmp 0x78854d
cmp dword [ebp - 0x18c], 0x21
je 0x78854d
push 0x359ed0
push dword [ebp - 0x18c]
call fcn.0077ac8e
pop esi
test eax, eax
pop edi
je 0x78854d
mov dword [0x8314], 0x15
jmp 0x785369
imul edx, dword [ebp - 0x184], 0x18
mov edi, dword [ebp - 0x188]
mov cl, byte [ebp - 0x18c]
mov eax, edi
mov byte [edx + 0x8e09], cl
mov byte [edx + 0x8e08], al
mov al, byte [ebp - 0x28]
dec eax
or eax, dword [ebp - 0x168]
mov byte [edx + 0x8e0a], al
xor eax, eax
cmp dword [ebp - 0x168], 0
jne 0x788597
mov al, 1
cmp dword [ebp - 0x154], 0
jne 0x788597
mov al, byte [ebp - 0x20]
mov esi, dword [ebp - 0x174]
mov dl, byte [ebp - 0x178]
or edx, esi
shl edx, 7
or edx, eax
mov al, byte [ebp - 0x16c]
shl eax, 6
or edx, eax
imul eax, dword [ebp - 0x184], 0x18
cmp dword [ebp - 0x188], 0x9f
mov byte [eax + 0x8e0b], dl
jbe 0x7885e3
cmp dword [0x359ee4], 0x800
je 0x7885e3
or edx, 0xf
mov byte [eax + 0x8e0b], dl
cmp dword [ebp - 0x154], 0
jne 0x78867d
mov edx, dword [0x359ee8]
mov eax, edx
shr eax, 2
mov ebx, eax
and ebx, 1
je 0x788616
and dword [ebp - 0x18c], 0x100
mov ecx, dword [ebp - 0x18c]
shr ecx, 1
jmp 0x78861b
mov ecx, edx
shl ecx, 0xf
xor edx, edx
cmp dword [0x359ee4], 0x800
sete dl
shl edx, 0xe
xor eax, eax
or edx, ecx
cmp dword [ebp - 0x188], 0xa0
setae al
shl eax, 0xd
or edx, eax
mov eax, ebx
shl eax, 0xc
or edx, eax
xor eax, eax
cmp dword [0x30da4d], 0
setg al
shl eax, 0xb
or edx, eax
mov eax, dword [0x359ed0]
dec eax
imul ecx, dword [ebp - 0x184], 0x18
cmp eax, 0x3ff
jbe 0x788674
mov eax, 0x3ff
or edx, eax
mov word [ecx + 0x8e0c], dx
imul ecx, dword [ebp - 0x184], 0x18
mov al, byte [0x359ed4]
dec eax
mov byte [ecx + 0x8e0e], al
cmp dword [ebp - 0x170], 0
sete al
or eax, esi
shl eax, 6
or al, byte [0x359ed8]
cmp byte [ebp - 0x1a5], 0
mov byte [ecx + 0x8e0f], al
je 0x7886bd
or eax, 0xffffff80
mov byte [ecx + 0x8e0f], al
mov eax, dword [0x34cae8]
mov edx, dword [0x34caec]
mov dword [ecx + 0x8e10], eax
mov dword [ecx + 0x8e14], edx
mov dword [0x359b20], eax
mov dword [0x359b24], edx
mov eax, dword [0x34cae0]
mov edx, dword [0x34cae4]
mov dword [ecx + 0x8e18], eax
mov dword [ecx + 0x8e1c], edx
cmp dword [ebp - 0x1ac], 0
je 0x788718
lea eax, [edi - 0x80]
cmp byte [0x475], al
jne 0x788943
lea eax, [edi - 0x7f]
mov byte [0x475], al
jmp 0x788757
mov cl, byte [0x410]
xor ebx, ebx
test cl, 1
je 0x788730
mov al, cl
sar al, 6
movsx eax, al
lea ebx, [eax + 1]
mov dl, byte [ebp - 0x188]
movsx eax, dl
cmp ebx, eax
jne 0x788943
and ecx, 0x3e
cmp dl, 1
sbb eax, eax
and eax, 0xffffffc0
add eax, 0x41
or ecx, eax
mov byte [0x410], cl
cmp dword [0x8330], 0
jle 0x788943
cmp dword [0x34c8a4], 0
jne 0x788943
jmp 0x7888cf
mov edx, 8
sub edx, dword [ebp - 0x184]
imul eax, dword [ebp - 0x184], 0x18
imul edx, edx, 0x18
push edx
lea edx, [eax + 0x8e20]
add eax, 0x8e08
push edx
push eax
call fcn.00794e4f
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebp - 0x18]
inc edx
jne 0x7887ad
inc eax
je 0x7887b2
call fcn.0079ad08
mov edi, 0x8e08
xor esi, esi
mov ebx, edi
sub esp, 0x18
mov eax, esp
push 0x18
push ebx
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x18
test eax, eax
jne 0x7887f4
movzx eax, byte [edi]
test al, 0xe0
jne 0x7887e6
inc eax
cmp esi, eax
jae 0x7887e6
mov esi, eax
add ebx, 0x18
add edi, 0x18
cmp ebx, 0x8ec8
jne 0x7887bb
cmp esi, 4
jbe 0x7887fe
mov esi, 4
mov dl, byte [0x8eea]
mov bl, dl
and bl, 1
jne 0x78880f
xor eax, eax
jmp 0x788818
mov al, dl
sar al, 6
movsx eax, al
inc eax
cmp esi, eax
ja 0x788857
mov al, byte [0x410]
xor ecx, ecx
test al, 1
je 0x788830
sar al, 6
movsx eax, al
lea ecx, [eax + 1]
xor eax, eax
test bl, bl
je 0x78883f
mov al, dl
sar al, 6
movsx eax, al
inc eax
cmp ecx, eax
jle 0x788857
mov byte [0x410], dl
cmp dword [0x8330], 0
jle 0x788857
call fcn.00784926
mov esi, 0x8e08
xor edi, edi
mov ebx, esi
sub esp, 0x18
mov eax, esp
push 0x18
push ebx
push eax
call fcn.00794e4f
add esp, 0xc
call fcn.0077d394
add esp, 0x18
test eax, eax
jne 0x7888a3
movzx edx, byte [esi]
mov eax, edx
and eax, 0xe0
add eax, 0xffffff80
jne 0x788895
lea eax, [edx - 0x7f]
cmp edi, eax
jae 0x788895
mov edi, eax
add ebx, 0x18
add esi, 0x18
cmp ebx, 0x8ec8
jne 0x788860
mov dl, byte [0x8eeb]
movsx eax, dl
cmp edi, eax
ja 0x788943
cmp byte [0x475], dl
jle 0x788943
mov byte [0x475], dl
cmp dword [0x8330], 0
jle 0x788943
call fcn.00784926
jmp 0x788943
push dword [ebx + 0x8f0c]
push dword [ebx + 0x8f08]
push 0x347300
push 0x4ca00
call fcn.00794ffc
mov eax, dword [ebx + 0x8f10]
add esp, 0x10
jmp 0x788948
push 0x3465c3
push 0
call fcn.00794ffc
mov eax, 1
pop ecx
pop ebx
jmp 0x788948
mov dword [0x8314], 0x3d
jmp 0x785369
push 0
call fcn.0077a479
mov eax, 1
pop edx
mov dword [0x8348], 0xffffffff
mov dword [0x8340], 0xffffffff
jmp 0x788948
mov eax, 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret