Function at 0x77f5d0
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x448
mov esi, edx
mov edi, ecx
mov eax, 0x514469d5
cmp dword [ebp + 0x28], 0x19
jne 0x77f70e
mov dword [esp + 0x40], esi
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
cmp dword [ebp + 0x2c], 0
je 0x77f636
add al, 0x64
movzx eax, al
cmp eax, 0x39
je 0x77f62d
cmp eax, 0x40
mov eax, dword [ebp + 0x2c]
mov dword [eax], 0
mov byte [esp + 0x6e], 8
mov byte [esp + 0x5f], 0x5c
cmp edx, 9
mov byte [esp + 0x6f], 0x2f
mov dword [esp + 0x50], 0x16
mov dword [esp + 0x7c], 0x124
mov dword [esp + 0x84], 0x8067ea
ja case.default.0x77f707
mov byte [esp + 0x82], al
mov byte [esp + 0x83], 0x65
mov byte [esp + 0x3f], 0x65
mov byte [esp + 0x7a], al
mov byte [esp + 0x2f], 0x65
mov byte [esp + 0x5e], al
mov byte [esp + 0x4e], 0x65
mov byte [esp + 0x57], al
mov byte [esp + 0x4f], 0x65
mov byte [esp + 0x2e], 0x65
mov byte [esp + 0x47], 0x65
mov ecx, 0x10
mov dword [esp + 0x48], 0xc
mov eax, 9
mov edx, 5
mov esi, 0xd
mov edi, 2
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x88], 0
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov byte [esp + 0x7b], 0x65
mov dword [esp + 0x38], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x30], 0
mov byte [esp + 0x37], 0x65
mov ebx, dword [ebp + 0x18]
jmp dword [ebx*4 + 0x7ec5f0]
mov ecx, dword [ebp + 8]
mov dword [ecx], 0
cmp dword [edi + 4], 0
sete dl
mov ecx, esi
and ecx, 1
inc ecx
xor ecx, esi
sete cl
movzx ecx, cl
cmp esi, ecx
jne 0x77f73d
mov ebx, 0x70000013
test dl, dl
jne 0x77fd67
add al, 0x93
movzx eax, al
cmp eax, 0x42
je 0x77f74a
cmp eax, 0x7a
cmp esi, ecx
mov byte [esp + 0x88], 0x36
mov al, 0x44
jne 0x77f796
movzx eax, al
cmp eax, 0x23
jne 0x77f82f
mov byte [esp + 0x84], 0x2e
lea eax, [esp + 0x434]
mov dword [esp], eax
call fcn.00692050
mov ebx, eax
and eax, 1
inc eax
xor eax, ebx
sete al
movzx eax, al
cmp ebx, eax
jne 0x77fd67
jmp 0x77f856
lea eax, [esp + 0x424]
mov dword [esp], eax
call fcn.00692030
mov ebx, eax
test ebx, ebx
jne 0x77fd67
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
je 0x77fd67
mov al, 0x37
movzx eax, al
cmp eax, 0x1c
je 0x77f8a7
cmp eax, 0x37
jne 0x77f8a7
mov dword [esp + 0x84], edi
mov al, 0x2c
jmp 0x77f8bf
mov ecx, 0xb
cmp edx, 0x66
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], eax
mov byte [esp + 0x4f], 0x65
mov byte [esp + 0x7a], al
mov byte [esp + 0x82], al
mov byte [esp + 0x83], 0x65
mov dword [esp + 0x74], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x88], 0
je 0x77fd71
jmp case.0x77f707.5
mov byte [esp + 0x84], 0x2e
lea eax, [esp + 0x434]
mov dword [esp], eax
call fcn.00692050
mov ebx, eax
test ebx, ebx
je 0x77f856
xor eax, eax
test al, al
je 0x77fd67
movzx eax, byte [esp + 0x84]
cmp eax, 0x2e
jne 0x77f961
mov byte [esp + 0x84], 0x45
mov eax, dword [edi + 4]
lea ecx, [esp + 0x434]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.0068e6c0
mov ebx, eax
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ebx, eax
jne 0x77fd67
jmp 0x77f997
mov dword [esp + 0x84], edi
cmp esi, 2
je 0x77fa79
mov al, 0x2c
imul esi, esi
and esi, 3
cmp esi, 2
je 0x77fa79
movzx eax, al
xor edi, edi
cmp eax, 0x2a
je 0x77f90a
mov esi, 0xffffffff
jmp 0x77f94b
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
add edi, eax
lea eax, [esp + 0x424]
mov dword [esp], eax
mov dword [esp + 4], 0xfffffff8
call fcn.0068e7a0
mov ebx, eax
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edi, eax
jb 0x77f8e0
jmp 0x77fa92
inc edi
lea eax, [esp + 0x424]
mov dword [esp], eax
mov dword [esp + 4], 0xfffffff8
call fcn.0068e7a0
mov ebx, eax
dec esi
mov eax, edi
and eax, 1
xor eax, esi
setne al
movzx eax, al
cmp edi, eax
jb 0x77f930
jmp 0x77fa92
mov byte [esp + 0x84], 0x45
mov eax, dword [edi + 4]
lea ecx, [esp + 0x434]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.0068e6c0
mov ebx, eax
test ebx, ebx
je 0x77f997
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
jne 0x77fd67
movzx eax, byte [esp + 0x84]
cmp eax, 0x69
mov esi, dword [edi]
mov ebx, edi
mov edi, dword [ebx + 4]
mov dword [esp], 6
call fcn.007b4100
lea ecx, [esp + 0x98]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov edi, ebx
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0
call fcn.007b3ad0
mov ebx, 0x700002bb
test eax, eax
jne 0x77fd67
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
lea esi, [esp + 0x98]
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], ecx
call fcn.007b3b60
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov ebx, 0x700002bb
cmp eax, ecx
jne 0x77fd67
mov dword [esp], esi
call fcn.007b3c60
test eax, eax
je 0x77fa44
xor eax, eax
test al, al
je 0x77fd67
mov al, 0x63
movzx eax, al
cmp eax, 0x63
jne 0x77fc19
mov eax, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
mov edx, eax
sub edx, ecx
movzx ecx, byte [esi + edx]
sub eax, ecx
mov dword [edi + 8], eax
jmp 0x77fc92
lea eax, [esp + 0x424]
mov dword [esp], eax
mov dword [esp + 4], 0xfffffff7
call fcn.0068e7a0
mov ebx, eax
test ebx, ebx
jne 0x77fd67
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
mov edi, dword [esp + 0x84]
je 0x77fd67
mov al, 0x2a
movzx eax, al
cmp eax, 9
je 0x77fb24
cmp eax, 0x2a
jne 0x77fb24
mov dword [esp], 6
call fcn.007b4100
lea ecx, [esp + 0x98]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x424]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 4], 0
call fcn.007b3ad0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov ebx, 0x700002bb
cmp eax, ecx
jne 0x77fd67
jmp 0x77fb73
mov dword [esp], 6
call fcn.007b4100
lea ecx, [esp + 0x98]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x424]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 4], 0
call fcn.007b3ad0
mov ebx, 0x700002bb
test eax, eax
jne 0x77fd67
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
lea esi, [esp + 0x98]
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], ecx
call fcn.007b3b60
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov ebx, 0x700002bb
cmp eax, ecx
jne 0x77fd67
mov al, 0x60
movzx eax, al
cmp eax, 3
jne 0x77fbd6
mov byte [esp + 0x83], 0x51
mov dword [esp], esi
call fcn.007b3c60
test eax, eax
jne 0x77fd67
jmp 0x77fbff
mov byte [esp + 0x83], 0x51
mov dword [esp], esi
call fcn.007b3c60
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x77fd67
movzx eax, byte [esp + 0x83]
cmp eax, 0x10
je 0x77fc65
cmp eax, 0x47
je 0x77fc14
cmp eax, 0x51
mov esi, dword [edi + 0xc]
jmp 0x77fc92
xor eax, eax
jmp 0x77fc50
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
mov edx, ecx
sbb edx, 0
movzx edx, byte [esi + edx]
sub ecx, edx
mov dword [edi + 8], ecx
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x77fc1d
jmp 0x77fc92
xor eax, eax
jmp 0x77fc7e
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add eax, ecx
mov esi, dword [edi + 0xc]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jb 0x77fc69
movzx eax, byte [esp + 0x88]
cmp eax, 0x44
jne 0x77fcc2
mov edx, dword [edi + 8]
test esi, esi
jne 0x77fcf8
mov eax, 3
sub eax, esi
xor eax, esi
je 0x77fcf8
test edx, edx
jne 0x77fcf8
mov eax, edx
not eax
and eax, 1
add eax, edx
jne 0x77fceb
jmp 0x77fcf8
mov edx, dword [edi + 8]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
test esi, esi
jne 0x77fcf8
mov ecx, esi
and ecx, 1
xor ecx, esi
not ecx
test ecx, ecx
je 0x77fcf8
movzx eax, al
cmp edx, eax
jne 0x77fcf8
mov eax, dword [ebp + 8]
mov dword [eax], 0
xor ebx, ebx
jmp 0x77fd67
mov dword [esp + 0x88], esi
mov esi, edx
xor edi, edi
jmp 0x77fd53
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add edi, eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [esp + 0x88]
mov dword [esp], eax
call fcn.00627290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov ebx, 0
mov eax, 0x700002bb
cmovne ebx, eax
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jb 0x77fd05
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ecx, 9
jne 0x77fd85
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb case.0x77f707.0
mov eax, 9
mov bl, byte [esp + 0x5f]
movzx ecx, bl
cmp ecx, 0x5c
jne 0x77fdea
xor eax, eax
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
jmp 0x77fdc2
mov bl, 0x35
cmp ecx, 2
adc eax, 0
mov esi, 0x29e
mov edi, 0x80767e
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb edx, edx
and edx, 1
cmp eax, edx
jb 0x77fdb0
mov dword [esp + 0x84], edi
mov dword [esp + 0x7c], esi
mov byte [esp + 0x5f], bl
jmp 0x77ff98
mov cl, byte [esp + 0x83]
mov byte [esp + 0x7b], cl
mov edi, dword [esp + 0x7c]
jmp 0x780083
mov edx, 3
mov ecx, eax
or ecx, 2
mov esi, eax
xor esi, 2
add esi, ecx
setne cl
movzx ecx, cl
add eax, ecx
mov esi, 0x211
mov edi, 0x80690e
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x77fe00
mov dword [esp + 0x84], edi
mov dword [esp + 0x7c], esi
mov byte [esp + 0x4e], bl
cmp edx, 3
mov bl, byte [esp + 0x4e]
je 0x77fe6d
mov eax, edx
and eax, 1
inc eax
xor eax, edx
je 0x77fe79
mov ecx, 0x117
mov edx, 0x806e6c
mov eax, 0x1c
jmp 0x780946
mov byte [esp + 0x83], bl
jmp 0x77ff98
mov byte [esp + 0x83], bl
jmp 0x77ff98
mov ecx, 1
mov bh, 0x2f
mov eax, edx
and eax, 1
xor eax, edx
cmp eax, 0xffffffff
setne al
movzx eax, al
add edx, eax
mov eax, edx
not eax
and eax, 1
add eax, edx
setne al
movzx eax, al
cmp edx, eax
jb 0x77fe90
mov byte [esp + 0x6f], bh
mov dword [esp + 0x7c], 0x2fa
mov dword [esp + 0x84], 0x806f83
mov al, byte [esp + 0x7b]
mov byte [esp + 0x2e], al
mov eax, 3
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
cmp ecx, eax
mov bl, byte [esp + 0x2e]
jne 0x77fefe
mov byte [esp + 0x83], bl
jmp 0x77ff98
xor eax, eax
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
jmp 0x77fe23
mov eax, 4
mov bl, 0x5c
cmp edx, 2
adc ecx, 0
mov edi, 0x29e
mov dword [esp + 0x84], 0x80767e
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb esi, esi
and esi, 1
cmp ecx, esi
jb 0x77ff10
mov dword [esp + 0x7c], edi
mov byte [esp + 0x5f], bl
jmp 0x780146
mov dword [esp + 0x7c], 0x14c
mov dword [esp + 0x84], 0x806cb4
mov byte [esp + 0x6e], 0x39
mov byte [esp + 0x83], bh
jmp 0x77ff98
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x7804dd
mov dword [esp + 0x7c], 0x10f
mov dword [esp + 0x84], 0x806b1f
mov byte [esp + 0x83], al
mov eax, 0xa
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x7800ae
mov eax, 1
mov byte [esp + 0x57], 0x5a
mov cl, byte [esp + 0x83]
mov byte [esp + 0x7b], cl
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x64], ecx
mov dl, byte [esp + 0x57]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
mov bh, byte [esp + 0x6f]
jne 0x780017
mov eax, 6
movzx ecx, dl
cmp ecx, 0x5a
jne 0x780115
mov cl, byte [esp + 0x7b]
mov byte [esp + 0x83], cl
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
jmp 0x7800c1
movzx eax, bh
cmp eax, 0x28
je 0x780165
xor edx, edx
cmp eax, 0x2f
je 0x77fea9
cmp eax, 0x76
jne 0x780186
mov bl, byte [esp + 0x5f]
jmp 0x78005b
mov eax, 7
mov bh, 0x28
mov ecx, edx
or ecx, 2
mov esi, edx
xor esi, 2
add esi, ecx
setne cl
movzx ecx, cl
add edx, ecx
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp edx, ecx
jb 0x780040
mov byte [esp + 0x6f], bh
mov edi, 0x2fa
mov dword [esp + 0x84], 0x806f83
xor ecx, ecx
cmp eax, 7
jne 0x77ff2d
mov edx, 3
sub edx, eax
xor edx, eax
je 0x77ff2d
mov dword [esp + 0x7c], edi
mov byte [esp + 0x5f], bl
mov al, byte [esp + 0x7b]
jmp 0x77ff91
mov edx, dword [esp + 0x84]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x7c], ecx
cmp eax, 6
je 0x7800ec
imul eax, eax
and eax, 3
cmp eax, 3
je 0x7800ec
mov dword [esp + 0x88], 0
jmp case.0x77f707.0
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x88], 0x700002d0
je case.0x77f707.0
mov eax, 0xf
xor ecx, ecx
test cl, cl
je 0x7801b0
jmp case.0x77f707.0
mov eax, 0xf
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jne 0x780146
imul ecx, ecx
and ecx, 3
mov dword [esp + 0x88], 0x700002d0
cmp ecx, 2
mov cl, byte [esp + 0x7b]
mov byte [esp + 0x83], cl
jb case.0x77f707.0
cmp eax, 4
je 0x7801a7
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov al, byte [esp + 0x7b]
mov byte [esp + 0x83], al
jne 0x7801d4
jmp 0x77ff98
mov eax, 9
mov edx, 0x2fa
mov esi, 0x806f83
mov cl, 0x1a
mov ch, byte [esp + 0x7b]
mov byte [esp + 0x83], ch
jmp 0x780284
mov dword [esp + 0x7c], 0x2fa
mov dword [esp + 0x84], 0x806f83
mov byte [esp + 0x6f], 0x76
mov al, byte [esp + 0x7b]
jmp 0x77ff91
mov al, byte [esp + 0x7b]
jmp 0x77ff91
cmp eax, 0xf
jne 0x780326
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x780326
mov al, byte [esp + 0x83]
mov byte [esp + 0x7b], al
lea eax, [esp + 0x94]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0063c500
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x88], 0x700002d1
cmp eax, ecx
jne 0x780343
mov eax, dword [ebp + 0x14]
lea ecx, [esp + 0x90]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.0063c500
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x88], 0x700002d2
cmp eax, ecx
jne 0x780343
mov cl, 0x1b
mov eax, 0xc
movzx ecx, cl
cmp ecx, 0x44
jne 0x780353
mov cl, byte [esp + 0x7b]
mov byte [esp + 0x83], cl
mov cl, byte [esp + 0x6f]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x84], esi
mov dword [esp + 0x7c], edx
mov byte [esp + 0x6f], cl
cmp eax, 9
jne 0x7802a9
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x77ff98
mov byte [esp + 0x82], 0x6e
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x14], edx
lea edx, [esp + 0x8c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0063c9d0
cmp dword [ebp + 0x2c], 0
sete cl
test eax, eax
mov edx, 0x700002d3
cmove edx, eax
mov dword [esp + 0x88], edx
jne case.0x77f707.0
test cl, cl
je 0x780686
jmp case.0x77f707.0
mov dword [esp + 0x7c], 0x14c
mov dword [esp + 0x84], 0x806cb4
mov byte [esp + 0x6e], 0x1f
jmp 0x77ff98
mov al, byte [esp + 0x7b]
mov byte [esp + 0x83], al
jmp case.0x77f707.0
mov edi, 4
mov esi, 0x700002d2
mov al, byte [esp + 0x7b]
mov byte [esp + 0x83], al
jmp 0x780590
cmp dword [ebp + 0x2c], 0
setne byte [esp + 0x88]
mov ebx, 0xf
mov byte [esp + 0x82], 0x6e
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x14], edx
lea edx, [esp + 0x8c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0063c9d0
movzx ecx, byte [esp + 0x88]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne cl
test eax, eax
mov edx, 0x700002d3
cmove edx, eax
mov dword [esp + 0x58], edx
jne 0x780401
xor byte [esp + 0x88], cl
je 0x780663
cmp ebx, 0xa
jne 0x780451
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
je 0x780451
xor esi, esi
mov edi, dword [esp + 0x60]
jmp 0x780436
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], edi
call fcn.0063bfd0
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x780420
jmp 0x7805c8
mov eax, dword [esp + 0x58]
mov dword [esp + 0x88], eax
jmp case.0x77f707.0
mov ecx, 4
mov bh, 0x5f
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add eax, edx
mov edx, dword [esp + 0x8c]
mov esi, dword [ebp + 0x2c]
mov dword [esi], edx
mov dword [esp + 0x88], 0
mov byte [esp + 0x82], bh
test eax, eax
jne 0x7804b6
mov edx, 3
sub edx, eax
xor edx, eax
jne 0x780470
mov al, byte [esp + 0x83]
mov byte [esp + 0x37], al
mov eax, dword [esp + 0x88]
mov dword [esp + 0x30], eax
cmp ecx, 4
mov al, byte [esp + 0x37]
mov edx, dword [esp + 0x30]
jne 0x77ff6f
mov dword [esp + 0x88], edx
mov byte [esp + 0x83], al
jmp case.0x77f707.0
mov dword [esp + 0x88], 0x70000038
mov byte [esp + 0x83], 0x65
mov eax, 0x10
mov esi, dword [esp + 0x94]
test esi, esi
jne 0x78053a
mov byte [esp + 0x7a], 1
mov ecx, 0x16
mov edx, 3
sub edx, esi
xor edx, esi
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x88]
mov dword [esp + 0x74], esi
jne 0x780800
jmp 0x78054e
mov dword [esp + 0x70], esi
mov byte [esp + 0x7a], 1
mov esi, dword [esp + 0x88]
mov dword [esp + 0x74], esi
cmp eax, 0x10
je 0x78057f
imul eax, eax
and eax, 3
cmp eax, 3
je 0x78057f
mov byte [esp + 0x82], 0x14
mov eax, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x2c]
mov dword [ecx], eax
mov dword [esp + 0x88], 0
jmp case.0x77f707.0
mov edi, 0xd
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call fcn.0063bfd0
cmp edi, 4
je 0x78036d
mov dl, byte [esp + 0x7a]
jmp 0x780817
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x7805c8
mov dword [esp + 0x58], esi
mov byte [esp + 0x5e], 0x2b
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
mov dword [esp + 0x60], ecx
jne 0x7808e2
mov eax, dword [esp + 0x74]
jmp 0x77fd69
mov eax, 0x15
mov bl, 8
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov edx, 0x14c
mov esi, 0x806cb4
test ecx, ecx
je 0x7805e0
mov dword [esp + 0x84], esi
mov dword [esp + 0x7c], edx
mov byte [esp + 0x6e], bl
mov byte [esp + 0x83], bh
mov esi, edi
mov dl, byte [esp + 0x7a]
cmp eax, 0x10
jne 0x780991
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x78099a
mov dword [esp + 0x58], esi
mov ebx, 0x15
mov byte [esp + 0x7a], 0x1f
mov eax, dword [esp + 0x90]
mov dword [esp + 0x60], eax
test eax, eax
je 0x780663
mov byte [esp + 0x5e], 0x2b
xor eax, eax
test al, al
je 0x7808e2
cmp ebx, 0xf
jne 0x7805c8
mov eax, 3
sub eax, ebx
xor eax, ebx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x88], eax
je 0x7805c8
xor eax, eax
mov bh, byte [esp + 0x82]
movzx ecx, bh
cmp ecx, 0x14
je 0x7804a0
cmp ecx, 0x57
je 0x780748
mov eax, 0x1c
mov edi, 3
cmp ecx, 0x6e
mov cl, byte [esp + 0x83]
mov byte [esp + 0x3f], cl
mov esi, dword [esp + 0x88]
mov dword [esp + 0x38], esi
je 0x78054e
cmp edi, 2
mov bh, byte [esp + 0x3f]
jne 0x78076c
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
je 0x78076c
mov eax, 0x11
mov bl, byte [esp + 0x6e]
movzx ecx, bl
cmp ecx, 8
je 0x78092d
cmp ecx, 0x1f
jne 0x77ff4e
xor ecx, ecx
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x38]
jmp 0x7805ff
mov ecx, 9
mov bh, 0x57
add edx, esi
setne dl
movzx edx, dl
add eax, edx
mov edx, dword [esp + 0x8c]
mov esi, dword [ebp + 0x2c]
mov dword [esi], edx
mov dword [esp + 0x88], 0
mov edx, eax
or edx, 2
mov esi, eax
xor esi, 2
mov edi, edx
add edi, esi
setne bl
movzx edi, bl
cmp eax, edi
jb 0x780720
mov byte [esp + 0x82], bh
jmp 0x77fd71
mov dword [esp + 0x48], 0x19
mov byte [esp + 0x82], 0x6e
mov eax, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x2c]
mov dword [ecx], eax
mov byte [esp + 0x47], bh
cmp dword [esp + 0x48], 0xc
mov al, byte [esp + 0x47]
jne 0x780894
mov dword [esp + 0x7c], 0x86
mov dword [esp + 0x84], 0x806c2e
mov dword [esp + 0x50], 0xc
mov byte [esp + 0x4f], al
cmp dword [esp + 0x50], 0xc
mov cl, byte [esp + 0x4f]
je 0x7808c3
xor eax, eax
test al, al
mov esi, 0
jne 0x7808cf
mov eax, 0xe
movzx edx, cl
cmp edx, 3
je 0x780939
mov al, cl
mov ecx, 0xa
cmp edx, 0x49
je 0x7804ed
mov byte [esp + 0x83], al
cmp ecx, 0xa
je 0x7808ab
xor eax, eax
test al, al
jne 0x7808ab
mov dl, byte [esp + 0x7a]
movzx ecx, dl
cmp ecx, 0x1f
je 0x7805a2
mov eax, 0x10
cmp ecx, 0x69
jne 0x78061f
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x7805c8
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x7805c8
mov dword [esp + 0x58], esi
mov dword [esp + 0x60], ecx
mov esi, 0x12
mov byte [esp + 0x7a], 0x69
mov byte [esp + 0x5e], 0x2b
mov al, byte [esp + 0x83]
mov byte [esp + 0x2f], al
cmp esi, 0xd
mov al, byte [esp + 0x2f]
jne 0x7808db
imul esi, esi
and esi, 3
cmp esi, 2
mov byte [esp + 0x83], al
jb 0x77ff98
jmp 0x7808e2
mov dword [esp + 0x88], 0
mov byte [esp + 0x83], al
jmp case.0x77f707.0
mov dword [esp + 0x88], 0x70000038
mov byte [esp + 0x83], 0x49
jmp case.0x77f707.0
mov byte [esp + 0x83], cl
jmp 0x77ff98
mov byte [esp + 0x83], cl
jmp 0x77ff98
mov byte [esp + 0x83], al
mov ebx, 0xa
movzx eax, byte [esp + 0x5e]
cmp eax, 0x2b
je 0x780401
xor esi, esi
mov edi, 3
mov ebx, dword [esp + 0x60]
jmp 0x78091a
inc esi
mov dword [esp], ebx
call fcn.0063bfd0
dec edi
test esi, esi
jne 0x7805c8
mov eax, esi
xor eax, edi
jne 0x780910
jmp 0x7805c8
mov byte [esp + 0x83], bh
jmp 0x7801b0
mov bl, cl
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x84], edx
mov dword [esp + 0x7c], ecx
cmp eax, 0xe
jne 0x780979
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x780985
mov dword [esp + 0x88], 0x70000038
mov byte [esp + 0x83], 3
jmp case.0x77f707.0
mov byte [esp + 0x83], bl
jmp 0x77ff98
mov byte [esp + 0x83], bl
jmp 0x77ff98
mov byte [esp + 0x7a], dl
jmp 0x77ff98
mov byte [esp + 0x7a], dl
jmp 0x77ff98