Function at 0x51a4f0
Capabilities:
Encode data using base64
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x230
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
mov ebx, 0x7e325fdd
cmp eax, 0xb
je 0x51a5d0
cmp eax, 0xc
je 0x51a878
cmp eax, 0xd
jne 0x51af67
test edx, edx
mov eax, 0x700002bb
je 0x51b6a9
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x51b6a9
mov ebx, dword [edx]
mov edi, dword [edx + 4]
mov dword [esp + 0x194], edi
mov dword [esp + 0x190], ebx
lea eax, [esp + 0x190]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00419d10
xor edx, edx
div dword [0x80dc30]
mov eax, dword [0x80dc2c]
mov eax, dword [eax + edx*8]
test eax, eax
je 0x51b346
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x51b350
nop word cs:[eax + eax]
mov esi, dword [eax + 0xc]
mov edx, dword [esi + 0xc]
xor edx, edi
mov ecx, dword [esi + 8]
xor ecx, ebx
or ecx, edx
je 0x51b26f
mov cl, 1
test cl, cl
je 0x51b26f
mov eax, dword [eax + 4]
test eax, eax
jne 0x51a5a0
mov eax, 0x700002bb
jmp 0x51b6a9
lea eax, [ebx + ebx - 0x7e325fd9]
xor eax, 0x7e325ff8
lea ecx, [eax + ebx - 0x7e325fd9]
xor ecx, ebx
add cl, 0x78
mov dword [esp + 0x60], ecx
mov dword [esp + 0xd4], 0x700002bb
test edx, edx
jne 0x51aff6
mov ecx, 3
sub ecx, edx
xor ecx, edx
je 0x51aff6
add ebx, 0x81cda027
mov dword [esp + 0x178], ebx
mov byte [esp + 0x93], al
mov byte [esp + 0xa3], al
mov byte [esp + 0x99], al
mov byte [esp + 0xcf], al
mov byte [esp + 0x14d], al
mov byte [esp + 0x14f], al
mov byte [esp + 0x14e], al
mov byte [esp + 0x137], al
mov byte [esp + 0x14b], al
mov byte [esp + 0x13f], al
mov byte [esp + 0x14c], al
mov byte [esp + 0xb7], al
mov byte [esp + 0xf7], al
mov byte [esp + 0x9a], al
mov dword [esp + 0x140], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x164], eax
mov byte [esp + 0xab], al
mov byte [esp + 0xe7], al
mov byte [esp + 0x127], al
mov byte [esp + 0xe5], al
mov byte [esp + 0x57], al
mov byte [esp + 0x154], al
mov byte [esp + 0xe6], al
mov byte [esp + 0x8b], al
mov byte [esp + 0x77], al
mov byte [esp + 0x9b], al
mov byte [esp + 0xc7], al
mov dword [esp + 0x180], ebx
mov dword [esp + 0xf0], eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x16c], esi
cmp dword [esp + 0x178], 4
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0x108]
mov ebx, dword [esp + 0x150]
je 0x51b35a
xor eax, eax
test al, al
jne 0x51b35a
mov dword [esp + 0x144], edx
mov eax, 0x1a
mov byte [esp + 0x67], 0x46
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x44], edx
mov ecx, 0xff000000
and ecx, dword [edx]
cmp ecx, 0x3000000
mov ecx, ebx
jne 0x51d633
jmp 0x51c87a
mov edx, dword [ebp + 0x30]
mov eax, dword [edx + 0x14]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x51afef
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x17c], eax
xor ebx, 0x7e325fd0
lea eax, [edx + 0x10]
mov dword [esp + 0x178], eax
lea eax, [edx + 0x1c]
mov dword [esp + 0x160], eax
lea eax, [edx + 0x20]
mov dword [esp + 0x15c], eax
mov byte [esp + 0x158], al
mov byte [esp + 0x180], al
mov byte [esp + 0x188], al
mov byte [esp + 0x16c], al
mov byte [esp + 0x168], al
mov byte [esp + 0x174], al
mov dword [esp + 0x170], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x18c], eax
jmp 0x51a92e
mov ebx, 0x1a
mov eax, dword [esp + 0x170]
mov eax, dword [eax]
cmp ebx, 0xd
je 0x51a942
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jne 0x51ace1
mov byte [esp + 0x168], 0x1d
mov byte [esp + 0x180], 0x67
mov byte [esp + 0x158], 0x74
mov byte [esp + 0x174], 0x37
mov byte [esp + 0x16c], 0x25
mov byte [esp + 0x188], 1
mov eax, dword [ebp + 0x30]
lea ecx, [eax + 0x24]
mov dword [esp + 0x170], ecx
mov ecx, dword [esp + 0x17c]
lea edx, [ecx + 0xa8]
mov dword [esp + 0x184], edx
lea eax, [eax + 0x40]
mov dword [esp + 0x164], eax
lea eax, [ecx + 0x1c4]
mov dword [esp + 0x154], eax
xor edi, edi
jmp 0x51abb0
mov byte [esp + 0x188], 1
mov eax, dword [esp + 0x178]
mov eax, dword [eax]
mov eax, dword [eax + edi*4]
mov edx, dword [esp + 0x17c]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00423af0
mov esi, eax
test esi, esi
jne 0x51aa0a
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
mov eax, edi
jne 0x51af10
mov eax, dword [esi + 0x2c]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x51af0e
mov eax, dword [esp + 0x160]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
jne 0x51ace1
movzx edx, byte [esp + 0x16c]
cmp edx, 0x1a
je 0x51aa90
cmp edx, 0x1f
je 0x51aaa0
mov ecx, 0x1f
cmp edx, 0x3e
jne 0x51ac1d
mov ecx, 0x10
mov byte [esp + 0x16c], 0x1f
mov edx, dword [esp + 0x15c]
cmp dword [edx], 0xffffffff
je 0x51ab86
xor edx, edx
test dl, dl
je 0x51aae0
jmp 0x51ab86
mov byte [esp + 0x16c], 0x3e
jmp 0x51ac38
mov ecx, 9
mov ebx, 0xf
mov byte [esp + 0x16c], 0x1a
mov eax, dword [esp + 0x15c]
mov eax, dword [eax]
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
add edx, eax
mov eax, edi
jne 0x51acaf
jmp 0x51af3f
mov eax, 0x14
movzx ecx, byte [esp + 0x174]
cmp ecx, 0x14
je 0x51ae46
mov byte [esp + 0x174], 0x37
mov eax, dword [esp + 0x170]
mov eax, dword [eax]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
je 0x51aee0
call fcn.00449410
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x51a920
movzx ecx, byte [esp + 0x158]
cmp ecx, 0x56
je 0x51ab70
mov eax, 0x14
cmp ecx, 0x74
mov edx, dword [esp + 0x18c]
je 0x51ade4
jmp 0x51ae90
mov ecx, 3
mov byte [esp + 0x158], 0x74
mov eax, dword [esp + 0x15c]
mov eax, dword [eax]
cmp ecx, 3
je 0x51ace1
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x51aee0
jmp 0x51ace1
movzx eax, byte [esp + 0x188]
cmp eax, 1
je 0x51a9c0
cmp eax, 0x14
jne 0x51ac60
mov ebx, 6
mov byte [esp + 0x188], 0x15
mov eax, dword [esp + 0x178]
mov eax, dword [eax]
mov eax, dword [eax + edi*4]
mov edx, dword [esp + 0x17c]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00423af0
mov esi, eax
test esi, esi
jne 0x51ae20
mov ecx, 0x10
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x51ae20
cmp ecx, 0x10
je 0x51af0e
xor eax, eax
test al, al
jne 0x51af0e
mov byte [esp + 0x16c], 0x25
mov eax, dword [esp + 0x15c]
mov eax, dword [eax]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
jne 0x51aae0
jmp 0x51aee0
mov ebx, 0x1c
mov byte [esp + 0x188], 0x14
mov eax, dword [esp + 0x178]
mov eax, dword [eax]
mov eax, dword [eax + edi*4]
mov edx, dword [esp + 0x17c]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00423af0
mov esi, eax
test esi, esi
jne 0x51acaf
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
mov eax, edi
jne 0x51af10
cmp ebx, 0xf
jne 0x51aa0a
mov eax, ebx
not eax
and eax, 1
add eax, ebx
jne 0x51aae0
jmp 0x51aa0a
mov byte [esp + 0x158], 0x72
mov eax, dword [esp + 0x15c]
mov eax, dword [eax]
movzx ecx, byte [esp + 0x180]
cmp ecx, 5
je 0x51ad20
cmp ecx, 0x3c
jne 0x51ad50
mov ecx, 0xf
mov bl, 5
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp eax, edx
jne 0x51ad93
jmp 0x51ad80
mov bl, 0x3c
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x51ad93
mov byte [esp + 0x180], 0x3c
jmp 0x51aee0
mov ecx, 0x12
mov bl, 0x67
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp eax, edx
jne 0x51ad80
mov byte [esp + 0x180], 0x67
jmp 0x51aee0
cmp ecx, 0xf
je 0x51aeb0
xor eax, eax
test al, al
jne 0x51aec0
mov eax, dword [esp + 0x164]
mov eax, dword [eax]
mov dword [esp + 0x18c], eax
test eax, eax
jne 0x51ae10
mov byte [esp + 0x180], bl
mov eax, 6
movzx ecx, byte [esp + 0x168]
cmp ecx, 0x1d
je 0x51ae90
mov ebx, 0x16
cmp ecx, 0x68
jne 0x51ae20
mov eax, 4
mov byte [esp + 0x168], 0x1d
mov ecx, dword [esp + 0x154]
mov edx, dword [ecx]
cmp eax, 4
jne 0x51acd0
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x51aee9
jmp 0x51acd0
mov byte [esp + 0x180], bl
jmp 0x51ae80
cmp ebx, 6
je 0x51aa0a
mov eax, 5
mov byte [esp + 0x168], 0x2e
mov ecx, dword [esp + 0x154]
mov ecx, dword [ecx]
mov dword [esp + 0x18c], ecx
cmp eax, 5
je 0x51ae80
imul eax, eax
and eax, 3
cmp eax, 3
je 0x51ae80
mov byte [esp + 0x174], 0x14
mov eax, dword [esp + 0x170]
mov eax, dword [eax]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
jmp 0x51ab10
mov edx, dword [esp + 0x18c]
jmp 0x51aee9
cmp eax, 6
jne 0x51aed0
mov byte [esp + 0x168], 0x68
mov eax, dword [esp + 0x154]
mov edx, dword [eax]
jmp 0x51aee9
mov byte [esp + 0x180], bl
jmp 0x51aee0
mov byte [esp + 0x180], bl
jmp 0x51aee0
mov byte [esp + 0x158], 0x56
jmp 0x51acd8
mov eax, dword [esp + 0x184]
mov edx, dword [eax]
mov dword [esp + 0x18c], edx
mov eax, dword [esi + 0x34]
mov ecx, eax
and ecx, 0xfffffffe
or eax, 1
test edx, edx
cmove eax, ecx
mov dword [esi + 0x34], eax
test al, 5
setne al
movzx eax, al
mov dword [esi + 0x38], eax
mov eax, edi
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov edi, eax
adc edi, 0
mov ecx, dword [ebp + 0x30]
cmp edi, dword [ecx + 0x14]
jb 0x51abb0
mov ecx, 3
mov edx, edi
and edx, 1
inc edx
xor edx, edi
je 0x51abb0
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
cmp ecx, 3
jne 0x51af60
test edx, edx
mov edi, eax
je 0x51aee0
jmp 0x51afef
mov edi, eax
jmp 0x51aee0
mov esi, 0x7e325fdd
lea ebx, [esi - 0x7e325fd6]
mov al, bl
add al, 0x6e
mov byte [esp + 0x18c], al
mov al, bl
add al, 0xfb
mov byte [esp + 0x180], al
mov al, bl
add al, 0x36
mov byte [esp + 0x178], al
mov eax, dword [edx]
mov dword [esp + 0x174], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x170], ecx
mov dword [esp + 0x224], ecx
mov dword [esp + 0x220], eax
lea eax, [esp + 0x220]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00419d10
xor edx, edx
div dword [0x80dc30]
mov eax, dword [0x80dc2c]
mov ecx, dword [eax + edx*8]
test ecx, ecx
je 0x51b264
mov dword [esp + 0x17c], eax
jmp 0x51baff
xor eax, eax
jmp 0x51b6a9
mov byte [esp + 0x154], cl
mov byte [esp + 0xe5], cl
mov byte [esp + 0x93], cl
mov byte [esp + 0xcf], cl
mov byte [esp + 0x14d], cl
mov byte [esp + 0x14f], cl
mov byte [esp + 0x14e], cl
mov byte [esp + 0x137], cl
mov byte [esp + 0x14b], cl
mov byte [esp + 0x13f], cl
mov byte [esp + 0x14c], cl
mov byte [esp + 0xe6], cl
mov byte [esp + 0x77], cl
mov byte [esp + 0xb7], cl
mov dword [esp + 0x140], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x184], ecx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x160], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0xec], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x110], ecx
mov byte [esp + 0xf7], cl
mov byte [esp + 0x57], cl
mov byte [esp + 0xa3], cl
mov byte [esp + 0x99], cl
mov byte [esp + 0x67], cl
mov byte [esp + 0x8b], cl
mov byte [esp + 0x9b], cl
mov byte [esp + 0xc7], cl
mov byte [esp + 0x9a], cl
mov byte [esp + 0xe7], cl
mov byte [esp + 0x127], cl
mov byte [esp + 0xab], cl
mov dword [esp + 0x180], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x48], edi
cmp eax, 0xd
mov ecx, dword [esp + 0xd0]
mov edi, dword [esp + 0x11c]
je 0x51b366
imul eax, eax
and eax, 3
cmp eax, 2
je 0x51b366
mov dword [esp + 0x144], edx
mov esi, 6
mov eax, dword [esp + 0x60]
movzx ecx, al
cmp ecx, 0x11
je 0x51b5c3
mov eax, 0xd
mov edx, 0x12
cmp ecx, 0x15
mov esi, dword [esp + 0x110]
je 0x51e012
jmp 0x51df0f
add esi, 0x81cda042
jmp 0x51b984
test esi, esi
mov eax, 0x700002bb
je 0x51b6a9
mov al, 0x39
movzx eax, al
cmp eax, 0x39
jne 0x51b425
mov eax, dword [ebp + 8]
mov edi, eax
mov dword [esp], edi
mov dword [esp + 4], 0x4ae670
call fcn.004117f0
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0x1a0]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], esi
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], 0x38
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.0058d3a0
lea eax, [esi + 0x14]
mov dword [esp + 0x188], eax
mov eax, dword [esi + 0x14]
mov ecx, dword [edi + 8]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00592c10
mov dword [esi + 0x14], 0
lea eax, [esi + 0x18]
mov dword [esp + 4], eax
mov dword [esp], 0x80dc24
call fcn.007c5260
lea eax, [esi + 0x28]
mov dword [esp + 4], eax
mov dword [esp], 0x80dc2c
call fcn.007c5760
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x51b53d
lea eax, [esi + 0x10]
mov dword [esp + 0x18c], eax
jmp 0x51b4e6
mov eax, 0x700002bb
jmp 0x51b6a9
mov eax, 0x700002bb
jmp 0x51b6a9
mov eax, dword [esp + 0xd4]
jmp 0x51d341
mov byte [esp + 0xab], 0x26
mov eax, dword [ecx]
mov dword [esp + 0x94], eax
mov eax, dword [edx]
mov dword [esp + 0x174], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x170], eax
mov dword [esp + 0x144], edx
mov eax, dword [0x7dc5d4]
mov dword [esp + 0x218], eax
movsd xmm0, qword [0x7dc5cc]
movsd qword [esp + 0x210], xmm0
movsd xmm0, qword [0x7dc5c4]
movsd qword [esp + 0x208], xmm0
mov edx, dword [esp + 0x48]
test edx, edx
sete al
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
setne bl
and bl, al
mov esi, dword [esp + 0x5c]
test esi, esi
sete al
mov ecx, esi
and ecx, 1
inc ecx
xor ecx, esi
sete cl
or cl, al
mov byte [esp + 0x99], cl
movzx eax, cl
cmp eax, 1
mov dword [esp + 0x120], 0x700002bb
jne 0x51b5eb
mov ecx, 0xe
test bl, bl
mov byte [esp + 0xa3], bl
mov esi, edx
jne 0x51d24d
jmp 0x51da7a
mov eax, dword [ebp + 8]
mov edi, eax
mov dword [esp], edi
mov dword [esp + 4], 0x4ae670
call fcn.004117f0
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0x1a0]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], esi
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], 0x38
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.0058d3a0
lea eax, [esi + 0x14]
mov dword [esp + 0x188], eax
mov eax, dword [esi + 0x14]
mov ecx, dword [edi + 8]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00592c10
mov dword [esi + 0x14], 0
lea eax, [esi + 0x18]
mov dword [esp + 4], eax
mov dword [esp], 0x80dc24
call fcn.007c5260
lea eax, [esi + 0x28]
mov dword [esp + 4], eax
mov dword [esp], 0x80dc2c
call fcn.007c5760
lea eax, [esi + 0x10]
mov dword [esp + 0x18c], eax
mov ebx, dword [esi + 0x10]
test ebx, ebx
jne 0x51b4e6
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
jne 0x51b53d
xor edi, edi
jmp 0x51b527
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
mov dword [esp + 4], 0x4ddaa0
call fcn.007c56d0
mov dword [esp], ebx
call fcn.004936c0
mov eax, dword [esp + 0x18c]
mov dword [eax], 0
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edi, eax
jb 0x51b4f0
mov bl, 0x21
mov edi, dword [esp + 0x188]
mov eax, dword [edi]
test eax, eax
je 0x51b567
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x51b567
mov dword [esp], eax
call fcn.005926b0
mov dword [edi], 0
movzx eax, bl
cmp eax, 0x21
jne 0x51b57e
mov dword [esp], esi
call fcn.004936c0
xor eax, eax
jmp 0x51b6a9
xor edi, edi
jmp 0x51b5a9
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp], esi
call fcn.004936c0
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx ecx, al
xor eax, eax
cmp edi, ecx
jb 0x51b590
jmp 0x51b6a9
mov bl, byte [esp + 0x14c]
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0x108]
mov edi, dword [esp + 0x114]
jmp 0x51ee88
mov byte [esp + 0xa3], bl
mov esi, edx
jmp 0x51da7a
mov edi, 0xb
mov byte [esp + 0x178], 0x3d
mov edx, dword [edx + 4]
test edx, edx
je 0x51b62a
mov ecx, edx
mov dword [esp + 0x184], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x51b910
jmp 0x51b74c
mov dword [esp + 0x184], edx
jmp 0x51b74c
mov ebx, dword [ecx + 0xc]
mov dword [esp + 0x184], ecx
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
xor edx, dword [esp + 0x170]
mov esi, ecx
xor esi, dword [esp + 0x174]
or esi, edx
mov byte [esp + 0x180], 0x60
je 0x51b671
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x51b805
mov esi, 9
test ebx, ebx
je 0x51baa7
mov ecx, 1
xor edx, edx
test dl, dl
mov edi, ebx
jne 0x51baa7
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
je 0x51badb
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x188], 0x15
mov byte [esp + 0x18c], 0x75
add ebx, edx
setne al
movzx eax, al
add esi, eax
mov eax, dword [ebp + 0x10]
mov ecx, eax
mov eax, dword [ecx + 0x1a0]
mov ecx, dword [ecx + 0x3ec]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov ecx, edi
mov edx, dword [ebp + 8]
call fcn.00572ee0
mov ebx, esi
or ebx, 2
mov edx, esi
xor edx, 2
mov ecx, ebx
add ecx, edx
setne cl
movzx ecx, cl
cmp esi, ecx
jb 0x51b6c0
mov ebx, dword [esp + 0x17c]
mov edi, dword [esp + 0x188]
cmp edi, 0xb
jne 0x51b6a9
mov ecx, 3
sub ecx, edi
xor ecx, edi
jne 0x51bab0
jmp 0x51b6a9
mov byte [esp + 0x178], 0x45
mov edx, dword [edx + 4]
test edx, edx
je 0x51b792
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
mov dword [esp + 0x184], edx
jne 0x51b910
jmp 0x51bab0
mov dword [esp + 0x184], edx
jmp 0x51bab0
mov byte [esp + 0x178], 0x33
mov edx, dword [edx + 4]
mov dword [esp + 0x184], edx
test edx, edx
je 0x51bab0
xor ecx, ecx
test cl, cl
je 0x51b910
jmp 0x51bab0
mov byte [esp + 0x178], 0x7d
mov edx, dword [esp + 0x184]
mov edx, dword [edx + 4]
test edx, edx
jne 0x51b7f9
mov ecx, edx
or ecx, 2
mov dword [esp + 0x184], edx
xor edx, 2
add edx, ecx
jne 0x51bab0
jmp 0x51b910
mov dword [esp + 0x184], edx
jmp 0x51b910
movzx ecx, byte [esp + 0x178]
cmp ecx, 0x33
je 0x51b7c7
cmp ecx, 0x3d
mov edx, dword [esp + 0x184]
je 0x51b79e
cmp ecx, 0x45
je 0x51b769
jmp 0x51b5f9
cmp ecx, 0x60
mov ecx, dword [esp + 0x184]
jne 0x51b937
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
xor edx, dword [esp + 0x170]
mov esi, ecx
xor esi, dword [esp + 0x174]
or esi, edx
mov byte [esp + 0x180], 0x3a
jne 0x51b805
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
jne 0x51b671
jmp 0x51b805
mov ecx, dword [esp + 0x184]
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
xor edx, dword [esp + 0x170]
mov esi, ecx
xor esi, dword [esp + 0x174]
or esi, edx
mov esi, 0xe
mov byte [esp + 0x180], 0x2d
je 0x51b8b4
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x51b805
cmp esi, 0xe
jne 0x51b6a9
mov ecx, esi
and ecx, 1
xor ecx, esi
not ecx
test ecx, ecx
jne 0x51b671
jmp 0x51b6a9
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
xor edx, dword [esp + 0x170]
mov esi, ecx
xor esi, dword [esp + 0x174]
or esi, edx
mov byte [esp + 0x180], 0x14
jne 0x51b805
mov edx, 3
sub edx, ecx
xor edx, ecx
jne 0x51b671
jmp 0x51b805
mov dl, byte [esp + 0x180]
movsx ecx, dl
cmp ecx, 0x39
jg 0x51b96c
movzx ecx, dl
cmp ecx, 2
je 0x51b874
cmp ecx, 0x2d
mov ecx, dword [esp + 0x184]
je 0x51b8d3
mov dword [esp + 0x184], ecx
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
xor edx, dword [esp + 0x170]
mov esi, ecx
xor esi, dword [esp + 0x174]
or esi, edx
mov byte [esp + 0x180], 2
je 0x51b861
jmp 0x51b805
mov esi, 0x10
movzx ecx, dl
cmp ecx, 0x3a
jne 0x51b82c
mov ecx, dword [esp + 0x184]
cmp esi, 0x10
jne 0x51b9a4
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x51b636
mov dword [esp + 0x184], ecx
jmp 0x51bab0
mov dword [esp + 0x184], ecx
jmp 0x51bab0
mov esi, 0x1b
mov byte [esp + 0x18c], 0x78
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
add ebx, eax
mov eax, dword [ebp + 0x10]
mov ecx, eax
mov eax, dword [ecx + 0x1a0]
mov ecx, dword [ecx + 0x3ec]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov ecx, edi
mov edx, dword [ebp + 8]
call fcn.00572ee0
mov ecx, 3
sub ecx, ebx
xor ecx, ebx
setne cl
movzx ecx, cl
cmp ebx, ecx
jb 0x51b9b0
mov ebx, dword [esp + 0x17c]
jmp 0x51b8b4
cmp ecx, 0x75
jne 0x51ba4a
xor esi, esi
mov dword [esp + 0x188], ecx
jmp 0x51b726
mov esi, 0x17
mov byte [esp + 0x18c], 0x46
mov eax, dword [ebp + 0x10]
mov ecx, eax
mov eax, dword [ecx + 0x1a0]
mov ecx, dword [ecx + 0x3ec]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov ecx, edi
mov edx, dword [ebp + 8]
call fcn.00572ee0
mov ebx, dword [esp + 0x17c]
cmp esi, 9
jne 0x51b6a9
mov ecx, 0xd
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x9c]
mov eax, edx
and eax, 1
inc eax
xor eax, edx
sete al
movzx esi, al
xor edi, edi
mov eax, 0x700002bb
cmp edx, esi
je 0x51b68f
mov dword [esp + 0x17c], ebx
mov ebx, 0xa
movzx ecx, byte [esp + 0x18c]
cmp ecx, 0x46
jne 0x51ba37
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x184], ecx
cmp ebx, 7
je 0x51bb1c
mov ecx, ebx
and ecx, 1
inc ecx
xor ecx, ebx
je 0x51bb28
xor ebx, ebx
jmp 0x51ba18
mov ebx, dword [esp + 0x17c]
jmp 0x51b910
mov ebx, dword [esp + 0x17c]
jmp 0x51b910
mov esi, 0x13
mov al, 0x15
mov dword [esp + 0x60], eax
mov byte [esp + 0x9a], 0x1b
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x1f8], 0
movsd xmm0, qword [0x7dc5bc]
movsd qword [esp + 0x1f0], xmm0
movsd xmm0, qword [0x7dc5b4]
movsd qword [esp + 0x1e8], xmm0
movsd xmm0, qword [0x7dc5ac]
movsd qword [esp + 0x1e0], xmm0
mov edi, dword [esp + 0x144]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004125d0
lea eax, [edi + 0x9c]
mov dword [esp + 0xd0], eax
cmp dword [edi + 0x9c], 0
mov ebx, dword [esp + 0x10c]
mov edi, dword [esp + 0x120]
mov ecx, dword [esp + 0x160]
je 0x51e128
mov dword [esp + 0x160], ecx
xorpd xmm0, xmm0
movapd xmmword [esp + 0x1d0], xmm0
movapd xmmword [esp + 0x1c0], xmm0
movapd xmmword [esp + 0x1b0], xmm0
movapd xmmword [esp + 0x1a0], xmm0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1e0], 3
mov ecx, dword [esp + 0x144]
lea esi, [ecx + 8]
mov eax, dword [ecx + 8]
mov dword [esp + 0x1e8], eax
mov eax, dword [ecx + 0x1a0]
mov dword [esp + 0x1ec], eax
lea eax, [esp + 0x1fc]
mov dword [esp + 4], eax
lea eax, [esp + 0x1e0]
mov dword [esp + 0x6c], eax
mov dword [esp], eax
call fcn.00594ba0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x51bd36
mov dword [esp + 0x10c], ebx
mov al, 0x49
movzx eax, al
cmp eax, 0x6f
je 0x51bd71
mov dword [esp + 0x120], edi
cmp eax, 0x70
jne 0x51be00
lea edi, [esp + 0x1e0]
lea ebx, [esp + 0x1a0]
mov dword [esp + 0x1e0], 4
mov eax, dword [esp + 0x1fc]
lea ecx, [esp + 0x1f8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov edx, dword [esp + 0x1f8]
mov dword [esp + 0x15c], 0
cmp eax, ecx
jne 0x51be40
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x4c], esi
mov byte [esp + 0x14c], 6
test edx, edx
je 0x51be5d
mov eax, edx
or eax, 2
mov ecx, edx
mov dword [esp + 0x58], edx
xor ecx, 2
add ecx, eax
mov dword [esp + 0x12c], 0
jne 0x51c25f
jmp 0x51e9f6
mov dword [esp + 0x120], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x10c], ebx
lea eax, [esp + 0x1a0]
mov dword [esp + 0x68], eax
mov dword [esp + 0x160], 0x7000002b
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
jmp 0x51d5ad
mov dword [esp + 0x120], edi
mov dword [esp + 0x4c], esi
lea eax, [esp + 0x1e0]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x1a0]
mov dword [esp + 0x68], eax
mov byte [esp + 0x14c], 6
mov dword [esp + 0x1e0], 4
mov eax, dword [esp + 0x1fc]
lea ecx, [esp + 0x1f8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x58], ecx
test ecx, ecx
setne dl
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dh
mov dword [esp + 0x15c], 0
test eax, eax
jne 0x51e9f6
mov ecx, 0x1f
or dl, dh
jne 0x51c1e7
jmp 0x51e9f6
mov dword [esp + 0x4c], esi
lea eax, [esp + 0x1e0]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x1a0]
mov dword [esp + 0x68], eax
mov eax, 0xd
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x12c], ecx
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
jmp 0x51eba0
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], edx
mov byte [esp + 0x14c], 6
jmp 0x51e9f6
mov dword [esp + 0x58], edx
jmp 0x51e9f6
mov byte [esp + 0x13f], 0x1b
mov byte [esp + 0x14b], 0x76
mov byte [esp + 0x137], 0x69
mov byte [esp + 0x14e], 0x6a
mov byte [esp + 0x14f], 0x7b
mov byte [esp + 0x14d], 0x62
add edi, esi
setne bl
movzx edi, bl
add esi, edi
mov dword [esp + 0x140], eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x130], edx
mov edi, esi
not edi
and edi, 1
mov ebx, esi
add ebx, edi
setne bl
movzx ebx, bl
cmp esi, ebx
jb 0x51be70
mov eax, dword [esp + 0x58]
jmp 0x51c4cc
mov byte [esp + 0x14d], 0x62
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x104], eax
jmp 0x51ec1b
mov byte [esp + 0x14f], 0x39
mov eax, dword [esp + 0xc8]
mov eax, dword [eax]
mov dword [esp + 0x8c], eax
and eax, 0xff000000
cmp eax, 0x3000000
mov edx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
jne 0x51ec6e
mov dword [esp + 0x15c], edx
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x8c]
mov dword [eax], ecx
lea eax, [esp + 0x19c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 8], 8
mov dword [esp + 4], 0
call fcn.005938f0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x51c0d8
mov eax, dword [esp + 0x138]
mov eax, dword [eax]
cmp eax, 0x66656964
jne 0x51c0e9
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x51c0e9
movzx eax, byte [esp + 0x137]
cmp eax, 0x21
mov ecx, dword [esp + 0x130]
je 0x51c0fa
mov dword [esp + 0x158], edi
cmp eax, 0x69
jne 0x51c10b
mov byte [esp + 0x137], 0x69
mov edi, dword [ecx]
call fcn.004233f0
mov dword [eax], edi
mov esi, eax
mov dword [esi + 8], 3
mov edx, dword [esp + 0x144]
movsd xmm0, qword [edx]
movsd qword [esi + 0x20], xmm0
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov dword [esi + 0x48], 4
mov eax, dword [esp + 0x1f8]
mov ecx, 0xffffff
and ecx, dword [eax]
mov dword [esi + 0xc], ecx
mov dword [esp], esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x3f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
xor ecx, ecx
call fcn.0057b410
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x51c1be
mov dword [esp + 0xa4], esi
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
mov cl, byte [esp + 0x13f]
mov edi, dword [esp + 0x11c]
mov esi, dword [esp + 0x110]
mov al, byte [esp + 0x154]
mov edx, 0xf
jmp 0x51dc43
mov dword [esp], str.Reading_of_secure_storage_feature_file_of_certificate_license_failed_n
call fcn.004414c0
jmp 0x51ec6e
mov dword [esp], str.Secure_storage_feature_file_of_certificate_license_has_got_modified_n
call fcn.004414c0
jmp 0x51ec6e
mov dword [esp + 0x158], edi
mov byte [esp + 0x137], 0x21
jmp 0x51c113
mov byte [esp + 0x137], 0x5e
mov esi, dword [ecx]
call fcn.004233f0
mov dword [eax], esi
mov esi, eax
mov dword [esi + 8], 3
mov edx, dword [esp + 0x144]
movsd xmm0, qword [edx]
movsd qword [esi + 0x20], xmm0
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov dword [esi + 0x48], 4
mov eax, dword [esp + 0x1f8]
mov ecx, 0xffffff
and ecx, dword [eax]
mov dword [esi + 0xc], ecx
mov dword [esp], esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x3f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
xor ecx, ecx
call fcn.0057b410
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x51c286
mov dword [esp + 0xa4], esi
mov dword [esp + 0x164], ebx
mov ecx, 0xf
mov eax, 0x11
movzx edx, byte [esp + 0x14b]
cmp edx, 0x76
jne 0x51c96c
cmp ecx, 0xf
mov edx, dword [esp + 0xa4]
mov esi, dword [esp + 0x104]
mov edi, dword [esp + 0x15c]
jne 0x51c251
mov eax, 3
sub eax, ecx
xor eax, ecx
je 0x51c251
mov eax, dword [edx + 0x14]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
and ecx, eax
lea eax, [ecx + 1]
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
mov eax, 0xb
mov byte [esp + 0x14b], 0x76
mov dword [esp + 0x12c], edi
mov ebx, esi
jne 0x51c3f3
jmp 0x51e806
mov dword [esp + 0x12c], edi
mov byte [esp + 0x14b], al
mov dword [esp + 0x15c], 0
lea eax, [esp + 0x1f0]
lea ecx, [esp + 0x1a0]
lea edx, [esp + 0x1a4]
xor esi, esi
jmp 0x51bebf
mov cl, byte [esp + 0x13f]
jmp 0x51c336
mov dword [esp + 0x158], edi
mov dword [esp + 0x164], ebx
mov eax, dword [esp + 0x1fc]
lea ecx, [esp + 0x1f8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov edx, dword [esp + 0x1f8]
test eax, eax
jne 0x51c301
mov byte [esp + 0x14e], 0x6a
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x104]
je 0x51c323
test edx, edx
mov dword [esp + 0xc8], edx
mov dword [esp + 0x12c], eax
mov dword [esp + 0x15c], eax
jne 0x51ec1b
jmp 0x51e9f6
mov dword [esp + 0xc8], edx
mov byte [esp + 0x14e], 0x6a
mov eax, dword [esp + 0x104]
mov dword [esp + 0x15c], eax
jmp 0x51e9f6
mov dword [esp + 0xc8], edx
mov dword [esp + 0x15c], eax
jmp 0x51e9f6
mov edx, dword [esp + 0x15c]
movzx eax, cl
cmp eax, 0x6f
jne 0x51c37f
mov dword [esp + 0xa4], esi
mov dword [esp + 0x164], ebx
mov byte [esp + 0x13f], cl
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov dword [esp + 0x12c], edx
mov dword [esp + 0x15c], 0x13
jmp 0x51e4b4
mov dword [esp + 0x164], ebx
mov byte [esp + 0x13f], 0x6f
mov ecx, dword [esp + 0x144]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esi]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], str.Secure_storage_entry_for_feature__d_of_key__llu_seems_to_be_unexpected__n
call fcn.004414c0
mov ebx, dword [esp + 0x104]
jmp 0x51c462
imul eax, eax
and eax, 3
cmp eax, 2
je 0x51c975
mov byte [esp + 0x14b], 0x60
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 0x14]
test al, 1
mov ebx, dword [esp + 0x104]
je 0x51c462
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x18]
test ecx, ecx
mov ebx, 0xffffffff
je 0x51c462
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x51c462
xor edx, edx
mov eax, dword [esp + 0x104]
imul eax, eax
and eax, 3
mov dword [esp + 0x178], eax
mov eax, 0xffffffff
jmp 0x51c44d
inc edx
cmp dword [esp + 0x178], 3
mov edi, dword [esp + 0x104]
mov eax, edi
cmove eax, ecx
cmp edi, ecx
cmovb eax, ecx
dec esi
mov ebx, esi
mov edi, edx
and edi, 1
xor edi, ebx
mov esi, ebx
setne bl
movzx edi, bl
cmp edx, edi
jb 0x51c430
mov ebx, eax
mov esi, dword [esp + 0xa4]
mov dword [esp], esi
call fcn.00411ea0
mov dword [esp], esi
call fcn.004234b0
mov eax, dword [esp + 0x1fc]
lea ecx, [esp + 0x1f8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x51c520
mov eax, dword [esp + 0x1f8]
test eax, eax
mov dword [esp + 0x158], ebx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x15c], ebx
je 0x51e9f6
mov bh, byte [esp + 0x14d]
movzx ecx, bh
cmp ecx, 0x62
jne 0x51bedd
xor ecx, ecx
jmp 0x51c4fc
mov bh, 0x76
add edx, esi
setne dl
movzx edx, dl
add ecx, edx
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
mov edi, edx
add edi, esi
setne bl
movzx edi, bl
cmp ecx, edi
jb 0x51c4f0
mov byte [esp + 0x14d], bh
jmp 0x51bee5
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], ebx
jmp 0x51e9f6
mov byte [esp + 0x14c], 0x65
inc ebx
mov eax, dword [esp + 0x1fc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x1fc], 0
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp ebx, eax
jb 0x51c540
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x100], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0xf0], 0
jmp 0x51d1b7
imul esi, esi
and esi, 3
cmp esi, 2
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
mov dword [esp + 0x118], ecx
je 0x51f1db
mov dword [esp + 0x160], ecx
mov dword [esp + 0x120], edi
mov dword [esp + 0x10c], ebx
mov ecx, dword [esp + 0x144]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
cmp eax, 0xa7640000
sbb ecx, 0xde0b6b3
setb cl
mov edx, eax
and edx, 1
inc edx
xor edx, eax
sete bl
or bl, cl
mov dword [esp + 0x100], 0
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x51c65c
mov eax, 0xe
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
mov esi, 0
mov dword [esp + 0x50], 0
mov cl, bl
mov dword [esp + 0xf0], ebx
mov byte [esp + 0x93], cl
mov dword [esp + 0x108], 0
mov dword [esp + 0x114], 0
jne 0x51c8c5
jmp 0x51d1b7
xor esi, esi
mov dword [esp + 0x50], 0
mov al, bl
mov dword [esp + 0xf0], ebx
mov byte [esp + 0x93], al
jmp 0x51d1b7
inc ecx
dec edx
mov dword [esp + 0x178], edi
mov ebx, dword [esp + 0x180]
mov ah, bl
mov esi, dword [esp + 0x188]
mov dword [esp + 0x17c], esi
mov ebx, dword [esp + 0x184]
mov esi, dword [esp + 0x18c]
mov dword [esp + 0x16c], esi
test ecx, ecx
jne 0x51c6c2
mov esi, ecx
and esi, 1
xor esi, edx
jne 0x51c680
mov dword [esp + 0x164], ebx
mov byte [esp + 0x154], ah
mov ecx, dword [esp + 0x180]
mov byte [esp + 0xe5], cl
mov ebx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x188]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x184]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x184], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x188], ecx
mov cl, byte [esp + 0x98]
mov dword [esp + 0x180], ecx
mov dword [esp + 0xf0], eax
mov edi, dword [esp + 0x158]
mov al, byte [esp + 0x67]
movzx eax, al
cmp eax, 0x13
je 0x51c7c6
mov ecx, 4
cmp eax, 0x18
jne 0x51c816
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x158], edi
mov byte [esp + 0x67], 0x13
mov ebx, dword [esp + 0x178]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [eax]
mov ecx, eax
and ecx, 0xff000000
cmp ecx, 0x3000000
mov esi, dword [esp + 0xfc]
jne 0x51c9d3
not eax
or eax, 0xffffff
mov edi, dword [esp + 0x108]
jne 0x51c87a
jmp 0x51c9d3
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov edx, dword [esp + 0x144]
mov esi, dword [esp + 0x16c]
mov dword [esp + 0x178], 0x13
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x158], edi
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x15c], ebx
mov ebx, dword [esp + 0x180]
jmp 0x51a7fc
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x158], edi
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
jmp 0x51c988
mov byte [esp + 0x67], 0x18
mov ebx, dword [esp + 0x150]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x44], ecx
mov eax, 0xff000000
and eax, dword [ecx]
cmp eax, 0x3000000
mov esi, dword [esp + 0xfc]
je 0x51c873
or eax, 1
test eax, eax
mov edi, dword [esp + 0x108]
jne 0x51c9d3
jmp 0x51c87a
mov edi, dword [esp + 0x108]
mov ecx, ebx
mov dword [esp + 0x108], edi
mov dword [esp + 0xfc], esi
mov eax, 0xa
mov bl, byte [esp + 0xe6]
movzx edx, bl
cmp edx, 0x6b
je 0x51c9b0
mov eax, 0x1b
mov edi, 0xc
cmp edx, 0x7f
mov dword [esp + 0x150], ecx
mov edx, ecx
mov dword [esp + 0xec], ecx
je 0x51ed1b
cmp eax, 0xe
jne 0x51c932
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x51c932
mov eax, 0xa
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x100], 0
test ecx, ecx
mov esi, 0
mov dword [esp + 0x50], 0
mov cl, byte [esp + 0x93]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x108], 0
mov dword [esp + 0x114], 0
jne 0x51d3cd
jmp 0x51d1b7
mov eax, 0x10
mov ecx, 1
mov byte [esp + 0xe6], 0x7f
mov esi, dword [esp + 0x44]
mov edx, dword [esi + 4]
mov dword [esp + 0xfc], edx
cmp dword [edx], 0x66656964
mov dword [esp + 0x80], esi
mov edx, dword [esp + 0xec]
mov dword [esp + 0x7c], edx
jne 0x51c988
cmp eax, 0x10
jne 0x51c3c7
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
jmp 0x51e3b4
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp ecx, eax
jne 0x51c837
mov ebx, dword [esp + 0xec]
mov esi, dword [esp + 0xfc]
jmp 0x51c9d3
mov edx, dword [esp + 0x160]
mov dword [esp + 0x118], edx
mov edx, ecx
mov dword [esp + 0xec], ecx
mov edi, dword [esp + 0x11c]
jmp 0x51db04
mov eax, esi
mov esi, dword [ebx + 4]
test esi, esi
jne 0x51ca3d
mov dword [esp + 0x150], 0x19
mov ecx, 0xe
mov edx, esi
or edx, 2
mov dword [esp + 0x178], esi
xor esi, 2
add esi, edx
mov esi, eax
mov edx, dword [esp + 0x16c]
mov dword [esp + 0x100], edx
mov edi, dword [esp + 0x164]
mov edx, dword [esp + 0x17c]
mov dword [esp + 0x114], edx
mov dl, byte [esp + 0x154]
mov dword [esp + 0xf0], edx
mov edx, ebx
jne 0x51d65f
jmp 0x51caf2
mov dword [esp + 0x150], 0x19
mov dword [esp + 0x178], esi
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x100], ecx
mov edi, dword [esp + 0x164]
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x114], ecx
mov cl, byte [esp + 0x154]
mov dword [esp + 0xf0], ecx
mov esi, eax
jmp 0x51caf2
mov dword [esp + 0x178], edx
mov dword [esp + 0x150], 0xc
mov byte [esp + 0xe6], 0x6b
mov edx, dword [esp + 0x44]
mov esi, dword [edx + 4]
mov ecx, dword [esi]
cmp ecx, 0x66656964
je 0x51cad9
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0xec]
mov dword [esp + 0x7c], ebx
mov edi, dword [esp + 0x108]
jne 0x51c9d3
jmp 0x51caf2
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0xec]
mov dword [esp + 0x7c], ebx
mov edi, dword [esp + 0x108]
mov dword [esp + 0x108], edi
mov dword [esp + 0xfc], esi
mov eax, dword [esp + 0x150]
cmp eax, 0xc
jne 0x51cb37
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov dword [esp + 0xec], ebx
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x15c]
jne 0x51e3c2
jmp 0x51c755
mov dword [esp + 0xec], ebx
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x15c]
jmp 0x51c755
mov ecx, 0x10
mov esi, dword [esp + 0xf8]
mov eax, dword [esi + 0x18]
test eax, eax
sete dl
jne 0x51cbae
mov byte [esp + 0x57], dl
movzx ecx, byte [esp + 0x8b]
cmp ecx, 0x34
mov edx, dword [esp + 0x150]
mov ebx, dword [esp + 0x12c]
je 0x51cbe1
mov dword [esp + 0x128], eax
mov eax, 9
cmp ecx, 0x43
mov bl, byte [esp + 0x154]
jne 0x51cc63
mov edi, dword [esp + 0x11c]
jmp 0x51ea5a
mov byte [esp + 0x57], dl
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x15c], eax
mov edx, dword [esp + 0x150]
mov bl, byte [esp + 0xe6]
mov edi, dword [esp + 0x11c]
jmp 0x51ccb1
mov dword [esp + 0x128], eax
xor eax, eax
mov dword [esp + 0x18c], ecx
mov edi, dword [esp + 0x11c]
jmp 0x51cc43
mov byte [esp + 0x8b], 0x34
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esi + 0x14]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, ecx
and edx, 1
lea ecx, [edx + 1]
xor ecx, edx
sete cl
movzx ecx, cl
cmp edx, ecx
mov ecx, 0xffffffff
cmove ecx, dword [esp + 0x16c]
mov dword [esp + 0x18c], ecx
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne dl
movzx edx, dl
cmp eax, edx
jb 0x51cbfa
mov edx, dword [esp + 0x16c]
jmp 0x51cd44
mov byte [esp + 0x8b], 0x43
mov eax, dword [esi + 0x14]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
and ecx, eax
lea eax, [ecx + 1]
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
mov eax, 0xffffffff
mov edx, dword [esp + 0x16c]
cmove eax, edx
mov dword [esp + 0x18c], eax
mov edi, dword [esp + 0x11c]
jmp 0x51cd3d
mov dword [esp + 0x178], edx
mov byte [esp + 0xe6], bl
xor eax, eax
cmp ecx, 0x10
mov edx, dword [esp + 0x16c]
mov esi, dword [esp + 0x128]
mov ebx, dword [esp + 0x15c]
je 0x51ccec
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x51dd35
jmp 0x51cd1c
jmp 0x51cd15
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, edx
cmove ecx, esi
cmp edx, esi
cmovb ecx, esi
mov dword [esp + 0x18c], ecx
mov ecx, eax
imul ecx, ecx
and ecx, 3
test eax, eax
je 0x51ccee
cmp ecx, 3
je 0x51ccee
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
jmp 0x51cd44
mov ebx, dword [esp + 0x12c]
mov esi, 0x14
mov eax, dword [esp + 0xf8]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x51cdc8
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x11c], edi
mov dword [esp + 0x16c], edx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
mov ebx, dword [esp + 0x158]
mov eax, dword [esp + 0x164]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x188], eax
mov al, byte [esp + 0x154]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x78], eax
jmp 0x51e523
movzx ecx, byte [esp + 0x77]
cmp ecx, 0x2d
je 0x51ce42
mov dword [esp + 0x11c], edi
mov eax, 1
cmp ecx, 0x76
jne 0x51ce6c
mov dword [esp + 0x16c], edx
mov eax, 8
mov byte [esp + 0x77], 0x2d
test byte [esp + 0x57], 1
mov ecx, dword [esp + 0x164]
mov dword [esp + 0x184], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x188], ecx
mov cl, byte [esp + 0x154]
mov dword [esp + 0x180], ecx
mov edx, dword [esp + 0x18c]
mov ecx, edx
mov edi, dword [esp + 0x158]
je 0x51f459
jmp 0x51ceea
mov dword [esp + 0x11c], edi
mov dword [esp + 0x16c], edx
mov byte [esp + 0x77], 0x4c
test byte [esp + 0x57], 1
je 0x51ced0
mov edx, dword [esp + 0x18c]
mov edi, dword [esp + 0x158]
jmp 0x51ceea
mov dword [esp + 0x16c], edx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov dword [esp + 0x15c], ebx
mov ecx, dword [esp + 0x164]
mov dword [esp + 0x184], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x188], ecx
mov cl, byte [esp + 0x154]
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x78], ecx
mov edi, dword [esp + 0x158]
mov bl, byte [esp + 0x127]
jmp 0x51ed81
mov dword [esp + 0x184], ecx
mov dword [esp + 0x180], edx
mov edi, dword [esp + 0x158]
jmp 0x51ed6c
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x18c], edx
mov eax, dword [esp + 0xf8]
mov eax, dword [eax + 0x14]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ebx, cl
and ebx, eax
mov eax, 0xffffffff
cmove eax, dword [esp + 0x164]
mov dword [esp + 0x184], eax
mov eax, ebx
or eax, 2
add eax, eax
setne cl
shl bl, cl
or bl, byte [esp + 0x154]
mov dword [esp + 0x180], ebx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x188], eax
mov dword [esp + 0x78], edx
jmp 0x51d07a
mov ecx, 0xd
mov eax, edx
and eax, 1
xor eax, edx
cmp eax, 0xffffffff
setne al
movzx eax, al
add edx, eax
mov eax, dword [esp + 0x164]
mov esi, dword [esp + 0x128]
cmp eax, esi
mov ebx, esi
cmova ebx, eax
mov dword [esp + 0x184], ebx
mov eax, dword [esp + 0x17c]
cmp eax, esi
cmova esi, eax
mov dword [esp + 0x188], esi
mov eax, dword [esp + 0x18c]
mov bl, byte [esp + 0x154]
mov dword [esp + 0x180], ebx
mov esi, 3
sub esi, edx
xor esi, edx
setne bl
movzx esi, bl
cmp edx, esi
jb 0x51cf70
mov ebx, dword [esp + 0x12c]
mov edx, dword [esp + 0x118]
mov dword [esp + 0x160], edx
mov edx, dword [esp + 0x18c]
mov dword [esp + 0x78], edx
jmp 0x51d71b
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
je 0x51e9e8
mov ecx, dword [esp + 0x144]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0xf8]
mov edx, dword [edx]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], str.Secure_storage_entry_for_feature__d_of_key__llu_seems_to_be_unexpected__n
call fcn.004414c0
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x188], eax
mov al, bl
mov dword [esp + 0x180], eax
mov edi, dword [esp + 0x158]
mov esi, dword [esp + 0xf8]
mov dword [esp], esi
call fcn.00411ea0
mov dword [esp], esi
call fcn.004234b0
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x51d14b
mov dword [esp + 0x158], edi
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
mov dword [esp + 0x9c], ecx
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x15c], eax
mov edx, dword [esp + 0x180]
mov al, dl
mov byte [esp + 0xe5], al
mov ebx, dword [esp + 0x188]
mov dword [esp + 0xe0], ebx
mov edi, dword [esp + 0x184]
mov dword [esp + 0xdc], edi
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x100], ecx
mov esi, edi
mov al, dl
mov byte [esp + 0x98], al
mov al, dl
mov dword [esp + 0x50], ebx
mov dword [esp + 0xf0], edx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0x108], edi
mov dword [esp + 0x114], ebx
jne 0x51f30f
jmp 0x51d1b7
mov dword [esp + 0x158], edi
mov dword [esp + 0x9c], ecx
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x15c], eax
mov ebx, dword [esp + 0x180]
mov al, bl
mov byte [esp + 0xe5], al
mov edx, dword [esp + 0x188]
mov dword [esp + 0xe0], edx
mov ecx, dword [esp + 0x184]
mov dword [esp + 0xdc], ecx
mov eax, dword [esp + 0x18c]
mov dword [esp + 0xd8], eax
mov dword [esp + 0x100], eax
mov esi, ecx
mov dword [esp + 0x50], edx
mov al, bl
mov dword [esp + 0xf0], eax
mov edi, dword [ebp + 0x20]
mov ebx, dword [esp + 0x144]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0xc], 0x4dd110
mov dword [esp + 8], 0x4dd130
call fcn.00412620
mov eax, dword [esp + 0x100]
mov dword [ebx + 0xc], eax
xor edx, edx
test edi, edi
jne 0x51d288
mov byte [esp + 0xb7], 0x36
mov ecx, 7
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
mov ebx, dword [esp + 0x10c]
je 0x51d2b8
mov dword [esp + 0x108], esi
mov eax, dword [esp + 0x50]
mov dword [esp + 0x114], eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xf0]
mov byte [esp + 0xcf], al
mov edi, dword [esp + 0x11c]
mov esi, dword [esp + 0x110]
cmp ecx, 7
jne 0x51d33a
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
jne 0x51f3f1
jmp 0x51d33a
mov byte [esp + 0xb7], 0x36
mov ebx, dword [esp + 0x10c]
jmp 0x51d2b8
mov eax, 0x1f
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
movzx ecx, cl
add edx, ecx
mov dword [edi], esi
test edx, edx
je 0x51d2a0
mov cl, 1
test cl, cl
je 0x51d2a0
mov ecx, dword [esp + 0x180]
mov dl, cl
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x178], ecx
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x118], ecx
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x184]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x108], esi
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0xf0]
mov byte [esp + 0xcf], cl
jmp 0x51f20e
mov eax, dword [esp + 0x120]
mov dword [esp + 0x160], eax
jmp 0x51e844
mov eax, 0x19
mov byte [esp + 0xb7], 4
mov byte [esp + 0xf7], 0x31
test esi, esi
je 0x51d381
mov ecx, 0x1e
xor edx, edx
test dl, dl
mov esi, dword [esp + 0x110]
je 0x51da55
jmp 0x51de68
mov esi, dword [esp + 0x110]
jmp 0x51de68
mov dword [esp + 0x110], esi
mov dword [esp + 0x11c], edi
mov eax, 0x18
mov byte [esp + 0xf7], 0x31
mov ecx, dword [ebp + 0x24]
mov edx, dword [esp + 0x70]
mov dword [ecx], edx
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
cmp eax, 0xa
mov ecx, dword [esp + 0x150]
jne 0x51d497
mov byte [esp + 0x77], 0x76
mov byte [esp + 0x8b], 0x3e
mov eax, dword [esp + 0x180]
mov dl, al
mov byte [esp + 0xe6], 0x5b
mov dword [esp + 0x178], ecx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0xac], eax
mov byte [esp + 0x67], 0x46
mov al, byte [esp + 0x93]
mov byte [esp + 0xe5], al
mov ecx, 7
mov eax, dword [esp + 0x144]
lea eax, [eax + 8]
mov dword [esp + 0x11c], eax
mov dword [esp + 0xe0], 0
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0
jmp 0x51f11a
mov dword [esp + 0x178], ecx
mov ebx, dword [esp + 0x164]
jmp 0x51dcf6
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov dword [esp + 0x178], edx
mov edx, esi
jne 0x51bf3c
mov dword [esp + 0x15c], edx
mov dword [esp + 0x158], edi
mov dword [esp + 0x164], ebx
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x160], 0
test eax, eax
mov edx, 0
mov bh, byte [esp + 0xcf]
jne 0x51d522
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov edx, 0
jne 0x51d5ad
jmp 0x51d522
mov ecx, 0xf
cmp esi, 0xffffffff
setne bl
movzx esi, bl
add edx, esi
mov byte [eax], bh
mov esi, edx
and esi, 1
xor esi, edx
cmp esi, 0xffffffff
setne bl
movzx edi, bl
cmp edx, edi
jb 0x51d510
mov dword [esp + 0x118], 0
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x15c], edx
mov dword [esp + 0x158], edi
mov dword [esp + 0x164], ebx
cmp ecx, 0xa
jne 0x51d59f
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
mov edi, dword [esp + 0x11c]
mov esi, dword [esp + 0x110]
jne 0x51db30
jmp 0x51d5bb
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
mov edi, dword [esp + 0x11c]
mov esi, dword [esp + 0x110]
mov eax, 0xc
movzx edx, byte [esp + 0x9a]
cmp edx, 0x1b
je 0x51d609
mov dword [esp + 0x110], esi
mov dword [esp + 0x11c], edi
mov ecx, 2
cmp edx, 0x45
jne 0x51d64a
mov byte [esp + 0x9a], 0x1b
mov ecx, dword [esp + 0x160]
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
jmp 0x51d69d
mov dword [esp + 0x110], esi
mov dword [esp + 0x11c], edi
mov ebx, dword [esp + 0x178]
mov esi, dword [esp + 0xfc]
mov ecx, dword [esp + 0xec]
mov edi, dword [esp + 0x108]
cmp eax, 0xc
je 0x51d6b6
imul eax, eax
and eax, 3
cmp eax, 2
je 0x51d6b6
mov ebx, ecx
jmp 0x51c9d3
mov esi, dword [esp + 0xfc]
mov edx, dword [esp + 0xec]
mov edi, dword [esp + 0x108]
mov dword [esp + 0xec], edx
cmp ecx, 2
jne 0x51d796
mov dword [esp + 0xfc], esi
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
je 0x51d79d
mov dword [esp + 0x108], edi
mov byte [esp + 0x9a], 0x2d
cmp dword [esp + 0x160], 0
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x15c]
jne 0x51e844
jmp 0x51d740
mov edx, dword [esp + 0x160]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp edx, eax
jne 0x51e844
mov dword [esp + 0x150], ebx
mov dword [esp + 0x108], edi
mov dword [esp + 0xec], ecx
mov dword [esp + 0xfc], esi
mov ecx, 0x1c
mov byte [esp + 0x9a], 0x45
mov dword [esp + 0xd4], edx
mov eax, dword [esp + 0x18c]
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x15c]
cmp ecx, 0xd
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
je 0x51d07a
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov esi, 0xb
mov ecx, dword [ebp + 0x1c]
mov edx, dword [esp + 0x144]
call fcn.004ddac0
mov dword [esp + 0x160], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x150], ecx
mov dword [esp + 0xd4], eax
jne 0x51e844
jmp 0x51d7b0
mov dword [esp + 0xfc], esi
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
jmp 0x51eb38
cmp esi, 0xb
jne 0x51d800
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
je 0x51d800
mov byte [esp + 0xab], 0x16
mov eax, dword [esp + 0x144]
mov edx, dword [eax + 0x1a0]
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x51d8bc
xor eax, eax
test al, al
jne 0x51d8bc
mov dword [esp + 0x5c], edx
mov eax, 7
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x48], ecx
jmp 0x51f827
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x158], edi
mov byte [esp + 0xab], 0x2b
mov eax, dword [esp + 0xd0]
mov eax, dword [eax]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x144]
mov ecx, dword [eax]
mov dword [esp + 0x174], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x170], eax
mov eax, dword [0x7dc5d4]
mov dword [esp + 0x218], eax
movsd xmm0, qword [0x7dc5cc]
movsd qword [esp + 0x210], xmm0
movsd xmm0, qword [0x7dc5c4]
movsd qword [esp + 0x208], xmm0
mov eax, dword [esp + 0x48]
test eax, eax
sete cl
cmp dword [esp + 0x5c], 0
sete byte [esp + 0x99]
mov dword [esp + 0x120], 0x700002bb
jne 0x51d8da
test cl, cl
mov byte [esp + 0xa3], cl
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov esi, eax
mov edi, dword [esp + 0x11c]
jne 0x51d33a
jmp 0x51da7a
mov dword [esp + 0x5c], edx
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
mov dl, 0x16
jmp 0x51d8fd
mov byte [esp + 0xa3], cl
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov esi, eax
mov edi, dword [esp + 0x11c]
jmp 0x51da7a
mov esi, 0x11
movzx ecx, dl
cmp ecx, 0x26
je 0x51d9eb
mov dword [esp + 0x15c], ebx
mov eax, 0xd
cmp ecx, 0x2b
jne 0x51d9fe
mov dword [esp + 0x158], edi
mov ecx, 0xf
mov byte [esp + 0xab], 0x16
mov eax, dword [esp + 0xd0]
mov eax, dword [eax]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x144]
mov edx, dword [eax]
mov dword [esp + 0x174], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x170], eax
mov eax, dword [0x7dc5d4]
mov dword [esp + 0x218], eax
movsd xmm0, qword [0x7dc5cc]
movsd qword [esp + 0x210], xmm0
movsd xmm0, qword [0x7dc5c4]
movsd qword [esp + 0x208], xmm0
mov esi, dword [esp + 0x48]
test esi, esi
sete al
mov edx, esi
imul edx, edx
and edx, 3
cmp edx, 2
sbb bl, bl
and bl, al
mov edx, dword [esp + 0x5c]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp edx, eax
sete byte [esp + 0x99]
mov dword [esp + 0x120], 0x700002bb
jne 0x51da47
test bl, bl
mov byte [esp + 0xa3], bl
mov edi, dword [esp + 0x11c]
jne 0x51d33a
jmp 0x51da55
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
jmp 0x51d7b0
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov byte [esp + 0xab], dl
mov edx, dword [esp + 0x144]
mov dword [esp + 0x158], edi
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0xf0]
jmp 0x51b1f0
mov byte [esp + 0xa3], bl
mov edi, dword [esp + 0x11c]
cmp ecx, 0xf
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
jne 0x51db30
mov dword [esp + 0x110], esi
mov eax, dword [esp + 0x170]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x174]
mov dword [esp], eax
call fcn.0042e910
mov ecx, dword [esp + 0x94]
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
mov ebx, dword [esp + 0x150]
jne 0x51db7c
mov byte [esp + 0xe7], 0x30
mov al, 0x26
mov esi, 0xd
movzx edx, al
cmp edx, 0x26
je 0x51dc77
mov eax, 3
mov ecx, 0x1e
cmp edx, 0x7a
mov edx, dword [esp + 0x160]
mov dword [esp + 0x118], edx
mov edx, ebx
mov bl, byte [esp + 0xe6]
jne 0x51ccb1
cmp eax, 3
jne 0x51dbb3
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x51dbb3
mov dword [esp + 0x178], edx
mov byte [esp + 0xe6], bl
jmp 0x51dd35
mov al, byte [esp + 0xf7]
movzx eax, al
cmp eax, 0x31
je 0x51d38d
mov edx, 0x16
cmp eax, 0x73
jne 0x51dc20
mov dword [esp + 0x110], esi
mov dword [esp + 0x11c], edi
mov byte [esp + 0xf7], 0x4d
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x70]
mov dword [eax], ecx
mov ebx, dword [esp + 0x164]
jmp 0x51dcf6
mov byte [esp + 0xe7], 0x30
mov dword [esp + 0x11c], edi
mov dword [esp + 0x178], ebx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov ebx, dword [esp + 0x10c]
mov edi, dword [esp + 0x120]
jmp 0x51f1db
mov dword [esp + 0x178], edx
mov dword [esp + 0x11c], edi
mov eax, 0xc
mov byte [esp + 0xe6], 0x5b
mov edx, dword [esp + 0x44]
mov esi, dword [edx + 4]
mov ecx, dword [esi]
cmp ecx, 0x66656964
je 0x51dd09
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x7c], ecx
mov ebx, ecx
mov edi, dword [esp + 0x108]
jne 0x51c9d3
jmp 0x51e358
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
mov al, byte [esp + 0x154]
mov cl, byte [esp + 0x13f]
mov ebx, dword [esp + 0x164]
mov dword [esp + 0x11c], edi
cmp edx, 0xf
jne 0x51dca1
mov dword [esp + 0x110], esi
mov byte [esp + 0x154], al
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov esi, dword [esp + 0xa4]
jmp 0x51c336
mov eax, ebx
mov ebx, dword [esp + 0x17c]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0xd4]
jmp 0x51f737
mov byte [esp + 0x154], al
mov byte [esp + 0x13f], cl
xor eax, eax
mov edx, dword [ebp + 0x24]
mov edi, dword [esp + 0x70]
jmp 0x51dcdb
mov byte [esp + 0xf7], 0x73
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
mov dword [edx], edi
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x51dcc0
mov dword [esp + 0x110], esi
mov edi, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
jmp 0x51d4c3
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x7c], ecx
mov edi, dword [esp + 0x108]
jmp 0x51e358
mov dword [esp + 0x120], 0x700002bb
test byte [esp + 0xa3], 1
mov eax, dword [esp + 0x110]
jne 0x51d33a
mov dword [esp + 0x110], eax
mov dword [esp + 0x11c], edi
mov byte [esp + 0xc7], 0x61
mov byte [esp + 0x9b], 5
mov edx, dword [eax]
mov edi, 0x700002bb
test edx, edx
mov ebx, dword [esp + 0x10c]
je 0x51efd5
mov dword [esp + 0xe8], edx
jmp 0x51f0bc
mov dword [esp + 0x15c], edx
mov dword [esp + 0x164], ebx
mov byte [esp + 0x9b], 5
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x51dddb
mov esi, 3
mov eax, ecx
and eax, 1
xor eax, ecx
mov dword [esp + 0xe8], ecx
not eax
test eax, eax
mov ebx, dword [esp + 0x10c]
jne 0x51e928
jmp 0x51f0bc
mov dword [esp + 0xe8], ecx
mov ebx, dword [esp + 0x10c]
jmp 0x51f0bc
mov dword [esp + 0x120], edi
mov dword [esp + 0x10c], ebx
mov eax, 0xf
mov byte [esp + 0xc7], 0x61
mov esi, dword [esp + 0xe8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x168], edx
mov ecx, 0xff000000
and ecx, dword [edx]
cmp ecx, 0x1000000
jne 0x51dede
mov cl, 1
test cl, cl
mov dword [esp + 0xb8], esi
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov edi, dword [esp + 0x11c]
mov esi, dword [esp + 0x110]
je 0x51df0f
mov dword [esp + 0x110], esi
mov dword [esp + 0x11c], edi
cmp eax, 0xf
mov ebx, dword [esp + 0x164]
mov ecx, dword [esp + 0x18c]
mov edi, dword [esp + 0x158]
mov edx, dword [esp + 0x184]
mov esi, dword [esp + 0x15c]
jne 0x51ded7
imul eax, eax
and eax, 3
cmp eax, 1
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], edx
mov ecx, dword [esp + 0x188]
mov eax, dword [esp + 0x180]
mov byte [esp + 0x98], al
mov edx, esi
jbe 0x51f29f
jmp 0x51d4c3
mov edx, esi
jmp 0x51d4c3
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov dword [esp + 0xb8], esi
mov edi, dword [esp + 0x11c]
mov esi, dword [esp + 0x110]
mov dword [esp + 0x110], esi
mov dword [esp + 0x11c], edi
cmp eax, 0xd
je 0x51df62
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x51df62
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
jmp 0x51f05e
mov ebx, 5
mov al, 0x38
mov dword [esp + 0x60], eax
mov byte [esp + 0x9a], 0x1b
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x1f8], 0
movsd xmm0, qword [0x7dc5bc]
movsd qword [esp + 0x1f0], xmm0
movsd xmm0, qword [0x7dc5b4]
movsd qword [esp + 0x1e8], xmm0
movsd xmm0, qword [0x7dc5ac]
movsd qword [esp + 0x1e0], xmm0
mov edi, dword [esp + 0x144]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004125d0
mov edx, 8
lea eax, [edi + 0x9c]
mov dword [esp + 0xd0], eax
mov eax, dword [edi + 0x9c]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov edi, dword [esp + 0x11c]
mov esi, dword [esp + 0x110]
je 0x51e1c6
mov dword [esp + 0x11c], edi
cmp edx, 8
je 0x51e031
mov dword [esp + 0x110], esi
xor eax, eax
test al, al
je 0x51bb34
jmp 0x51e038
mov dword [esp + 0x110], esi
mov ebx, dword [esp + 0x10c]
mov edi, dword [esp + 0x120]
mov ecx, dword [esp + 0x160]
jmp 0x51bbd7
mov esi, 0xe
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
call fcn.0042d7f0
mov edi, eax
mov eax, dword [esp + 0x170]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x174]
mov dword [edi], eax
mov ecx, dword [esp + 0x168]
movzx eax, word [ecx]
mov dword [edi + 8], eax
mov dword [edi + 0xc], 1
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
mov dword [esp], edi
call fcn.004120f0
mov dword [esp], edi
call fcn.00434c70
mov eax, ebx
not eax
and eax, 1
add eax, ebx
setne al
movzx eax, al
cmp ebx, eax
jb 0x51e060
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov ecx, dword [esp + 0x118]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x188], eax
mov al, byte [esp + 0x98]
mov dword [esp + 0x180], eax
mov ebx, dword [esp + 0x10c]
mov edi, dword [esp + 0x120]
cmp esi, 0xe
jne 0x51c59f
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
mov dword [esp + 0x118], ecx
jmp 0x51f1db
mov byte [esp + 0xe7], 0x21
test byte [esp + 0x99], 1
jne 0x51f361
mov dword [esp + 0x120], edi
call fcn.005959e0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x51e5d4
mov dword [esp + 0x10c], ebx
mov al, 0x2e
mov ebx, 0x11
movzx eax, al
cmp eax, 0x2e
mov edi, dword [esp + 0x11c]
jne 0x51e1f7
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
mov esi, dword [esp + 0x110]
mov dword [esp + 0x110], esi
cmp ebx, 5
jne 0x51e268
mov dword [esp + 0x11c], edi
mov ebx, dword [esp + 0x10c]
mov edi, dword [esp + 0x120]
mov ecx, dword [esp + 0x160]
jmp 0x51c5c3
mov dword [esp + 0x204], 0
mov dword [esp + 0x200], 0
mov dword [esp + 0x210], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x214], esi
lea eax, [esp + 0x204]
mov dword [esp + 4], eax
lea eax, [esp + 0x208]
mov dword [esp], eax
call fcn.00594ba0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov ebx, dword [esp + 0x178]
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
je 0x51e2cd
jmp 0x51e53d
mov dword [esp + 0x204], 0
mov dword [esp + 0x200], 0
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x210], eax
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x214], esi
lea eax, [esp + 0x204]
mov dword [esp + 4], eax
lea eax, [esp + 0x208]
mov dword [esp], eax
call fcn.00594ba0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov ebx, dword [esp + 0x150]
jne 0x51e53d
mov dword [esp + 0x11c], edi
mov dword [esp + 0x5c], esi
mov eax, dword [esp + 0x204]
lea ecx, [esp + 0x200]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
test eax, eax
sete cl
mov edx, eax
and edx, 1
inc edx
xor edx, eax
sete al
or al, cl
mov edx, dword [esp + 0x200]
movzx eax, al
cmp eax, 1
jne 0x51e5a7
test edx, edx
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0x108]
je 0x51e5c1
mov eax, 6
mov ecx, edx
mov dword [esp + 0x84], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x178], ebx
mov ecx, dword [esp + 0xec]
jae 0x51f784
mov dword [esp + 0x108], edi
mov dword [esp + 0xec], ecx
mov dword [esp + 0xfc], esi
cmp eax, 6
jne 0x51e3b4
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov ebx, dword [esp + 0x15c]
mov dword [esp + 0x12c], ebx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov edi, dword [esp + 0x158]
jne 0x51e603
jmp 0x51e3c2
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x15c]
mov dword [esp + 0x158], edi
mov esi, 8
mov dword [esp + 0x15c], 7
mov eax, dword [esp + 0xfc]
mov edi, dword [eax + 4]
call fcn.004233f0
mov edx, eax
mov dword [esp + 0xf8], edx
mov dword [edx], edi
mov dword [edx + 8], 3
mov ecx, dword [esp + 0x144]
movsd xmm0, qword [ecx]
movsd qword [edx + 0x20], xmm0
mov eax, dword [esp + 0x11c]
mov eax, dword [eax]
mov dword [edx + 4], eax
mov dword [edx + 0x48], 4
mov eax, 0xffffff
mov edi, dword [esp + 0x80]
and eax, dword [edi]
mov dword [edx + 0xc], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, 0x1d
xor edx, edx
call fcn.0057a1b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov dword [esp + 0x12c], ebx
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xb0], eax
jne 0x51e9d8
mov eax, dword [esp + 0x15c]
cmp eax, 7
mov ecx, eax
je 0x51cb51
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x51cb51
mov esi, 7
mov byte [esp + 0x13f], 0x1b
mov ecx, dword [esp + 0x144]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0xa4]
mov edx, dword [edx]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], str.Secure_storage_entry_for_feature__d_of_key__llu_seems_to_be_unexpected__n
call fcn.004414c0
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
mov ebx, dword [esp + 0x104]
cmp esi, 7
je 0x51c462
xor eax, eax
test al, al
mov edi, ebx
je 0x51d07a
jmp 0x51c462
mov dword [esp + 0x150], ebx
mov dword [esp + 0x11c], edi
mov dword [esp + 0x5c], esi
xor edx, edx
jmp 0x51e57e
mov ecx, 0x14
mov esi, edx
and esi, 1
xor esi, edx
cmp esi, 0xffffffff
setne bl
movzx esi, bl
add edx, esi
mov dword [esp + 0x120], eax
mov esi, edx
or esi, 2
mov edi, edx
xor edi, 2
add edi, esi
setne bl
movzx esi, bl
cmp edx, esi
jb 0x51e560
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
jmp 0x51ec84
mov dword [esp + 0x84], edx
mov esi, dword [esp + 0xfc]
mov ecx, dword [esp + 0xec]
jmp 0x51f77d
mov dword [esp + 0x84], edx
mov ecx, dword [esp + 0xec]
jmp 0x51f784
mov dword [esp + 0x10c], ebx
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov edi, dword [esp + 0x158]
jmp 0x51f7eb
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
shr eax, 0x18
cmp eax, 1
je 0x51e676
cmp eax, 2
jne 0x51e6fe
call fcn.0042d7f0
mov esi, edi
mov edi, eax
mov eax, dword [esp + 0x170]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x174]
mov dword [edi], eax
mov eax, dword [esp + 0x200]
movzx eax, word [eax]
mov dword [edi + 8], eax
mov dword [edi + 0xc], 2
mov eax, dword [esp + 0x200]
mov ecx, 0xffffff
and ecx, dword [eax + 4]
mov dword [edi + 0x10], ecx
mov dword [esp], edi
call fcn.004120f0
mov dword [esp], edi
mov edi, esi
call fcn.00434c70
jmp 0x51e6fe
xor esi, esi
jmp 0x51e6ea
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
call fcn.0042d7f0
mov ebx, edi
mov edi, eax
mov eax, dword [esp + 0x170]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x174]
mov dword [edi], eax
mov eax, dword [esp + 0x200]
movzx eax, word [eax]
mov dword [edi + 8], eax
mov dword [edi + 0xc], 1
mov eax, dword [esp + 0x200]
mov eax, dword [eax + 4]
mov ecx, 0xffffff
and eax, ecx
mov dword [edi + 0x10], eax
mov dword [esp], edi
call fcn.004120f0
mov dword [esp], edi
mov edi, ebx
call fcn.00434c70
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x51e680
mov esi, 9
mov eax, dword [esp + 0x204]
lea ecx, [esp + 0x200]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov edx, dword [esp + 0x200]
cmp eax, ecx
jne 0x51e75d
test edx, edx
je 0x51e769
mov ebx, 0x10
mov eax, 3
sub eax, edx
xor eax, edx
mov dword [esp + 0x84], edx
jne 0x51f7d7
jmp 0x51f679
mov dword [esp + 0x84], edx
jmp 0x51f679
mov dword [esp + 0x84], edx
jmp 0x51f679
mov eax, dword [esp + 0x144]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x3a
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00509b10
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x51d341
mov dword [esp + 0xd4], eax
mov eax, 5
mov cl, 0x18
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov dword [esp + 0x12c], ebx
mov ebx, edi
cmp eax, 5
je 0x51e82f
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov edi, ebx
jne 0x51c462
jmp 0x51f63b
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov edi, ebx
jmp 0x51f63b
mov eax, dword [esp + 0x160]
jmp 0x51b6a9
mov dword [esp + 0x114], edi
mov dword [esp + 0x108], edx
mov esi, 0xb
mov al, 0x11
mov dword [esp + 0x60], eax
mov byte [esp + 0x9a], 0x1b
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x1f8], 0
movsd xmm0, qword [0x7dc5bc]
movsd qword [esp + 0x1f0], xmm0
movsd xmm0, qword [0x7dc5b4]
movsd qword [esp + 0x1e8], xmm0
movsd xmm0, qword [0x7dc5ac]
movsd qword [esp + 0x1e0], xmm0
mov edi, dword [esp + 0x144]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004125d0
lea eax, [edi + 0x9c]
mov dword [esp + 0xd0], eax
mov eax, dword [edi + 0x9c]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x118], ecx
mov ebx, dword [esp + 0x10c]
mov edi, dword [esp + 0x120]
jne 0x51bbd7
cmp esi, 3
jne 0x51e957
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov ecx, dword [esp + 0x118]
jne 0x51f1db
jmp 0x51c5c3
mov eax, dword [esp + 0x178]
mov dword [esp + 0x150], eax
mov ecx, dword [esp + 0x118]
jmp 0x51c5c3
mov dword [esp + 0x158], edi
mov dword [esp + 0x164], ebx
mov esi, 0xb
mov byte [esp + 0x14c], 6
mov eax, dword [esp + 0x6c]
mov dword [eax], 4
mov eax, dword [esp + 0x1fc]
lea ecx, [esp + 0x1f8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x12c], 0
test eax, eax
jne 0x51e9d4
test ecx, ecx
mov dword [esp + 0x58], ecx
jne 0x51c25f
jmp 0x51e9d8
mov dword [esp + 0x58], ecx
cmp esi, 8
mov bl, byte [esp + 0x154]
je 0x51d003
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x15c], eax
mov eax, 8
mov bl, byte [esp + 0x14c]
movzx edx, bl
cmp edx, 6
je 0x51ea22
mov ecx, 0xd
mov eax, 0x1c
cmp edx, 0x49
je 0x51edc6
jmp 0x51ee0d
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x118], ecx
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x12c], ecx
mov bl, byte [esp + 0x154]
mov edi, dword [esp + 0x11c]
mov esi, dword [esp + 0xf8]
mov edx, dword [esp + 0x150]
mov dword [esp + 0x150], edx
cmp eax, 8
jne 0x51eb4a
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x51eb4a
mov dword [esp + 0xf8], esi
mov dword [esp + 0x11c], edi
mov byte [esp + 0x154], bl
xor esi, esi
mov bl, byte [esp + 0x14c]
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0xf0]
mov edi, dword [esp + 0x108]
jmp 0x51eaf4
mov bl, 0x49
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x1fc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x1fc], 0
xor edi, edi
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x114], 0
xor edx, edx
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x51eab0
mov dword [esp + 0xf0], edx
mov dword [esp + 0x100], ecx
mov byte [esp + 0x14c], bl
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
mov esi, edi
mov eax, dword [esp + 0x114]
mov dword [esp + 0x50], eax
jmp 0x51d1b7
mov byte [esp + 0x154], bl
mov byte [esp + 0x8b], 0x3e
mov eax, dword [esi + 0x14]
mov dword [esp + 0xf8], esi
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, eax
and ecx, 1
mov eax, ecx
imul eax, eax
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
mov eax, 0xffffffff
mov edx, dword [esp + 0x16c]
cmove eax, edx
mov dword [esp + 0x18c], eax
jmp 0x51cd3d
cmp eax, 5
jne 0x51e971
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x51e971
mov edx, dword [esp + 0x12c]
jmp 0x51bf3c
mov eax, 0xd
mov byte [esp + 0x14f], 0x17
mov ecx, dword [esp + 0xc8]
mov ecx, dword [ecx]
mov dword [esp + 0x8c], ecx
and ecx, 0xff000000
cmp ecx, 0x3000000
je 0x51ec08
xor ecx, ecx
test cl, cl
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
je 0x51ec6e
jmp 0x51ef8d
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
jmp 0x51ef8d
movzx eax, byte [esp + 0x14f]
cmp eax, 0x17
je 0x51ebc4
cmp eax, 0x39
je 0x51beff
mov eax, 5
mov byte [esp + 0x14f], 0x7b
mov ecx, dword [esp + 0xc8]
mov ecx, dword [ecx]
mov dword [esp + 0x8c], ecx
and ecx, 0xff000000
cmp ecx, 0x3000000
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
je 0x51eba0
mov ecx, 0xf
movzx eax, byte [esp + 0x14e]
cmp eax, 0x3b
jne 0x51c292
mov edx, dword [esp + 0x150]
cmp ecx, 0xf
mov esi, dword [esp + 0x104]
jne 0x51d33a
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x51d33a
mov dword [esp + 0x150], edx
mov dword [esp + 0x158], edi
mov dword [esp + 0x164], ebx
mov eax, dword [esp + 0x1fc]
lea ecx, [esp + 0x1f8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov edx, dword [esp + 0x1f8]
test eax, eax
jne 0x51ed3e
mov byte [esp + 0x14e], 0x3b
test edx, edx
je 0x51ed59
mov edi, 0x1a
mov eax, edx
not eax
and eax, 1
add eax, edx
mov dword [esp + 0xc8], edx
mov dword [esp + 0x15c], esi
mov edx, dword [esp + 0x150]
je 0x51e9f6
cmp edi, 0xc
je 0x51ca84
mov dword [esp + 0x150], edx
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x12c], eax
jmp 0x51ec1b
mov dword [esp + 0xc8], edx
mov byte [esp + 0x14e], 0x3b
mov dword [esp + 0x15c], esi
jmp 0x51e9f6
mov dword [esp + 0xc8], edx
mov dword [esp + 0x15c], esi
jmp 0x51e9f6
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x188], ecx
xor edx, edx
jmp 0x51cfcb
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x51eeb5
mov byte [esp + 0x127], bl
mov dword [esp + 0x158], edi
mov ecx, 0xc
mov eax, 0xe
mov byte [esp + 0x77], 0x76
test byte [esp + 0x57], 1
mov bl, byte [esp + 0x14c]
je 0x51ee0d
mov byte [esp + 0x14c], bl
xor esi, esi
cmp eax, 0xe
jne 0x51ee53
imul eax, eax
and eax, 3
cmp eax, 2
mov ebx, 0
jae 0x51c563
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov ebx, dword [esp + 0x15c]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x158]
jmp 0x51ceea
cmp ecx, 0xc
jne 0x51ee5a
mov byte [esp + 0x14c], bl
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov ebx, dword [esp + 0x15c]
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x18c], ecx
mov edi, dword [esp + 0x158]
mov ecx, dword [esp + 0x188]
jmp 0x51ed6c
xor ebx, ebx
jmp 0x51c563
mov esi, 0xa
mov bl, 6
mov eax, dword [esp + 0x1fc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x1fc], 0
xor edx, edx
mov eax, dword [esp + 0x15c]
xor edi, edi
xor ecx, ecx
mov dword [esp + 0xf0], ecx
mov byte [esp + 0x14c], bl
cmp esi, 6
jne 0x51ef0d
mov dword [esp + 0x100], eax
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
jne 0x51e850
jmp 0x51ef14
mov esi, dword [esp + 0x144]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0xc], esi
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x4aebe0
call fcn.004241c0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0xc], esi
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x4aee30
call fcn.00430b10
mov dword [esp + 0x160], 0
mov eax, dword [esp + 0x160]
jmp 0x51b6a9
mov dword [esp + 0x100], eax
mov esi, edx
mov dword [esp + 0x50], edi
jmp 0x51d1b7
mov dword [esp + 0x11c], edi
mov ecx, 0xa
mov byte [esp + 0xf7], 0x31
test esi, esi
jne 0x51efb2
mov byte [esp + 0xb7], 0x36
mov eax, 0xe
mov edx, esi
and edx, 1
xor edx, esi
not edx
test edx, edx
mov edx, dword [esp + 0x118]
mov dword [esp + 0x160], edx
mov edx, dword [esp + 0x178]
mov dword [esp + 0x150], edx
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x12c], edx
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
je 0x51d556
cmp eax, 0xd
mov edx, dword [esp + 0x150]
mov esi, dword [esp + 0x12c]
je 0x51d4aa
mov dword [esp + 0x178], edx
mov edx, esi
jmp 0x51d4c3
mov byte [esp + 0xb7], 0x36
jmp 0x51d541
mov byte [esp + 0x9b], 0x1e
mov edx, dword [ecx + 4]
test edx, edx
mov ebx, dword [esp + 0x10c]
jne 0x51eff3
mov eax, edx
or eax, 2
mov ecx, edx
mov dword [esp + 0xe8], edx
xor ecx, 2
add ecx, eax
jne 0x51f1db
jmp 0x51f0bc
mov dword [esp + 0xe8], edx
jmp 0x51f0bc
mov dword [esp + 0x168], ecx
or eax, 1
test eax, eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x184], eax
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x188], ecx
mov al, byte [esp + 0x98]
mov dword [esp + 0x180], eax
mov dword [esp + 0xb8], edx
mov ebx, dword [esp + 0x164]
mov edx, dword [esp + 0x15c]
jne 0x51f29f
mov dword [esp + 0x158], edi
movzx eax, byte [esp + 0x9b]
cmp eax, 5
mov edi, dword [esp + 0x120]
mov ecx, dword [esp + 0xb8]
je 0x51dd95
mov dword [esp + 0x15c], edx
mov dword [esp + 0x164], ebx
cmp eax, 0x1e
je 0x51efbf
mov byte [esp + 0x9b], 0x58
mov eax, dword [ecx + 4]
mov dword [esp + 0xe8], eax
test eax, eax
mov ebx, dword [esp + 0x10c]
je 0x51f1db
mov al, byte [esp + 0xc7]
movzx edx, al
cmp edx, 0x1d
je 0x51ddee
mov dword [esp + 0x120], edi
mov eax, 0xf
mov ecx, 0x10
cmp edx, 0x38
mov edx, dword [esp + 0x18c]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x184]
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x188]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x180]
jne 0x51f20e
mov byte [esp + 0x98], dl
mov dword [esp + 0x10c], ebx
cmp ecx, 7
mov cl, byte [esp + 0xe5]
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0xd8]
je 0x51f2c2
mov al, 1
test al, al
je 0x51f2c2
mov byte [esp + 0xc7], 0x1d
mov edx, dword [esp + 0xe8]
mov ecx, dword [edx + 0xc]
mov eax, 0xff000000
and eax, dword [ecx]
cmp eax, 0x1000000
mov edi, dword [esp + 0x158]
je 0x51efff
mov dword [esp + 0x168], ecx
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x188], eax
mov al, byte [esp + 0x98]
mov dword [esp + 0x180], eax
mov dword [esp + 0xb8], edx
mov ebx, dword [esp + 0x164]
mov edx, dword [esp + 0x15c]
jmp 0x51f05e
movzx eax, byte [esp + 0xe7]
cmp eax, 0x21
je 0x51f33e
cmp eax, 0x50
je 0x51f348
cmp eax, 0x7e
mov esi, dword [ebp + 0x18]
je 0x51e14b
mov byte [esp + 0xe7], 0x30
jmp 0x51e153
cmp eax, 0xf
jne 0x51f36d
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov edi, dword [esp + 0x11c]
je 0x51f3b0
mov byte [esp + 0x98], dl
mov dword [esp + 0x10c], ebx
mov esi, 8
mov byte [esp + 0xc7], 0x38
mov edx, dword [esp + 0xe8]
mov ecx, dword [edx + 0xc]
mov eax, 0xff000000
and eax, dword [ecx]
cmp eax, 0x1000000
jne 0x51f411
mov dword [esp + 0x168], ecx
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0xb8], edx
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 0xac]
je 0x51f5e0
mov dword [esp + 0xac], ecx
mov dword [esp + 0x15c], edx
mov dword [esp + 0x158], edi
mov dword [esp + 0x164], ebx
xor ebx, ebx
jmp 0x51e0ba
mov eax, dword [esp + 0xf0]
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x160], ebx
mov ebx, dword [esp + 0x15c]
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x188], edx
mov dword [esp + 0x184], esi
mov dword [esp + 0x18c], edi
mov edx, dword [esp + 0x178]
mov dword [esp + 0x150], edx
mov dword [esp + 0x180], ecx
xor ecx, ecx
mov edx, 0xffffffff
mov esi, dword [esp + 0x150]
mov dword [esp + 0x178], esi
mov ah, byte [esp + 0x154]
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x9c]
jmp 0x51c6b5
mov byte [esp + 0xe7], 0x50
jmp 0x51f350
mov byte [esp + 0xe7], 0x7e
test byte [esp + 0x99], 1
mov esi, dword [ebp + 0x18]
je 0x51e161
mov dword [esp + 0x120], edi
jmp 0x51e5d4
mov dword [esp + 0x10c], ebx
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x188], eax
mov al, dl
mov dword [esp + 0x180], eax
mov edi, dword [esp + 0x11c]
jmp 0x51f3ea
mov dword [esp + 0x10c], ebx
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x188], eax
mov al, dl
mov dword [esp + 0x180], eax
mov esi, dword [esp + 0x110]
mov dword [esp + 0x110], esi
movzx eax, byte [esp + 0xb7]
cmp eax, 0x36
mov esi, dword [ebp + 0x24]
je 0x51d34d
jmp 0x51ef1f
mov dword [esp + 0x168], ecx
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 0xac]
jmp 0x51f5e0
mov eax, 9
mov ecx, dword [esp + 0x40]
movzx ecx, cl
cmp ecx, 0x18
jne 0x51e775
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x18c]
cmp eax, 8
jne 0x51f473
mov eax, edx
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0x188]
jmp 0x51ed6c
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x18c], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x144]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x3a
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00509b10
mov dword [esp + 0x160], eax
test eax, eax
mov dword [esp + 0xd4], eax
jne 0x51e844
jmp 0x51f63b
mov esi, 9
mov byte [esp + 0x127], 0x52
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add edi, eax
mov ebx, dword [esp + 0x144]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x4aebe0
call fcn.004241c0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x4aee30
call fcn.00430b10
xor ecx, ecx
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x51f500
mov dword [esp + 0xd4], ecx
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0x188]
mov eax, dword [esp + 0x180]
mov byte [esp + 0x98], al
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xe8], eax
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
cmp esi, 8
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], ecx
mov al, byte [esp + 0x98]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xb8], eax
jne 0x51e844
jmp 0x51f05e
mov bl, byte [esp + 0x127]
movzx ecx, bl
cmp ecx, 0x52
je 0x51f6b6
mov eax, 0x11
mov esi, 0xf
cmp ecx, 0x61
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x160], ecx
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x15c], ecx
je 0x51ed81
cmp esi, 9
mov ecx, dword [esp + 0xec]
mov ebx, dword [esp + 0x150]
je 0x51f753
mov dword [esp + 0x158], edi
xor eax, eax
test al, al
jne 0x51f75a
xor edi, edi
mov byte [esp + 0x127], al
mov ecx, dword [esp + 0xd4]
jmp 0x51f564
mov dword [esp + 0x158], edi
mov ebx, dword [esp + 0x17c]
mov esi, 0x14
mov byte [esp + 0x127], 0x61
mov edi, dword [esp + 0x144]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0xc], edi
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x4aebe0
call fcn.004241c0
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0xc], edi
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x4aee30
call fcn.00430b10
xor eax, eax
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x15c], ecx
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x178], ecx
mov edi, dword [esp + 0x11c]
mov dword [esp + 0x17c], ebx
cmp esi, 0xd
jne 0x51d341
mov dword [esp + 0xd4], eax
jmp 0x51dd35
mov dword [esp + 0x158], edi
mov eax, dword [esp + 0x118]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x15c], eax
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0x108]
mov dword [esp + 0x150], ebx
mov dword [esp + 0x108], edi
mov dword [esp + 0xec], ecx
mov dword [esp + 0xfc], esi
mov ebx, 0x1b
mov eax, dword [esp + 0x204]
mov dword [esp], eax
call fcn.00595380
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x118], eax
mov edi, dword [esp + 0x158]
cmp ebx, 0x10
jne 0x51f7eb
mov eax, ebx
not eax
and eax, 1
add eax, ebx
jne 0x51e603
mov eax, 0x11
mov byte [esp + 0x127], 0x61
mov cl, 0x18
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xd0]
mov ecx, dword [ecx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp ecx, edx
mov ebx, dword [esp + 0x12c]
jne 0x51f63b
cmp eax, 7
jne 0x51f439
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x51f439
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
mov dl, byte [esp + 0xab]
jmp 0x51d8fd