Function at 0x53aa50
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x8b0
cmp dword [ebp + 0xc], 0x28
mov ebx, 0x6df9b4ab
jne 0x53b5df
mov dword [esp + 0x5dc], 0
xorpd xmm0, xmm0
movapd xmmword [esp + 0x5c0], xmm0
mov eax, dword [0x80dc34]
mov dword [esp], eax
call fcn.007c74c0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x53ca8a
add ebx, 0x92064b64
mov dword [esp + 0x59c], eax
mov byte [esp + 0x5b0], al
mov byte [esp + 0x598], al
mov byte [esp + 0x594], al
mov byte [esp + 0x5a4], al
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x590], eax
mov dword [esp + 0x58c], eax
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x5a8], eax
mov dword [esp + 0x5b8], eax
mov dword [esp + 0x5ac], eax
mov dword [esp + 0x5bc], eax
jmp 0x53ad60
mov dword [esp + 0x5a0], ecx
mov dword [esp + 0x5b4], eax
mov esi, 5
mov eax, dword [esp + 0x5dc]
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 0x2c], 1
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0x27
call fcn.0053aa50
cmp esi, 5
jne 0x53ad40
mov dword [esp + 0x5b8], eax
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x53ad47
nop word [eax + eax]
movzx eax, byte [esp + 0x5b0]
cmp eax, 0x3e
je 0x53abf0
cmp eax, 0x55
jne 0x53ac50
mov byte [esp + 0x5b0], 0x59
call fcn.00597bd0
mov eax, dword [0x80dc34]
mov dword [esp], eax
call fcn.007c74e0
test eax, eax
je 0x53ac80
jmp 0x53ca79
call fcn.00597bd0
mov eax, dword [0x80dc34]
mov dword [esp], eax
call fcn.007c74e0
test eax, eax
jne 0x53ca79
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x53ca79
mov ecx, 8
mov byte [esp + 0x5b0], 0x3e
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x59c], eax
cmp ecx, 7
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5b8], eax
je 0x53b590
jmp 0x53ac80
mov byte [esp + 0x5b0], 0x55
call fcn.00597bd0
mov eax, dword [0x80dc34]
mov dword [esp], eax
call fcn.007c74e0
test eax, eax
je 0x53ac80
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x53ca79
nop dword [eax]
mov ecx, 0xa
mov ebx, dword [esp + 0x5dc]
test ebx, ebx
je 0x53ac98
xor edi, edi
xor eax, eax
test al, al
je 0x53acee
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x59c], eax
mov dword [esp + 0x5a0], eax
cmp ecx, 3
je 0x53b260
xor eax, eax
test al, al
jne 0x53b260
jmp 0x53c080
mov esi, 0xd
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
call fcn.00627240
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jb 0x53acd0
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x59c], eax
mov dword [esp + 0x5a0], eax
mov ebx, dword [esp + 0x5a8]
cmp esi, 9
je 0x53ae90
xor eax, eax
test al, al
jne 0x53ae90
jmp 0x53c080
mov dword [esp + 0x5b8], eax
xor ebx, ebx
mov ecx, dword [esp + 0x5b4]
jmp 0x53b574
cmp ebx, 3
je 0x53ada0
xor eax, eax
test al, al
jne 0x53ada0
mov esi, 0x17
mov byte [esp + 0x598], 0x7e
call fcn.005974c0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x53aef0
mov byte [0x80dc38], 1
jmp 0x53af70
mov esi, 0x10
mov eax, dword [esp + 0x5dc]
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 0x2c], 1
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0x27
call fcn.0053aa50
mov dword [esp + 0x5b8], eax
cmp esi, 0x10
je 0x53abb0
nop dword [eax + eax]
mov edi, 3
mov esi, 8
mov byte [esp + 0x5a4], 0x5f
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0040b720
mov dword [esp + 0x5b8], 0x7000004c
test eax, eax
mov ebx, dword [esp + 0x5a8]
je 0x53b320
cmp esi, 4
jne 0x53abb0
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x53abb0
mov byte [esp + 0x5a4], 0x3e
mov eax, dword [esp + 0x5dc]
mov ebx, dword [eax + 0xc]
nop word cs:[eax + eax]
mov esi, 0xc
mov eax, dword [ebx + 0x1c]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
setne cl
test eax, eax
movzx eax, cl
lea ecx, [eax*4 + 4]
mov eax, 4
cmove ecx, eax
mov dword [esp + 0x5ac], ecx
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.0059ab80
mov dword [esp + 0x5b8], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x5a8], ebx
jne 0x53abb0
cmp esi, 0xc
mov ebx, dword [ebp + 0x1c]
jne 0x53af70
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x53af70
mov esi, 0xf
lea eax, [esp + 0x5c0]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0059a7b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x53b4d3
mov al, 1
test al, al
jne 0x53b070
mov ebx, 0xa
mov esi, 0x14
mov al, 1
movzx eax, al
cmp eax, 0x38
mov ecx, dword [esp + 0x5b4]
je 0x53b0b0
jmp 0x53b025
movzx eax, byte [esp + 0x598]
cmp eax, 0x21
jne 0x53afc0
mov byte [esp + 0x598], 0x7e
mov dword [esp + 0x5b4], 0x7000000b
call fcn.00595a60
test eax, eax
je 0x53b000
cmp eax, 0x50007
je 0x53ad47
mov ecx, 7
cmp eax, 0x5000f
je 0x53b59b
jmp 0x53ac34
mov ebx, 7
mov byte [esp + 0x598], 0x21
mov dword [esp + 0x5b4], 0x7000000b
call fcn.00595a60
test eax, eax
je 0x53b020
mov esi, 0xd
cmp eax, 0x50007
je 0x53b060
cmp eax, 0x5000f
je 0x53b59b
jmp 0x53b590
mov eax, dword [esp + 0x5a0]
mov ecx, 3
jmp 0x53aca6
mov ecx, 0x7000000b
mov dword [esp + 0x5b4], ecx
cmp ebx, 7
jne 0x53b040
mov eax, 3
sub eax, ebx
xor eax, ebx
jne 0x53b260
mov al, 0x7c
mov cl, 0x23
mov edx, dword [esp + 0x5c4]
mov dword [esp + 0x5bc], edx
cmp edx, 2
jae 0x53b187
jmp 0x53b0f9
mov eax, dword [esp + 0x5b8]
jmp 0x53ab86
mov al, 0x7c
mov ebx, dword [esp + 0x5c4]
cmp ebx, 1
ja 0x53b09a
mov cl, 0x23
mov edx, ebx
or edx, 2
mov esi, ebx
mov dword [esp + 0x5bc], ebx
xor esi, 2
add esi, edx
jne 0x53b0f9
jmp 0x53b187
mov dword [esp + 0x5bc], ebx
jmp 0x53b187
cmp esi, 4
je 0x53b160
imul esi, esi
and esi, 3
cmp esi, 2
je 0x53b170
mov dword [esp + 0x5b4], ecx
mov al, 0x7c
mov esi, dword [esp + 0x5c4]
cmp esi, 1
ja 0x53b180
mov cl, 0x23
mov edx, esi
not edx
and edx, 1
add edx, esi
mov dword [esp + 0x5bc], esi
je 0x53b187
mov eax, 0xf
movzx ecx, cl
xor esi, esi
cmp ecx, 0x23
mov ebx, dword [ebp + 0x1c]
jne 0x53b13c
jmp 0x53b380
cmp eax, 2
adc esi, 0
mov eax, dword [esp + 0x5c8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x5bc]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], str.VLIB_for_vendor__d_has_a_version__d._d_which_doesnt_support_Certificate_licenses._Please_upgrade_your_VLIB_n
call fcn.004414c0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb ecx, ecx
and ecx, 1
cmp esi, ecx
jb 0x53b110
jmp 0x53b3bd
mov dword [esp + 0x5b4], ecx
jmp 0x53b59b
mov dword [esp + 0x5b4], ecx
jmp 0x53b59b
mov dword [esp + 0x5bc], esi
mov ebx, 3
movzx eax, al
cmp eax, 0x26
je 0x53ad60
mov ebx, 0x15
xor esi, esi
cmp eax, 0x7c
je 0x53b23d
mov eax, dword [esp + 0x5b4]
mov ecx, dword [esp + 0x5a0]
jmp 0x53b5c3
mov edi, 0x16
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov eax, dword [esp + 0x5dc]
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 0x2c], 1
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0x27
call fcn.0053aa50
mov dword [esp + 0x5b8], eax
test esi, esi
jne 0x53b46c
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x53b1c0
jmp 0x53b46c
mov byte [esp + 0x5b0], 0x59
lea eax, [esp + 0x5dc]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
call fcn.00627130
mov dword [esp + 0x5b8], 0x70000013
test eax, eax
jne 0x53abb0
mov eax, dword [esp + 0x5dc]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x53b2f0
xor eax, eax
test al, al
jne 0x53b300
mov edi, 8
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x5b8], 0x70000013
test ecx, ecx
jne 0x53b30c
mov esi, 9
mov eax, 3
sub eax, ecx
xor eax, ecx
mov dword [esp + 0x58c], ecx
mov dword [esp + 0x590], ebx
jne 0x53ad1e
jmp 0x53b320
mov dword [esp + 0x590], ebx
jmp 0x53abb0
mov dword [esp + 0x590], ebx
jmp 0x53abb0
mov dword [esp + 0x58c], ecx
mov dword [esp + 0x590], ebx
nop word [eax + eax]
cmp edi, 3
jne 0x53b430
mov eax, edi
not eax
and eax, 1
add eax, edi
je 0x53b430
xor eax, eax
movzx ecx, byte [esp + 0x5a4]
cmp ecx, 0x3e
je 0x53b3f0
mov esi, 4
cmp ecx, 0x5f
jne 0x53b540
mov eax, 8
mov byte [esp + 0x5a4], 0x1f
mov ecx, dword [esp + 0x5dc]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x5a8], ecx
mov ebx, dword [ebp + 0x1c]
nop word [eax + eax]
cmp eax, 8
je 0x53b410
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x53b420
mov eax, dword [esp + 0x5c8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x5bc]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], str.VLIB_for_vendor__d_has_a_version__d._d_which_doesnt_support_Certificate_licenses._Please_upgrade_your_VLIB_n
call fcn.004414c0
mov dword [esp + 0x5b8], 0x70000038
jmp 0x53abb0
mov byte [esp + 0x5a4], 0x5f
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov ecx, dword [esp + 0x5dc]
mov ebx, dword [ecx + 0xc]
test eax, eax
jne 0x53ae90
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x53b3d0
jmp 0x53ae90
mov ebx, dword [esp + 0x5a8]
jmp 0x53ae90
mov ebx, dword [esp + 0x5a8]
jmp 0x53ae90
mov edi, 9
mov byte [esp + 0x594], 0x35
mov eax, dword [esp + 0x58c]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x590]
mov ebx, eax
mov dword [esp + 0x5a8], eax
je 0x53ae90
cmp edi, 9
jne 0x53abb0
nop word cs:[eax + eax]
mov esi, 0x1a
movzx eax, byte [esp + 0x594]
cmp eax, 0x35
jne 0x53b4d0
mov esi, 0x19
mov byte [esp + 0x594], 0x3a
mov dword [esp + 0x5b8], 0x70000007
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x53ae0f
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne 0x53abb0
jmp 0x53ae0f
mov ebx, dword [ebp + 0x1c]
cmp esi, 0xf
je 0x53b520
imul esi, esi
and esi, 3
cmp esi, 2
je 0x53b520
mov byte [esp + 0x594], 0x35
mov eax, dword [ebp + 8]
test eax, eax
jne 0x53ae20
imul eax, eax
and eax, 3
mov dword [esp + 0x5b8], 0x70000007
cmp eax, 2
jb 0x53abb0
jmp 0x53ae20
mov dword [esp + 4], ebx
mov dword [esp], str.VLIB_for_vendor__d_is_not_available_n
call fcn.004414c0
mov dword [esp + 0x5b8], 0x70000030
jmp 0x53abb0
mov dword [esp + 0x5a8], ebx
jmp 0x53ae57
mov esi, 4
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
adc ebx, 0
mov dword [esp], str.Fridge_is_not_supported_in_this_machine_n
call fcn.004414c0
mov ecx, 0x70000052
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
test ebx, ebx
je 0x53b550
test eax, eax
je 0x53b550
jmp 0x53b0b0
mov dword [esp + 0x5b4], 0x7000002b
mov ebx, 0xc
call fcn.00597bd0
mov eax, dword [0x80dc34]
mov dword [esp], eax
call fcn.007c74e0
test eax, eax
mov eax, dword [esp + 0x5b4]
mov ecx, eax
jne 0x53ca79
cmp ebx, 0xc
jne 0x53ab10
mov dword [esp + 0x5a0], ecx
mov eax, dword [esp + 0x5a0]
jmp 0x54a49a
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x7a4], 0
mov dword [esp + 0x7a0], 0xffffffff
lea eax, [esp + 0x620]
mov dword [esp], eax
mov dword [esp + 8], 0x180
mov dword [esp + 4], 0
call fcn.007ce3c0
mov dword [esp + 0x61c], 0
mov dword [esp + 0x618], 0
mov byte [esp + 0x617], 0
mov dword [esp + 0x60c], 0
mov dword [esp + 0x608], 0
mov dword [esp + 0x604], 0
mov dword [esp + 0x600], 0
mov dword [esp + 0x5fc], 0
mov dword [esp + 0x5f8], 0
xorpd xmm0, xmm0
movapd xmmword [esp + 0x5e0], xmm0
test esi, esi
setne al
mov ecx, 3
sub ecx, esi
xor ecx, esi
setne cl
and cl, al
mov byte [esp + 0x45e], cl
mov ecx, dword [edi + 0xc]
test ecx, ecx
jne 0x53c08c
mov eax, ecx
not eax
and eax, 1
add eax, ecx
je 0x53c08c
mov dword [esp + 0x240], ecx
mov byte [esp + 0x244], al
mov byte [esp + 0x507], al
mov byte [esp + 0x305], al
mov byte [esp + 0x4b3], al
mov byte [esp + 0x18f], al
mov byte [esp + 0x4ff], al
mov byte [esp + 0x34b], al
mov byte [esp + 0x11b], al
mov byte [esp + 0x51f], al
mov byte [esp + 0x2e3], al
mov byte [esp + 0x476], al
mov byte [esp + 0x443], al
mov byte [esp + 0x2c7], al
mov byte [esp + 0x303], al
mov dword [esp + 0x580], 0
mov dword [esp + 0x518], 0x70000013
mov dword [esp + 0xa0], eax
mov dword [esp + 0x4b8], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x338], eax
mov dword [esp + 0x43c], eax
mov dword [esp + 0x494], eax
mov dword [esp + 0x57c], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x3e8], eax
mov dword [esp + 0x34c], eax
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x508], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x3a0], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x3f4], eax
mov dword [esp + 0x35c], eax
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3fc], eax
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x330], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x598], eax
mov dword [esp + 0x58c], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x3e0], eax
mov dword [esp + 0x390], eax
mov dword [esp + 0x268], eax
mov dword [esp + 0x438], eax
mov dword [esp + 0x328], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x4c0], eax
mov dword [esp + 0x354], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x55c], eax
mov dword [esp + 0x3d8], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x560], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x4c4], eax
mov dword [esp + 0x5b8], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0x320], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x2bc], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x310], eax
mov dword [esp + 0x468], eax
mov dword [esp + 0x464], eax
mov dword [esp + 0x480], eax
mov dword [esp + 0x47c], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x400], eax
mov dword [esp + 0x594], eax
mov dword [esp + 0x498], eax
mov dword [esp + 0x4d0], eax
mov dword [esp + 0x510], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x50c], eax
mov dword [esp + 0x554], eax
mov dword [esp + 0x550], eax
mov dword [esp + 0x454], eax
mov dword [esp + 0x39c], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x4d4], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x4dc], eax
mov dword [esp + 0x4c8], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x380], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x4b4], eax
mov dword [esp + 0x578], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x418], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x49c], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x36c], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x524], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x370], eax
mov dword [esp + 0x420], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x444], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x548], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x350], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x384], eax
mov dword [esp + 0x404], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x4f4], eax
mov dword [esp + 0x500], eax
mov dword [esp + 0x4f0], eax
mov dword [esp + 0x4e0], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x33c], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x434], eax
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x4cc], eax
mov dword [esp + 0x470], eax
mov dword [esp + 0x4f8], eax
mov dword [esp + 0x4ac], eax
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x534], eax
mov dword [esp + 0x424], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x520], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x358], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x4bc], eax
mov dword [esp + 0x4a8], eax
mov dword [esp + 0x374], eax
mov dword [esp + 0x3dc], eax
mov dword [esp + 0x38c], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x378], eax
mov dword [esp + 0x428], eax
mov dword [esp + 0x430], eax
mov dword [esp + 0x42c], eax
mov dword [esp + 0x4e8], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x52c], eax
mov dword [esp + 0x538], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x368], eax
mov dword [esp + 0x3d4], eax
mov dword [esp + 0x364], eax
mov dword [esp + 0x44c], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x570], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x46c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x37c], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x53c], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x3d0], eax
mov dword [esp + 0x514], eax
mov dword [esp + 0x558], eax
mov dword [esp + 0x5a4], eax
mov dword [esp + 0x5a8], eax
mov dword [esp + 0x5bc], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x564], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x568], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x458], eax
mov dword [esp + 0x3ec], eax
mov dword [esp + 0x460], eax
mov dword [esp + 0x4e4], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x544], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x5ac], eax
mov dword [esp + 0x48c], eax
mov dword [esp + 0x488], eax
mov dword [esp + 0x410], eax
mov dword [esp + 0x478], eax
mov dword [esp + 0x178], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x540], eax
mov byte [esp + 0x38b], al
mov byte [esp + 0x41f], al
mov byte [esp + 0x3c3], al
mov byte [esp + 0x306], al
mov byte [esp + 0x417], al
mov byte [esp + 0x56e], al
mov byte [esp + 0x577], al
mov byte [esp + 0x477], al
mov byte [esp + 0x29b], al
mov byte [esp + 0x3a9], al
mov byte [esp + 0x212], al
mov byte [esp + 0x307], al
mov byte [esp + 0x197], al
mov byte [esp + 0x103], al
mov byte [esp + 0x2cf], al
mov byte [esp + 0x245], al
mov byte [esp + 0x177], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0x31b], al
mov byte [esp + 0x2cd], al
mov byte [esp + 0x25b], al
mov byte [esp + 0x1bf], al
mov byte [esp + 0x590], al
mov byte [esp + 0x195], al
mov byte [esp + 0xeb], al
mov byte [esp + 0x2ce], al
mov byte [esp + 0x67], al
mov byte [esp + 0x3ab], al
mov byte [esp + 0x1be], al
mov byte [esp + 0x3a8], al
mov byte [esp + 0x52b], al
mov byte [esp + 0x362], al
mov byte [esp + 0x127], al
mov byte [esp + 0x4ef], al
mov byte [esp + 0x196], al
mov byte [esp + 0x3e7], al
mov byte [esp + 0x45f], al
mov byte [esp + 0x2c6], al
mov byte [esp + 0x4a3], al
mov byte [esp + 0x487], al
mov byte [esp + 0x486], al
mov byte [esp + 0x2af], al
mov byte [esp + 0x2f2], al
mov byte [esp + 0xb7], al
mov byte [esp + 0x3fb], al
mov byte [esp + 0x283], al
mov byte [esp + 0x533], al
mov byte [esp + 0x343], al
mov byte [esp + 0x453], al
mov byte [esp + 0x147], al
mov byte [esp + 0x2d7], al
mov byte [esp + 0x13f], al
mov byte [esp + 0x247], al
mov byte [esp + 0x3cf], al
mov byte [esp + 0x31a], al
mov byte [esp + 0x363], al
mov byte [esp + 0x21f], al
mov byte [esp + 0x163], al
mov byte [esp + 0x273], al
mov byte [esp + 0x2ae], al
mov byte [esp + 0x1df], al
mov byte [esp + 0x56f], al
mov byte [esp + 0x304], al
mov byte [esp + 0x213], al
mov byte [esp + 0x327], al
mov byte [esp + 0x54f], al
mov byte [esp + 0x3aa], al
mov byte [esp + 0xdb], al
mov byte [esp + 0x326], al
mov byte [esp + 0x246], al
mov byte [esp + 0x2f3], al
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x4d8], eax
jmp 0x54a5ac
mov eax, dword [esp + 0x5a0]
jmp 0x54a49a
mov dword [esp + 0x240], ecx
xor bl, 0xd3
movzx eax, bl
mov dword [esp + 0x580], 0
cmp eax, 0x6a
mov byte [esp + 0x4ff], al
mov byte [esp + 0x4b3], al
mov byte [esp + 0x477], al
mov byte [esp + 0x29b], al
mov byte [esp + 0x196], al
mov byte [esp + 0x103], al
mov byte [esp + 0x273], al
mov byte [esp + 0x2ae], al
mov byte [esp + 0x326], al
mov byte [esp + 0x246], al
mov byte [esp + 0x3e7], al
mov byte [esp + 0x45f], al
mov byte [esp + 0x38b], al
mov byte [esp + 0x305], al
mov eax, 8
mov esi, 0x16
mov dword [esp + 0x518], 0x70000013
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x4b8], ecx
mov dword [esp + 0x394], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x4bc], ecx
mov dword [esp + 0x4a8], ecx
mov dword [esp + 0x478], ecx
mov dword [esp + 0x3b8], ecx
mov dword [esp + 0x458], ecx
mov dword [esp + 0x3ec], ecx
mov dword [esp + 0x460], ecx
mov dword [esp + 0x4e4], ecx
mov dword [esp + 0x294], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x2fc], ecx
mov dword [esp + 0x2f8], ecx
mov dword [esp + 0x384], ecx
mov dword [esp + 0x268], ecx
mov dword [esp + 0x2b0], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x438], ecx
mov dword [esp + 0x57c], ecx
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x2a8], ecx
mov dword [esp + 0x2a4], ecx
mov dword [esp + 0x328], ecx
mov dword [esp + 0x3a0], ecx
mov dword [esp + 0x398], ecx
mov dword [esp + 0x39c], ecx
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x4d4], ecx
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x2e4], ecx
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x178], ecx
mov dword [esp + 0x434], ecx
mov dword [esp + 0x3f0], ecx
mov dword [esp + 0x4cc], ecx
mov dword [esp + 0x470], ecx
mov dword [esp + 0x4f8], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x4f0], ecx
mov dword [esp + 0x4e0], ecx
mov dword [esp + 0x290], ecx
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x4dc], ecx
mov dword [esp + 0x4c8], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x380], ecx
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x560], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x4c0], ecx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x598], ecx
mov dword [esp + 0x58c], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x4ac], ecx
mov dword [esp + 0x3b0], ecx
mov dword [esp + 0x534], ecx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x354], ecx
mov dword [esp + 0x338], ecx
mov dword [esp + 0x274], ecx
mov dword [esp + 0x544], ecx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x260], ecx
mov dword [esp + 0x29c], ecx
mov dword [esp + 0x230], ecx
mov dword [esp + 0x370], ecx
mov dword [esp + 0x420], ecx
mov dword [esp + 0x224], ecx
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x358], ecx
mov dword [esp + 0x278], ecx
mov dword [esp + 0x23c], ecx
mov dword [esp + 0x288], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x334], ecx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x52c], ecx
mov dword [esp + 0x538], ecx
mov dword [esp + 0x43c], ecx
mov dword [esp + 0x3f4], ecx
mov dword [esp + 0x35c], ecx
mov dword [esp + 0x3ac], ecx
mov dword [esp + 0x3fc], ecx
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3e0], ecx
mov dword [esp + 0x390], ecx
mov dword [esp + 0x3e8], ecx
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x508], ecx
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x320], ecx
mov dword [esp + 0x494], ecx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x55c], ecx
mov dword [esp + 0x368], ecx
mov dword [esp + 0x5a4], ecx
mov dword [esp + 0x5a8], ecx
mov dword [esp + 0x5bc], ecx
mov dword [esp + 0x3d4], ecx
mov dword [esp + 0x364], ecx
mov dword [esp + 0x3dc], ecx
mov dword [esp + 0x374], ecx
mov dword [esp + 0x404], ecx
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x400], ecx
mov dword [esp + 0x510], ecx
mov dword [esp + 0x308], ecx
mov dword [esp + 0x50c], ecx
mov dword [esp + 0x554], ecx
mov dword [esp + 0x550], ecx
mov dword [esp + 0x454], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x540], ecx
mov dword [esp + 0x584], 0
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x3d8], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x4f4], ecx
mov dword [esp + 0x500], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x44c], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x214], ecx
mov dword [esp + 0x570], ecx
mov dword [esp + 0xec], ecx
mov dword [esp + 0x5b0], ecx
mov dword [esp + 0x46c], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x284], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x220], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x564], ecx
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x37c], ecx
mov dword [esp + 0x248], ecx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x250], ecx
mov dword [esp + 0x378], ecx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x568], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x27c], ecx
mov dword [esp + 0x200], ecx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x520], ecx
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x418], ecx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x49c], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x36c], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0x184], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x330], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x204], ecx
mov dword [esp + 0x3b4], ecx
mov dword [esp + 0x228], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x524], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x5ac], ecx
mov dword [esp + 0x48c], ecx
mov dword [esp + 0x488], ecx
mov dword [esp + 0x410], ecx
mov dword [esp + 0x4c4], ecx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x254], ecx
mov dword [esp + 0x2bc], ecx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x53c], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x3d0], ecx
mov dword [esp + 0x514], ecx
mov dword [esp + 0x558], ecx
mov dword [esp + 0x2b8], ecx
mov dword [esp + 0x33c], ecx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x444], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x548], ecx
mov dword [esp + 0x314], ecx
mov dword [esp + 0x238], ecx
mov dword [esp + 0x350], ecx
mov dword [esp + 0x310], ecx
mov dword [esp + 0x468], ecx
mov dword [esp + 0x464], ecx
mov dword [esp + 0x480], ecx
mov dword [esp + 0x47c], ecx
mov dword [esp + 0x5a0], ecx
mov dword [esp + 0x5b4], ecx
mov dword [esp + 0x408], ecx
mov dword [esp + 0x4a4], ecx
mov dword [esp + 0x40c], ecx
mov dword [esp + 0x424], ecx
mov dword [esp + 0x428], ecx
mov dword [esp + 0x430], ecx
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x4e8], ecx
mov dword [esp + 0x24c], ecx
mov dword [esp + 0x208], ecx
mov dword [esp + 0x4b4], ecx
mov dword [esp + 0x25c], ecx
mov dword [esp + 0x2c0], ecx
mov dword [esp + 0x2a0], ecx
mov dword [esp + 0x234], ecx
mov dword [esp + 0x2b4], ecx
mov dword [esp + 0x594], ecx
mov dword [esp + 0x498], ecx
mov dword [esp + 0x4d0], ecx
mov byte [esp + 0x3ab], cl
mov byte [esp + 0x244], cl
mov byte [esp + 0x507], cl
mov byte [esp + 0x577], cl
mov byte [esp + 0x3c3], cl
mov byte [esp + 0x2cf], cl
mov byte [esp + 0x245], cl
mov byte [esp + 0x177], cl
mov byte [esp + 0x487], cl
mov byte [esp + 0x1be], cl
mov byte [esp + 0x197], cl
mov byte [esp + 0x362], cl
mov byte [esp + 0x11b], cl
mov byte [esp + 0x51f], cl
mov byte [esp + 0x25b], cl
mov byte [esp + 0x306], cl
mov byte [esp + 0x18f], cl
mov byte [esp + 0x2ce], cl
mov byte [esp + 0x327], cl
mov byte [esp + 0x54f], cl
mov byte [esp + 0x2e3], cl
mov byte [esp + 0x213], cl
mov byte [esp + 0x2f3], cl
mov byte [esp + 0x3aa], cl
mov byte [esp + 0xdb], cl
mov byte [esp + 0x67], cl
mov byte [esp + 0x147], cl
mov byte [esp + 0x2d7], cl
mov byte [esp + 0x417], cl
mov byte [esp + 0x3a9], cl
mov byte [esp + 0x41f], cl
mov byte [esp + 0x443], dl
mov byte [esp + 0x212], dl
mov byte [esp + 0x307], dl
mov byte [esp + 0x304], dl
mov byte [esp + 0x13f], dl
mov byte [esp + 0x363], dl
mov byte [esp + 0x21f], dl
mov byte [esp + 0x163], dl
mov byte [esp + 0x56e], dl
mov byte [esp + 0x247], dl
mov byte [esp + 0x3cf], dl
mov byte [esp + 0x31a], dl
mov byte [esp + 0x52b], dl
mov byte [esp + 0x2c6], dl
mov byte [esp + 0x4a3], dl
mov byte [esp + 0x3fb], dl
mov byte [esp + 0x283], dl
mov byte [esp + 0x533], dl
mov byte [esp + 0x343], dl
mov byte [esp + 0x3a8], dl
mov byte [esp + 0x1df], dl
mov byte [esp + 0x56f], dl
mov byte [esp + 0x127], dl
mov byte [esp + 0x4ef], dl
mov byte [esp + 0x303], dl
mov byte [esp + 0x2f2], dl
mov byte [esp + 0xb7], dl
mov byte [esp + 0x195], dl
mov byte [esp + 0x2c7], dh
mov byte [esp + 0x1eb], dh
mov byte [esp + 0x31b], dh
mov byte [esp + 0x2cd], dh
mov byte [esp + 0x486], dh
mov byte [esp + 0x2af], dh
mov byte [esp + 0x453], dh
mov byte [esp + 0x1bf], dh
mov byte [esp + 0x590], dh
mov dword [esp + 0x4d8], ebx
mov dword [esp + 0x588], 0
mov dword [esp + 0x1a8], ebx
jne 0x54ba4b
jmp 0x546653
mov dword [esp], str.Failed_to_unlock_certificate_handler_n
call fcn.00441610
call fcn.0044c0d0
mov dword [esp], str.Failed_to_lock_certificate_handler_n
call fcn.00441610
call fcn.0044c0e0
mov byte [esp + 0x2f3], 0x21
mov dword [esp + 0x580], 0
mov dword [esp + 0x518], 0x70000013
mov eax, dword [esp + 0x240]
cmp dword [eax + 0x18], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0x540], eax
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
mov ebx, 0
mov edx, 0
jne 0x549d0b
mov esi, 0xb
mov byte [esp + 0x3e7], 0x4e
mov byte [esp + 0x273], 0x4f
mov edx, dword [ebp + 8]
test edx, edx
setne al
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
mov dword [esp + 0x478], 0
test al, cl
mov edi, dword [esp + 0x534]
jne 0x53cb52
mov eax, 0xd
test byte [esp + 0x213], 1
mov dword [esp + 0x4d8], edx
je 0x54a8df
jmp 0x54b953
mov dword [esp + 0x4d8], edx
jmp 0x54b953
mov ebx, dword [esp + 0x434]
mov eax, dword [ebx + 0x9c]
test eax, eax
jne 0x53cc1a
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x53cc1a
mov al, 0x32
mov esi, 0xa
movzx eax, al
cmp eax, 0x32
je 0x53cc28
mov esi, 0x1b
cmp eax, 0x33
mov ecx, dword [esp + 0x518]
jne 0x53cc42
mov edi, dword [esp + 0x588]
mov dword [esp + 0x4d8], ebx
mov dword [esp + 0x478], ebx
jmp 0x5431c4
mov dword [esp + 0x4d8], ebx
mov eax, ebx
jmp 0x54b97d
mov dword [esp + 0x4d8], ebx
mov dword [esp + 0x478], ebx
mov edx, dword [esp + 0x328]
jmp 0x53ccc8
xor esi, esi
mov edx, dword [esp + 0x540]
jmp 0x53cc94
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp], ebx
call fcn.0041d160
xor edx, edx
mov ecx, 0x70000014
mov dword [esp + 0x580], 0
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x53cc50
mov dword [esp + 0x540], edx
mov dword [esp + 0x518], ecx
mov dword [esp + 0x4d8], ebx
mov dword [esp + 0x478], ebx
jmp 0x54bf29
mov ecx, dword [esp + 0x518]
xor edi, edi
cmp esi, 0xa
je 0x53ccfb
mov dword [esp + 0x328], edx
imul esi, esi
and esi, 3
cmp esi, 3
je 0x53cd02
mov dword [esp + 0x518], ecx
mov dword [esp + 0x434], ebx
jmp 0x5427d6
mov dword [esp + 0x328], edx
mov edx, dword [esp + 0x540]
jmp 0x53cd56
mov esi, 9
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
call fcn.0041d160
xor edx, edx
mov ecx, 0x70000014
mov dword [esp + 0x580], 0
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jb 0x53cd10
mov dword [esp + 0x540], edx
mov dword [esp + 0x518], ecx
mov dword [esp + 0x434], ebx
jmp 0x53dc8e
mov esi, 0x14
mov ah, 0x4e
mov byte [esp + 0x3aa], 1
mov al, 0x2e
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebx + 0xc]
cmp dword [esp + 0x4d8], 0
sete dh
cmp dword [ecx + 0x18], 0
je 0x53d048
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov ebx, dword [esp + 0x4b4]
mov ecx, dword [esp + 0x578]
mov edx, dword [esp + 0x498]
mov edi, dword [esp + 0x4d0]
jne 0x546d7e
test byte [esp + 0x196], 1
je 0x53cea8
mov dword [esp + 0x4d0], edi
mov dword [esp + 0x498], edx
mov dword [esp + 0x578], ecx
mov dword [esp + 0x4b4], ebx
mov ecx, 0xc
mov dword [esp + 0x540], 0
mov dword [esp + 0x518], 0x70000007
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x580], eax
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
cmp ecx, 0xc
jne 0x541c25
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
mov ebx, dword [esp + 0x584]
mov edx, dword [esp + 0x588]
jne 0x549d0b
jmp 0x541c25
mov al, 0x2b
movzx eax, al
cmp eax, 0x26
je 0x53cf66
mov dword [esp + 0x498], edx
mov dword [esp + 0x578], ecx
cmp eax, 0x43
jne 0x53d009
mov dword [esp + 0x4d0], edi
mov dword [esp + 0x4b4], ebx
mov eax, 2
mov edi, dword [esp + 0x154]
mov ecx, dword [edi + 0x1a8]
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
mov dword [esp + 0x518], 0x70000042
mov dword [esp + 0x460], 0
cmp ecx, edx
mov dword [esp + 0x458], edi
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x3ec], ecx
mov dword [esp + 0x4e4], 0
mov dword [esp + 0x540], edi
mov dword [esp + 0x580], ecx
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
jne 0x548b8b
jmp 0x5474dc
mov dword [esp + 0x498], edx
mov dword [esp + 0x578], ecx
mov dword [esp + 0x4b4], ebx
mov ecx, 1
mov eax, dword [esp + 0x154]
mov edx, dword [eax + 0x1a8]
mov esi, edx
and esi, 1
xor esi, edx
cmp esi, 0xffffffff
setne bl
movzx esi, bl
mov dword [esp + 0x518], 0x70000042
mov dword [esp + 0x460], 0
cmp edx, esi
mov dword [esp + 0x458], eax
mov edx, dword [esp + 0x1d4]
mov dword [esp + 0x3ec], edx
mov dword [esp + 0x4e4], 0
mov dword [esp + 0x540], eax
mov eax, 0xe
mov dword [esp + 0x580], edx
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
jne 0x54bdae
jmp 0x53dbce
mov ecx, 0x70000007
mov eax, 0x1e
mov esi, dword [esp + 0x1d4]
mov dword [esp + 0x580], esi
mov esi, 0
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
mov dl, byte [esp + 0x590]
jmp 0x542a9c
mov eax, dword [esp + 0x59c]
cmp eax, 7
je 0x53d621
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x5bc], ecx
mov dword [esp + 0x59c], ecx
jne 0x541841
jmp 0x5474dc
mov dword [esp + 0x5bc], ecx
jmp 0x5474dc
mov byte [esp + 0x3aa], 0x61
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x7a0]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x458]
mov dword [esp], esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0x2c
call fcn.00537060
mov dword [esp + 0x1fc], eax
test eax, eax
mov dword [esp + 0x5ac], esi
mov eax, dword [esp + 0x3ec]
mov dword [esp + 0x48c], eax
mov eax, dword [esp + 0x460]
mov dword [esp + 0x488], eax
mov eax, dword [esp + 0x4e4]
mov dword [esp + 0x410], eax
je 0x53db67
mov esi, 4
mov edi, dword [esp + 0x1fc]
and edi, 0xfffffff
cmp edi, 0x40
sete al
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb dl, dl
and dl, al
mov bl, byte [esp + 0x45e]
test dl, bl
je 0x53d75c
mov dword [esp + 0x80], edi
mov eax, dword [esp + 0x458]
mov dword [esp + 0x5ac], eax
mov eax, dword [esp + 0x3ec]
mov dword [esp + 0x48c], eax
mov eax, dword [esp + 0x460]
mov dword [esp + 0x488], eax
mov eax, dword [esp + 0x4e4]
mov dword [esp + 0x410], eax
mov edi, dword [esp + 0x44c]
mov eax, dword [esp + 0x5a0]
mov ecx, dword [esp + 0x5b4]
jmp 0x542cd2
mov eax, 0x11
mov byte [esp + 0xdb], 0x1f
cmp edi, 0x34
sete dl
cmp ecx, 2
sete dh
or dh, dl
test bl, dh
je 0x53d7c6
mov dword [esp + 0x80], edi
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x5ac], ecx
mov ecx, dword [esp + 0x3ec]
mov dword [esp + 0x48c], ecx
mov ecx, dword [esp + 0x460]
mov dword [esp + 0x488], ecx
mov ecx, dword [esp + 0x4e4]
mov dword [esp + 0x410], ecx
mov bl, byte [esp + 0x303]
jmp 0x53d9e8
cmp edi, 0x4e
sete al
mov edx, edi
and edx, 1
lea esi, [edx + 1]
xor esi, edi
sete ah
or ah, al
and ah, bl
movzx eax, ah
cmp eax, 1
jne 0x53d841
mov dword [esp + 0x80], edi
mov esi, 0x13
mov eax, dword [ebp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], str.Loaded_unusable_v2c__s_for_secure_storage_ID_mismatch_n
call fcn.004414c0
mov eax, dword [esp + 0x458]
mov dword [esp + 0x5ac], eax
mov eax, dword [esp + 0x3ec]
mov dword [esp + 0x48c], eax
mov eax, dword [esp + 0x460]
mov dword [esp + 0x488], eax
mov eax, dword [esp + 0x4e4]
mov dword [esp + 0x410], eax
jmp 0x54463c
mov al, 0x71
movzx eax, al
cmp eax, 0x1b
je 0x53d8b7
cmp eax, 0x2c
jne 0x53d917
mov eax, 0x1b
mov byte [esp + 0x67], 0x13
cmp edi, 0x30
jne 0x53d96e
xor edx, edi
mov dword [esp + 0x80], edi
not edx
test edx, edx
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x5ac], ecx
mov ecx, dword [esp + 0x3ec]
mov dword [esp + 0x48c], ecx
mov ecx, dword [esp + 0x460]
mov dword [esp + 0x488], ecx
mov ecx, dword [esp + 0x4e4]
mov dword [esp + 0x410], ecx
jne 0x541b85
jmp 0x53dae8
mov eax, 0x14
mov byte [esp + 0x67], 0x13
cmp edi, 0x30
mov dword [esp + 0x80], edi
mov edx, dword [esp + 0x4e4]
je 0x53d9b2
cmp ecx, 2
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x5ac], ecx
mov ecx, dword [esp + 0x3ec]
mov dword [esp + 0x48c], ecx
mov ecx, dword [esp + 0x460]
mov dword [esp + 0x488], ecx
mov dword [esp + 0x410], edx
jne 0x53e590
jmp 0x541b7c
mov ecx, 0x1a
mov byte [esp + 0x67], 0x13
cmp edi, 0x30
mov dword [esp + 0x80], edi
mov eax, dword [esp + 0x458]
mov dword [esp + 0x5ac], eax
mov eax, dword [esp + 0x3ec]
mov dword [esp + 0x48c], eax
mov eax, dword [esp + 0x460]
mov dword [esp + 0x488], eax
mov eax, dword [esp + 0x4e4]
mov dword [esp + 0x410], eax
je 0x541b85
jmp 0x53e57c
mov dword [esp + 0x80], edi
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x5ac], ecx
mov ecx, dword [esp + 0x3ec]
mov dword [esp + 0x48c], ecx
mov ecx, dword [esp + 0x460]
mov dword [esp + 0x488], ecx
mov ecx, dword [esp + 0x4e4]
mov dword [esp + 0x410], ecx
jmp 0x53dae8
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x5ac], ecx
mov ecx, dword [esp + 0x3ec]
mov dword [esp + 0x48c], ecx
mov ecx, dword [esp + 0x460]
mov dword [esp + 0x488], ecx
mov dword [esp + 0x410], edx
jmp 0x541b7c
mov esi, dword [esp + 0x310]
cmp eax, 0xd
mov edi, dword [ebp + 0x34]
mov edx, dword [esp + 0x434]
jne 0x53da54
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x53da54
xor eax, eax
jmp 0x53da33
mov bl, 0x4e
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov ecx, dword [esp + 0x5ac]
mov dword [ecx + 0x1a8], 2
xor esi, esi
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x53da10
mov byte [esp + 0x303], bl
mov ebx, esi
jmp 0x543fb6
mov dword [esp + 0x310], esi
mov eax, 0x17
mov cl, byte [esp + 0xdb]
movzx ecx, cl
cmp ecx, 0x1a
je 0x53daa0
mov byte [esp + 0x303], bl
cmp ecx, 0x1f
mov eax, dword [ebp + 0x28]
jne 0x53dacb
mov esi, 0xb
mov byte [esp + 0xdb], 0x1a
mov dword [esp + 4], eax
mov dword [esp], str.Loaded_unusable_v2c__s_for_hardware_modified_n
call fcn.004414c0
jmp 0x547c17
mov byte [esp + 0x303], bl
mov ebx, dword [esp + 0x57c]
mov ecx, dword [esp + 0x5bc]
mov dword [esp + 0x59c], ecx
mov edx, dword [ebp + 0x28]
mov esi, dword [esp + 0x394]
jmp 0x541e7b
mov byte [esp + 0xdb], 0x1f
mov dword [esp + 4], eax
mov dword [esp], str.Loaded_unusable_v2c__s_for_hardware_modified_n
call fcn.004414c0
jmp 0x53db67
cmp eax, 0x10
je 0x540cf6
jmp 0x53e590
mov bl, 0x10
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp + 4], edi
mov dword [esp], str.Loaded_unusable_v2c__s_for_missing_VLIB_n
call fcn.004414c0
mov eax, dword [esp + 0x5ac]
mov dword [esp], eax
call fcn.00411700
mov eax, esi
not eax
and eax, 1
mov ecx, esi
add ecx, eax
setne cl
movzx ecx, cl
cmp esi, ecx
jb 0x53db00
mov byte [esp + 0x67], bl
jmp 0x53db67
mov dword [esp + 4], edx
mov dword [esp], str.Loaded_incompatible_v2c__s_meant_for_Azure_only_n
call fcn.004414c0
mov eax, dword [esp + 0x5ac]
mov dword [eax + 0x1c4], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x53dc58
mov edx, eax
or edx, 2
xor eax, 2
add eax, edx
je 0x53dc58
mov eax, 8
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x52c], 0
test edx, edx
jne 0x53dcbd
mov ecx, 5
mov esi, 3
sub esi, edx
xor esi, edx
mov esi, 0
mov dword [esp + 0x538], 0
mov edi, dword [esp + 0x4d0]
je 0x54c3d6
mov dword [esp + 0x4d0], edi
mov eax, 3
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
cmp ecx, eax
je 0x5474dc
mov byte [esp + 0x147], 0x15
mov esi, dword [esp + 0x5ac]
mov eax, dword [esi]
mov dword [esp + 0x7c], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7ac], ecx
mov dword [esp + 0x7a8], eax
lea eax, [esp + 0x7a8]
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]
mov dword [esp + 0x188], eax
test eax, eax
mov dword [esp + 0x98], esi
jne 0x53dcee
mov esi, 0x16
mov eax, dword [esp + 0x5ac]
mov dword [eax + 0x9c], 1
mov dword [eax + 0xa0], 0
mov dword [esp + 0x52c], 0
mov dword [esp + 0x538], 0
cmp esi, 9
mov ecx, dword [esp + 0x584]
mov edx, dword [esp + 0x588]
jne 0x53e0d7
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
mov ebx, ecx
jne 0x549d0b
jmp 0x53e0d7
xor esi, esi
mov edi, dword [esp + 0x4d0]
jmp 0x54c3d6
mov eax, dword [esp + 0x128]
mov eax, dword [eax + 4]
mov dword [esp + 0x188], eax
test eax, eax
je 0x53de32
xor eax, eax
test al, al
jne 0x53de32
movzx ecx, byte [esp + 0x147]
cmp ecx, 0x15
je 0x53dd38
mov eax, 8
cmp ecx, 0x24
jne 0x53dd8b
mov edx, dword [esp + 0x4e4]
mov ecx, dword [esp + 0x580]
mov dword [esp + 0x490], ecx
mov ecx, dword [esp + 0x584]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x588]
jmp 0x542b52
mov esi, dword [esp + 0x188]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x294], ecx
mov eax, dword [ecx + 0xc]
xor eax, dword [esp + 0x78]
mov ecx, dword [ecx + 8]
xor ecx, dword [esp + 0x7c]
or ecx, eax
mov ecx, 0x10
mov byte [esp + 0x147], 0x46
mov byte [esp + 0x2d7], 0x4e
je 0x53dde0
mov eax, 0x12
xor edx, edx
test dl, dl
mov dword [esp + 0x128], esi
je 0x54aac1
jmp case.0x5423f9.18
mov esi, dword [esp + 0x188]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x294], eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
xor eax, dword [esp + 0x78]
mov edx, ecx
xor edx, dword [esp + 0x7c]
or edx, eax
mov byte [esp + 0x147], 0x24
mov byte [esp + 0x2d7], 0x4e
jne 0x53ddec
mov eax, 0xa
mov edx, ecx
not edx
and edx, 1
add edx, ecx
mov dword [esp + 0x128], esi
jne 0x54548c
jmp 0x53dccb
mov dword [esp + 0x128], esi
jmp case.0x5423f9.18
mov dword [esp + 0x128], esi
jmp 0x53dccb
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x53de88
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x53de88
mov eax, 0xc
mov dword [esp + 0x518], 0x700002bb
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 0x540], ecx
mov ecx, dword [esp + 0x48c]
mov dword [esp + 0x580], ecx
mov ecx, dword [esp + 0x488]
mov edx, dword [esp + 0x410]
jmp 0x53dfa9
mov dword [esp + 4], 0x38
mov dword [esp], 1
call fcn.00493840
mov edi, eax
test edi, edi
jne 0x53df30
mov eax, 3
sub eax, edi
xor eax, edi
je 0x53df30
mov esi, 4
mov dword [esp + 0x518], 0x700002bb
mov dword [esp + 0x5a0], 0x70000003
mov dword [esp + 0x5b4], edi
mov dword [esp + 0x4cc], edi
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x540], eax
mov eax, dword [esp + 0x48c]
mov dword [esp + 0x580], eax
mov eax, dword [esp + 0x488]
mov dword [esp + 0x584], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x588], eax
cmp esi, 4
jne 0x54169b
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x54939e
jmp 0x54169b
mov dl, 0x69
mov eax, 0xf
mov ecx, 0x16
movzx edx, dl
mov dword [esp + 0x518], 0x700002bb
mov dword [esp + 0x5a0], 0x70000003
cmp edx, 0x2d
mov dword [esp + 0x5b4], edi
mov edx, dword [esp + 0x5ac]
mov dword [esp + 0x540], edx
mov edx, dword [esp + 0x48c]
mov dword [esp + 0x580], edx
mov edx, dword [esp + 0x488]
mov dword [esp + 0x584], edx
mov edx, dword [esp + 0x410]
mov dword [esp + 0x588], edx
mov bl, byte [esp + 0x45f]
je 0x549482
jmp 0x549610
mov dword [esp + 0x588], edx
mov dword [esp + 0x584], ecx
cmp eax, 0xc
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov ebx, ecx
je 0x549d0b
jmp 0x54671f
mov byte [esp + 0x45f], 0x49
mov eax, dword [ebp + 0x10]
mov dword [edi], eax
mov eax, dword [esp + 0x98]
movsd xmm0, qword [eax]
movsd qword [edi + 8], xmm0
mov dword [esp + 4], 0x1c
mov dword [esp], 1
call fcn.00493840
lea ecx, [edi + 0x14]
mov dword [esp + 0x4f8], ecx
mov dword [edi + 0x14], eax
mov dword [esp + 0x2e4], 0x70000003
test eax, eax
jne 0x53e053
mov esi, 2
mov edx, eax
or edx, 2
mov ecx, eax
mov dword [esp + 0x470], eax
xor ecx, 2
add ecx, edx
mov dword [esp + 0x2d0], edi
mov dword [esp + 0x4cc], edi
jne 0x542d0e
jmp 0x54952b
mov dword [esp + 0x470], eax
mov dword [esp + 0x2d0], edi
mov dword [esp + 0x4cc], edi
jmp 0x54952b
mov bh, 0x49
add ecx, edx
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x470]
mov dword [ecx], 0xffffffff
mov ecx, dword [esp + 0x7a0]
mov edx, dword [esp + 0x4f8]
mov edx, dword [edx]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x4cc]
mov dword [esp + 0x52c], ecx
mov dword [esp + 0x538], ecx
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
mov edi, ecx
add edi, edx
setne bl
movzx edi, bl
cmp eax, edi
jb 0x53e070
mov byte [esp + 0x45f], bh
mov dword [esp + 0x4d8], esi
mov eax, 0xb
mov byte [esp + 0x486], 0x32
mov byte [esp + 0x417], 0x44
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x3d8], ecx
cmp dword [ecx + 0x14], 0
mov ecx, dword [esp + 0x52c]
mov dword [esp + 0x4c4], ecx
mov ecx, dword [esp + 0x538]
mov dword [esp + 0x5b8], ecx
je 0x53ff71
movzx ecx, byte [esp + 0x417]
cmp ecx, 0x44
je 0x53e154
mov eax, 6
cmp ecx, 0x4e
je 0x53e20a
mov eax, 7
cmp ecx, 0x5f
jne 0x53e216
mov edi, dword [esp + 0x508]
jmp 0x53f915
mov esi, 7
mov byte [esp + 0x417], 0x5f
mov eax, 3
mov edx, dword [esp + 0x4c4]
sub eax, edx
xor ecx, ecx
xor eax, edx
lea eax, [edx + 0x10]
cmove eax, ecx
mov edi, dword [esp + 0x5ac]
lea ecx, [edi + 0x1a0]
test edx, edx
cmove eax, edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0x40
mov dword [esp], 0
xor ecx, ecx
mov edx, edi
call fcn.0057b410
mov dword [esp + 0x5a0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jne 0x54939e
jmp 0x547be0
mov esi, dword [esp + 0x508]
jmp 0x548ccd
mov byte [esp + 0x417], 0x4e
mov esi, dword [esp + 0x5ac]
lea eax, [esi + 0x1a0]
mov edx, dword [esp + 0x4c4]
lea ecx, [edx + 0x10]
test edx, edx
cmove ecx, edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0x40
mov dword [esp], 0
xor ecx, ecx
mov edx, esi
call fcn.0057b410
mov dword [esp + 0x5a0], eax
test eax, eax
mov edi, dword [esp + 0x508]
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
je 0x53e353
jmp 0x54939e
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x53f925
mov esi, 6
mov byte [esp + 0x417], 0xa
mov ebx, edi
mov edi, dword [esp + 0x5ac]
lea eax, [edi + 0x1a0]
mov edx, dword [esp + 0x4c4]
lea ecx, [edx + 0x10]
test edx, edx
cmove ecx, edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0x40
mov dword [esp], 0
xor ecx, ecx
mov edx, edi
mov edi, ebx
call fcn.0057b410
mov dword [esp + 0x5a0], eax
test eax, eax
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jne 0x5478ef
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x53e3bc
mov ebx, 0x12
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x53e3bc
mov edx, dword [esp + 0x5bc]
mov eax, dword [esp + 0x510]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x50c]
mov dword [esp + 0x490], eax
mov dword [esp + 0x508], edi
mov esi, dword [esp + 0x570]
mov edi, dword [esp + 0x5ac]
mov eax, dword [esp + 0x5a0]
mov ecx, dword [esp + 0x5b4]
jmp 0x5487ae
mov ebx, 8
mov esi, 0xf
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x15
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00553110
mov dword [esp + 0x5a0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jne 0x543b45
jmp 0x546d3f
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
mov edx, eax
add edx, ecx
setne dl
movzx edx, dl
cmp ebx, edx
jb 0x53e440
mov dword [edi + 0x1a8], 1
mov dword [esp + 0x5ac], edi
mov dword [esp + 0x480], 0
mov dword [esp + 0x464], 1
mov eax, dword [esp + 0x448]
mov dword [esp + 0x510], eax
mov eax, dword [esp + 0x490]
mov dword [esp + 0x50c], eax
mov dword [esp + 0x5bc], edx
mov eax, dword [esp + 0x4c4]
jmp 0x54332d
mov eax, dword [esp + 0x3d8]
mov edi, dword [eax + 0x1c]
test edi, edi
jne 0x53e5fc
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
je 0x53e5fc
mov dword [esp + 0x70], edi
mov al, 0x1d
mov ecx, 0xc
movzx eax, al
cmp eax, 0x3d
mov esi, dword [esp + 0x5b8]
jne 0x548621
mov eax, 0x11
mov byte [esp + 0x1be], 0x35
mov edx, dword [esp + 0x4c4]
lea ecx, [edx + 0x14]
mov dword [esp + 0x20c], ecx
mov edx, dword [edx + 0x14]
mov dword [esp + 0x5a0], 0x700002bb
test edx, edx
jne 0x53e857
mov ecx, 0xa
mov dword [esp + 0x1ac], edx
imul edx, edx
and edx, 3
cmp edx, 2
mov dword [esp + 0x5b4], esi
jae 0x54920f
cmp ecx, 0xa
jne 0x53e590
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne 0x54939e
mov eax, 0xa
cmp dword [esp + 0x80], 0x52
sete cl
test byte [esp + 0x45e], cl
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 0x540], ecx
mov ecx, dword [esp + 0x1fc]
mov dword [esp + 0x518], ecx
mov ecx, dword [esp + 0x48c]
mov dword [esp + 0x580], ecx
mov ecx, dword [esp + 0x488]
mov ebx, ecx
mov edx, dword [esp + 0x410]
mov esi, edx
mov dword [esp + 0x584], ecx
mov dword [esp + 0x588], edx
jne 0x53ff95
jmp 0x549d0b
mov ecx, 2
mov eax, 0x12
mov dword [esp + 0x8a4], 0
mov dword [esp + 0x8a0], 0
mov dword [esp + 0x89c], 0
mov dword [esp + 0x898], 0
mov dword [esp + 0x894], 0
mov dword [esp + 0x88c], 0
mov dword [esp + 0x888], 0
mov edx, dword [edi + 4]
mov esi, edx
imul esi, esi
and esi, 3
cmp esi, 3
sete bl
movzx esi, bl
mov dword [esp + 0x494], 0
cmp edx, esi
lea edx, [esp + 0x8a0]
mov dword [esp + 0xc4], edx
lea edx, [edi + 4]
mov dword [esp + 0x70], edi
mov dword [esp + 0x138], edx
je 0x54361c
cmp ecx, 2
jne 0x53e77c
mov eax, 3
sub eax, ecx
xor eax, ecx
je 0x53e77c
xor eax, eax
mov ecx, dword [esp + 0x70]
lea ecx, [ecx + 8]
mov bl, byte [esp + 0x4ff]
mov esi, dword [esp + 0xa0]
mov bh, byte [esp + 0x244]
mov edi, dword [esp + 0x57c]
jmp 0x53e73a
mov bh, 0x3c
mov byte [esp + 0x443], 0x3e
mov byte [esp + 0x476], 0x18
mov byte [esp + 0x41f], 0x7c
mov bl, 2
mov byte [esp + 0x3ab], 0x79
mov byte [esp + 0x3a9], 4
mov byte [esp + 0x34b], 0x73
mov byte [esp + 0x38b], 0x2a
mov edx, 3
sub edx, eax
xor edx, eax
setne dl
movzx edx, dl
add eax, edx
mov dword [esp + 0x43c], 0
mov esi, ecx
mov edx, eax
not edx
and edx, 1
add edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jb 0x53e6e0
mov byte [esp + 0x244], bh
mov dword [esp + 0xa0], esi
mov byte [esp + 0x4ff], bl
mov dword [esp + 0x490], edi
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x53e86a
mov dword [esp + 0x4e4], 1
mov esi, dword [esp + 0x3f0]
mov eax, dword [esp + 0x3b8]
mov dword [esi + 0x1a0], eax
mov dword [esi + 0x60], 3
mov dword [esi + 0x64], 0xc
mov eax, dword [str.HASP_SL_UserMode]
lea ecx, [esi + 0x68]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0x20
call fcn.004959f0
mov dword [esi + 0x19c], 0
mov dword [esi + 0x198], 1
mov dword [esi + 0xd0], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0xa0], 1
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1ac], 0
lea eax, [esi + 0x10]
mov dword [esp], eax
mov dword [esp + 4], 0x29
call fcn.00446640
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.00434c50
mov dword [esp + 0x460], eax
mov dword [esp], eax
call fcn.004116e0
mov dword [esp + 0x458], esi
mov dword [esp + 0x3ec], esi
mov ebx, 1
jmp 0x545b43
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x5b4], esi
jmp 0x54920f
mov ebx, dword [esp + 0x43c]
mov esi, 0xd
mov byte [esp + 0x305], 0x40
mov eax, dword [esp + 0xa0]
mov eax, dword [eax]
mov ecx, dword [eax + ebx*8]
mov dword [esp + 0xd4], ecx
mov eax, dword [eax + ebx*8 + 4]
mov dword [esp + 0xd0], eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x8a0]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00493840
mov dword [esp + 0x2c8], 0x70000003
test eax, eax
jne 0x53e91d
mov edi, 0xb
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x260], ebx
mov dword [esp + 0x43c], ebx
mov ebx, dword [esp + 0x490]
jne 0x544c29
jmp 0x53e939
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x260], ebx
mov dword [esp + 0x43c], ebx
mov ebx, dword [esp + 0x490]
cmp esi, 0xc
je 0x53e9e1
imul esi, esi
and esi, 3
cmp esi, 2
mov eax, dword [esp + 0x59c]
je 0x53e9ed
mov eax, 7
movzx ecx, byte [esp + 0x38b]
cmp ecx, 0x69
je 0x54c19b
mov edi, 0xb
mov byte [esp + 0x38b], 0x2a
mov eax, dword [esp + 0xd4]
lea eax, [eax - 4]
mov ecx, dword [esp + 0x8a0]
mov dword [esp + 0x8a8], ecx
mov ecx, dword [esp + 0xd0]
lea ecx, [ecx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
lea eax, [esp + 0x8a8]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x3a4]
mov dword [esp], esi
call fcn.0064c190
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x84], esi
jne 0x549843
jmp 0x53ea82
mov dword [esp + 0x57c], ebx
jmp 0x547802
mov dword [esp + 0x57c], ebx
mov edi, dword [esp + 0x508]
mov dword [esp + 0x5bc], eax
jmp 0x547961
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x54c1a4
mov byte [esp + 0x38b], 0x69
mov eax, dword [esp + 0xd4]
lea eax, [eax - 4]
mov ecx, dword [esp + 0x8a0]
mov dword [esp + 0x8a8], ecx
mov ecx, dword [esp + 0xd0]
lea ecx, [ecx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
lea eax, [esp + 0x8a8]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x3a4]
mov dword [esp], esi
call fcn.0064c190
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x84], esi
jne 0x53ebc2
movzx eax, byte [esp + 0x34b]
cmp eax, 0x44
jne 0x53eb1b
mov byte [esp + 0x34b], 0x73
mov eax, dword [esp + 0x8a8]
mov dword [esp + 0x8a0], eax
mov esi, dword [esp + 0x3a4]
mov byte [esi + eax], 0
mov eax, dword [esp + 0x8a0]
lea ecx, [esp + 0x894]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x898]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x89c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00412cf0
mov dword [esp + 0x320], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x31c], esi
jne 0x549031
jmp 0x549ab4
mov edi, 0xf
mov esi, 0xb
mov byte [esp + 0x34b], 0x44
mov eax, dword [esp + 0x8a8]
mov dword [esp + 0x8a0], eax
mov dword [esp + 0x490], ebx
mov ebx, dword [esp + 0x3a4]
mov byte [ebx + eax], 0
mov eax, dword [esp + 0x8a0]
lea ecx, [esp + 0x894]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x898]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x89c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00412cf0
mov dword [esp + 0x320], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x31c], ebx
mov ebx, dword [esp + 0x490]
mov edx, dword [esp + 0x59c]
je 0x5498e1
jmp 0x544de0
mov esi, 0x14
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x2c8], 0x70000013
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jmp 0x5427be
mov dl, 3
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov esi, edi
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x53ec00
mov dword [esp + 0x494], esi
mov byte [esp + 0x305], dl
jmp 0x53f9bc
mov byte [esp + 0x3a9], 4
mov eax, dword [esp + 0x898]
mov ecx, dword [esp + 0x89c]
lea edx, [esp + 0x8a4]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00627130
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov dword [esp + 0x320], 0x70000013
cmp eax, ecx
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x31c], eax
jne 0x549031
mov dword [esp + 0x490], ebx
mov dword [esp + 0x448], 0xc
mov eax, dword [esp + 0x8a0]
mov ecx, dword [esp + 0x898]
mov edx, dword [esp + 0x89c]
mov edi, dword [esp + 0x8a4]
mov ebx, dword [esp + 0x894]
lea esi, [esp + 0x888]
mov dword [esp + 0x30], esi
mov esi, dword [ebp + 0x34]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x490]
mov esi, eax
mov eax, dword [esp + 0x5ac]
mov dword [esp], eax
mov dword [esp + 0x24], 8
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0x27
call fcn.0053aa50
test eax, eax
je 0x53ed52
mov ecx, eax
mov dword [esp + 0x320], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x31c], esi
jne 0x549031
jmp 0x548c6f
mov dword [esp + 0x320], eax
mov dword [esp + 0x31c], esi
jmp 0x548c6f
mov eax, dword [esp + 0x8a4]
mov dword [esp + 0x4f4], eax
mov esi, dword [eax + 0x14]
test esi, esi
je 0x53edac
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
mov edx, dword [esp + 0x3c8]
je 0x53eddd
mov eax, 0xd
movzx ecx, byte [esp + 0x3ab]
cmp ecx, 0x79
jne 0x53ee0e
mov dword [esp + 0x500], esi
mov edi, ebx
mov dword [esp + 0x5bc], ecx
mov eax, dword [esp + 0x508]
mov dword [esp + 0x59c], eax
mov edx, dword [esp + 0x3c8]
mov eax, dword [esp + 0x3e8]
jmp 0x53f84a
mov dword [esp + 0x500], esi
mov edi, ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov eax, dword [esp + 0x508]
mov dword [esp + 0x59c], eax
mov eax, dword [esp + 0x3e8]
jmp 0x53f84a
mov dword [esp + 0x448], edi
mov edx, dword [esp + 0x500]
mov edx, dword [edx + 4]
lea edi, [edi + edi*2]
mov ecx, esi
mov esi, ebx
mov ebx, dword [edx + edi*4]
test ebx, ebx
cmovne eax, ebx
mov ebx, esi
mov esi, ecx
mov dword [esp + 0x4f0], eax
mov edx, dword [edx + edi*4 + 8]
test edx, edx
mov edi, dword [esp + 0x490]
je 0x53efa2
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
mov al, byte [esp + 0x4ff]
je 0x53f014
mov dword [esp + 0x4e0], edx
mov ecx, 0xe
movzx eax, al
cmp eax, 2
jne 0x53f07f
mov dword [esp + 0x4e0], edx
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov eax, dword [esp + 0x500]
mov dword [esp + 0x2fc], eax
mov eax, dword [esp + 0x4f4]
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x384], eax
mov dword [esp + 0x4f4], edi
mov dword [esp + 0x500], esi
mov eax, dword [esp + 0x448]
mov dword [esp + 0x29c], eax
mov edx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
mov al, byte [esp + 0x4ff]
mov ecx, 9
jmp 0x547501
mov dword [esp + 0x4e0], edx
mov dword [esp + 0x57c], ebx
mov edx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], edx
mov edx, dword [esp + 0x500]
mov dword [esp + 0x2fc], edx
mov edx, dword [esp + 0x4f4]
mov dword [esp + 0x2f8], edx
mov dword [esp + 0x384], edx
mov dword [esp + 0x4f4], edi
mov dword [esp + 0x500], esi
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x29c], ecx
mov edx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
mov ecx, 9
jmp 0x547501
mov byte [esp + 0x4ff], 0x71
mov eax, dword [esp + 0x4e0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4f0]
mov dword [esp], eax
call fcn.0043cb40
mov edx, dword [esp + 0x8a4]
mov eax, dword [esp + 0x500]
mov dword [esp + 0x384], edx
mov esi, eax
mov eax, dword [esp + 0x4f4]
mov dword [esp + 0x490], eax
mov edi, dword [esp + 0x29c]
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add eax, edi
mov edi, eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x500], eax
cmp edi, dword [eax]
mov dword [esp + 0x4f4], edx
mov eax, dword [esp + 0x4f0]
jb 0x53ee4f
mov edx, dword [esp + 0x500]
mov eax, dword [edx + 0x10]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x3fc], 0
cmp eax, ecx
mov dword [esp + 0x2fc], edx
mov eax, dword [esp + 0x4f4]
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x3f4], edx
mov dword [esp + 0x35c], eax
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x490]
mov dword [esp + 0x4f4], eax
mov dword [esp + 0x500], esi
mov esi, 0x18
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jne 0x54b88e
movzx eax, byte [esp + 0x41f]
cmp eax, 0x7c
jne 0x53f1f7
mov dword [esp + 0x490], edi
mov edx, edi
mov edi, ebx
mov esi, 0xd
mov eax, dword [esp + 0x3e0]
mov ecx, dword [eax + 0xc]
lea edx, [edx + edx*2]
mov eax, dword [ecx + edx*4 + 8]
test eax, eax
je 0x53f2f3
mov esi, 0x18
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0x888]
mov ebx, dword [esp + 0x88c]
mov dword [esp + 0x10], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
mov dword [esp + 0xc], 0xffffffff
call fcn.0043e5f0
mov eax, dword [esp + 0x8a4]
mov dword [esp + 0x57c], edi
mov ecx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], ecx
mov ecx, dword [esp + 0x490]
mov dword [esp + 0x230], ecx
mov dword [esp + 0x268], eax
cmp esi, 8
je 0x54939e
imul esi, esi
and esi, 3
cmp esi, 2
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jne 0x53f355
jmp 0x54939e
mov dword [esp + 0x57c], edi
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov eax, dword [esp + 0x390]
mov dword [esp + 0x268], eax
mov eax, dword [esp + 0x490]
mov dword [esp + 0x230], eax
cmp esi, 0xd
mov ecx, dword [esp + 0x57c]
jne case.0x5423f9.21
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
mov ebx, ecx
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
je case.0x5423f9.21
movzx eax, byte [esp + 0x244]
cmp eax, 0x3c
jne 0x53f3b3
mov byte [esp + 0x244], 0x22
mov eax, 3
mov ecx, 3
mov edx, dword [esp + 0x230]
sub ecx, edx
xor ecx, edx
setne cl
movzx edi, cl
add edi, edx
mov ecx, dword [esp + 0x268]
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x3e0], edx
cmp edi, dword [edx + 8]
jae 0x53f411
sub eax, edi
xor eax, edi
mov dword [esp + 0x390], ecx
jne 0x53f239
jmp 0x53f6b5
mov eax, 0xd
mov byte [esp + 0x244], 0x3c
mov esi, dword [esp + 0x230]
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
setne cl
movzx edi, cl
add edi, esi
mov ecx, dword [esp + 0x268]
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x3e0], edx
cmp edi, dword [edx + 8]
jae 0x53f41d
mov esi, ecx
mov ecx, edi
or ecx, 2
mov edx, edi
xor edx, 2
add edx, ecx
mov dword [esp + 0x390], esi
jne 0x53f239
jmp 0x54a03f
mov dword [esp + 0x390], ecx
jmp 0x53f6b5
mov dword [esp + 0x390], ecx
jmp 0x54a03f
mov dword [esp + 0x3b0], edi
mov byte [esp + 0x476], 0x18
mov eax, dword [esp + 0x3f4]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x59c], edx
mov ecx, dword [esp + 0x3fc]
mov eax, ecx
shl eax, 4
mov esi, dword [edx + eax + 0xc]
test esi, esi
je 0x53f485
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x32c], ecx
jne 0x53f579
jmp 0x53f49a
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x32c], ecx
mov eax, 0xa
movzx ecx, byte [esp + 0x443]
cmp ecx, 0x17
mov edx, dword [esp + 0x3c4]
je 0x53f52b
mov eax, 0xb
cmp ecx, 0x3e
jne 0x53f54c
mov ecx, dword [esp + 0x57c]
mov dword [esp + 0x490], ecx
mov ecx, dword [esp + 0x5bc]
mov bl, byte [esp + 0x533]
jmp 0x54c630
xor ebx, ebx
mov edi, dword [esp + 0x3fc]
shl edi, 4
mov edx, dword [esp + 0x3ac]
jmp 0x53f5bf
cmp eax, 2
jne 0x53f69b
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jne 0x54b5b5
jmp 0x53f1ce
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x53f1ce
mov esi, dword [esp + 0x3e0]
mov eax, dword [esi + 0x18]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
xor edx, edx
cmp eax, ecx
mov edi, ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov eax, dword [esp + 0x390]
mov dword [esp + 0x34c], esi
mov ecx, dword [esp + 0x508]
mov dword [esp + 0x59c], ecx
je 0x53f84a
mov dword [esp + 0x57c], edi
mov dword [esp + 0x3e8], eax
mov eax, 6
mov ecx, dword [esp + 0x34c]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x59c], ecx
lea edi, [edx + edx*2]
mov ebx, dword [ecx + edi*4 + 8]
test ebx, ebx
je 0x53f7ce
mov ecx, ebx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x53f7ce
mov dword [esp + 0x3c8], edx
xor esi, esi
mov ecx, dword [esp + 0x3e8]
jmp 0x53f7ac
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x59c]
mov eax, dword [eax + edi*4]
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x88c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
mov dword [esp + 8], 0xffffffff
call fcn.0043e5f0
mov ecx, dword [esp + 0x8a4]
mov eax, esi
and eax, 1
inc eax
xor eax, esi
test esi, esi
je 0x53f760
test eax, eax
je 0x53f760
mov edi, dword [esp + 0x3e8]
mov ecx, edx
mov dword [esp + 0x254], ecx
cmp eax, 6
je 0x53f7f4
mov dword [esp + 0x3c8], edx
xor eax, eax
test al, al
je 0x54b2e6
mov ecx, dword [esp + 0x254]
lea edx, [ecx + 1]
mov eax, dword [edi + 0x14]
mov dword [esp + 0x34c], eax
cmp edx, dword [eax + 0x18]
jae 0x53f83a
mov esi, 0xd
mov eax, 2
sub eax, ecx
xor eax, edx
mov eax, edi
mov dword [esp + 0x508], edi
mov dword [esp + 0x59c], edi
mov edi, dword [esp + 0x57c]
jne 0x543d43
jmp 0x53f84a
mov eax, edi
mov dword [esp + 0x59c], edi
mov edi, dword [esp + 0x57c]
mov dword [esp + 0x3e8], eax
mov dword [esp + 0x3c8], edx
mov eax, dword [esp + 0x3a4]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x8a0], 0
mov eax, dword [esp + 0x89c]
test eax, eax
je 0x53f89b
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x89c], 0
mov dword [esp + 0x898], 0
mov dword [esp + 0x57c], edi
mov esi, 0xf
mov eax, dword [esp + 0x8a4]
mov dword [esp], eax
call fcn.00627240
mov dword [esp + 0x8a4], 0
mov ecx, dword [esp + 0x260]
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx ebx, al
add ebx, ecx
mov dword [esp + 0x494], 0
mov eax, dword [esp + 0x138]
cmp ebx, dword [eax]
jae 0x53f946
mov eax, 3
mov ecx, ebx
or ecx, 2
mov edx, ebx
mov dword [esp + 0x43c], ebx
xor edx, 2
add edx, ecx
mov edi, dword [esp + 0x59c]
je 0x545d9f
cmp eax, 3
mov edx, dword [esp + 0x57c]
jne 0x53e2af
mov dword [esp + 0x490], edx
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov dword [esp + 0x508], edi
jmp 0x53e86a
mov dword [esp + 0x43c], ebx
mov edi, dword [esp + 0x59c]
jmp 0x545d9f
mov eax, dword [esp + 0x89c]
test eax, eax
je 0x53fa00
mov byte [esp + 0x212], 0x68
mov byte [esp + 0x307], 0x36
mov dword [esp + 0x170], eax
mov eax, 6
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x494]
mov dword [esp + 0x2bc], ecx
je 0x540a84
jmp 0x545925
mov byte [esp + 0x212], 0x68
mov byte [esp + 0x307], 0x36
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x494]
mov dword [esp + 0x2bc], eax
jmp 0x545925
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x5459fc
mov edi, 3
mov byte [esp + 0x307], 0x17
mov eax, dword [esp + 0x8a4]
mov dword [esp + 0x218], eax
test eax, eax
je 0x53fa67
mov ebx, 0xd
xor eax, eax
test al, al
je 0x5473b7
cmp edi, 3
je 0x53fa94
xor eax, eax
test al, al
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
je 0x547f0e
jmp 0x53fb08
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jmp 0x53fb08
test esi, esi
je 0x53fac0
mov edx, dword [esp + 0x2bc]
test edx, edx
jne 0x53fb6c
mov eax, 3
sub eax, edx
xor eax, edx
mov esi, dword [esp + 0x5b8]
je 0x53fb78
mov al, 0x7e
movzx ecx, al
cmp ecx, 0x68
je 0x53fb8b
mov eax, 0x12
cmp ecx, 0x7e
mov edi, dword [esp + 0x5ac]
jne 0x53fc23
mov dword [esp + 0x5a0], edx
jmp 0x53fd10
mov dword [esp + 0x5a0], edx
mov dword [esp + 0x5b4], esi
jmp 0x54939e
mov byte [esp + 0x304], 0x6f
mov edi, dword [esp + 0x5ac]
mov eax, dword [edi]
mov dword [esp + 0x1c4], eax
mov ecx, dword [edi + 4]
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x7b4], ecx
mov dword [esp + 0x7b0], eax
lea eax, [esp + 0x7b0]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00419d10
xor edx, edx
div dword [0x80dc30]
mov eax, dword [0x80dc2c]
mov edx, dword [eax + edx*8]
mov dword [esp + 0x5a0], 0x700002bb
test edx, edx
jne 0x53fcab
mov eax, dword [esp + 0x1e4]
mov eax, dword [eax + 4]
mov dword [esp + 0x2b0], eax
test eax, eax
mov dword [esp + 0x5a0], 0x700002bb
je 0x53fd10
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jmp 0x54939e
mov esi, dword [esp + 0x2b0]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x148], eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
xor eax, dword [esp + 0x1c0]
mov edx, ecx
xor edx, dword [esp + 0x1c4]
or edx, eax
mov eax, 0xa
mov byte [esp + 0x304], 0x6f
jne 0x53fd72
mov edx, 3
sub edx, ecx
xor edx, ecx
mov dword [esp + 0x1e4], esi
jne 0x53fd7e
jmp 0x544267
mov dword [esp + 0x1e4], esi
jmp 0x544267
mov eax, 0x1b
mov edi, dword [esp + 0x148]
test edi, edi
mov dword [esp + 0x5a0], 0x700002bb
mov edx, dword [esp + 0x5b8]
je 0x53ff63
xor ecx, ecx
test cl, cl
jne 0x53ff63
mov eax, dword [esp + 0x5ac]
lea esi, [eax + 0x1a0]
mov eax, dword [esp + 0x290]
movsd xmm0, qword [eax]
movsd qword [esp + 0x7f0], xmm0
mov dword [esp + 0x7e4], 0
mov dword [esp + 0x7e0], 0
mov dword [esp + 0x7e8], 0
mov dword [esp + 0x7dc], 0
mov dword [esp + 0x7d8], 0
mov dword [esp + 0x7d4], 0
mov eax, dword [0x7dc5e8]
mov dword [esp + 0x7d0], eax
movsd xmm0, qword [0x7dc5e0]
movsd qword [esp + 0x7c8], xmm0
movsd xmm0, qword [0x7dc5d8]
movsd qword [esp + 0x7c0], xmm0
call fcn.0044c050
mov dword [esp + 0xac], eax
mov dword [esp + 0xa8], edx
mov eax, dword [edi + 0x10]
mov dword [esp + 0x214], eax
test eax, eax
je 0x53ffb4
mov dword [esp + 0x44c], esi
lea eax, [esp + 0x7f0]
mov dword [esp + 0xb8], eax
mov esi, 0x1e
mov byte [esp + 0x13f], 0x1f
lea eax, [esp + 0x7e0]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x7e0], 0x37
mov eax, dword [esp + 0x7e4]
mov ecx, dword [esp + 0x7e8]
mov dword [esp + 0xec], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea ebx, [esp + 0x7e4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x5bc], 0x70000003
test eax, eax
jne 0x540017
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x53c], edi
cmp eax, 0xb
jne 0x54939e
mov ecx, 9
mov eax, 0x15
mov edx, dword [esp + 0x3d8]
cmp dword [edx + 0x18], 0
jne 0x54a815
cmp eax, 0xa
mov edx, dword [ebp + 0x28]
je 0x53db46
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x53e4e5
jmp 0x53db46
mov dword [esp + 0x44c], esi
lea eax, [esp + 0x7f0]
mov dword [esp + 0xb8], eax
mov ecx, 0xb
lea eax, [esp + 0x7e8]
mov dword [esp + 0x5a8], eax
mov dword [esp + 0x5bc], 0x700002bb
lea eax, [esp + 0x7e4]
mov dword [esp + 0x5a4], eax
mov dword [esp + 0x5a0], 0x700002bb
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x53c], edi
jmp 0x54005b
cmp ecx, 3
jne 0x542641
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
je 0x542641
imul eax, dword [esp + 0x14c], 0x1c
mov ecx, dword [esp + 0x394]
mov eax, dword [ecx + eax + 0x18]
mov eax, dword [eax]
test eax, eax
jne 0x5400d3
mov dword [esp + 0x59c], 0
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], eax
mov eax, dword [esp + 0x570]
mov dword [esp + 0x5a8], eax
mov dword [esp + 0x5bc], 0
jne 0x54b0d9
jmp 0x542641
mov eax, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], eax
mov eax, dword [esp + 0x570]
mov dword [esp + 0x5a8], eax
mov dword [esp + 0x5bc], 0
jmp 0x542641
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x46c]
mov dword [eax], edx
mov esi, dword [esp + 0x570]
mov eax, dword [esi]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0xec]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x10
mov edi, dword [esp + 0x5b0]
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov byte [esp + 0x13f], 0x22
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x9c], eax
mov dword [esp + 0x5bc], 0x70000003
test eax, eax
mov dword [esp + 0x5a4], edi
mov dword [esp + 0x5a8], esi
je 0x542641
mov edi, 2
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x9c]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x5b0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xec]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [esp + 0x44c]
mov eax, dword [eax]
mov dword [esp + 0x810], 0
mov dword [esp + 0x80c], 0
lea ecx, [esp + 0x7f8]
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x7f8], 4
lea ecx, [esp + 0x7fc]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x7fc], 2
lea ecx, [esp + 0x800]
mov dword [esp + 0x110], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x800], ecx
lea ecx, [esp + 0x804]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x804], eax
lea ecx, [esp + 0x808]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x808], 0xfffffff7
test eax, eax
je 0x540320
mov byte [esp + 0x363], 0x4a
imul eax, eax
and eax, 3
cmp eax, 2
mov esi, dword [esp + 0x4b4]
mov eax, dword [esp + 0x498]
je 0x540357
mov al, 0x63
movzx eax, al
lea ecx, [esp + 0x7f8]
cmp eax, 0x63
je 0x540378
cmp eax, 0x7f
jne 0x5403b8
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x59c], 0x12
lea eax, [esp + 0x80c]
mov dword [esp + 8], eax
lea eax, [esp + 0x810]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00593400
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x546dee
jmp 0x54a88d
mov byte [esp + 0x363], 0x4a
mov eax, dword [esp + 0x510]
mov dword [esp + 0x448], eax
mov ebx, dword [esp + 0x50c]
mov edx, dword [esp + 0x5bc]
mov esi, dword [esp + 0x4b4]
mov eax, dword [esp + 0x498]
jmp 0x546f61
mov ecx, dword [esp + 0x510]
mov dword [esp + 0x448], ecx
mov ebx, dword [esp + 0x50c]
mov edx, dword [esp + 0x5bc]
jmp 0x546f61
mov dword [esp + 0x16c], ecx
lea eax, [esp + 0x80c]
mov dword [esp + 8], eax
lea eax, [esp + 0x810]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x54a88d
jmp 0x5403f0
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x59c], 2
lea eax, [esp + 0x80c]
mov dword [esp + 8], eax
lea eax, [esp + 0x810]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00593400
test eax, eax
jne 0x5461ae
mov eax, dword [esp + 0x80c]
mov dword [esp + 0x4dc], eax
mov eax, dword [esp + 0x810]
mov dword [esp + 0x4c8], eax
mov esi, dword [esp + 0x570]
mov eax, dword [esi]
mov dword [esp + 0xf0], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x46c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x54044e
mov bl, 0x26
cmp dword [esp + 0x4dc], 0
mov edi, dword [esp + 0x380]
je 0x54055d
mov dword [esp + 0x534], edi
mov byte [esp + 0x363], 0x35
mov esi, dword [esp + 0x810]
test esi, esi
jne 0x5405fc
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
mov eax, dword [ebp + 0x10]
jne 0x540688
xor ebx, ebx
jmp 0x540613
mov edi, 0x14
cmp eax, 2
adc ebx, 0
mov dword [esp], esi
call fcn.004936c0
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
sbb ecx, ecx
and ecx, 1
cmp ebx, ecx
jb 0x540600
mov dl, byte [esp + 0x45e]
mov esi, dword [esp + 0x5b8]
cmp edi, 0x10
jne 0x540677
mov eax, 3
sub eax, edi
xor eax, edi
je 0x540677
mov eax, 0xc
mov dword [esp + 0x5a0], 0x70000042
test dl, dl
mov byte [esp + 0x45e], dl
mov dword [esp + 0x5b4], esi
mov dword [esp + 0x5b8], esi
je 0x54939e
mov dword [esp + 0x5b8], esi
mov byte [esp + 0x45e], dl
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x818], 0
mov dword [esp + 0x814], 0
mov edx, dword [esp + 0x16c]
mov dword [edx], 4
mov ecx, dword [esp + 0x114]
mov dword [ecx], 2
mov ecx, dword [esp + 0x110]
mov dword [ecx], eax
mov eax, dword [esp + 0x10c]
mov dword [eax], 0
mov eax, dword [esp + 0x108]
mov dword [eax], 3
lea eax, [esp + 0x814]
mov dword [esp + 8], eax
lea eax, [esp + 0x818]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00593400
test eax, eax
jne 0x540961
mov al, 0x6e
movzx eax, al
cmp eax, 0x1c
je 0x540785
mov ecx, dword [esp + 0xfc]
mov eax, dword [esp + 0x46c]
mov dword [eax], ecx
mov eax, dword [esp + 0x570]
inc dword [eax]
mov eax, dword [esp + 0x220]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0x32
mov esi, dword [esp + 0x5b0]
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 3
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [esp + 0x284]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov byte [esp + 0x21f], 0x5b
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x5408a9
mov ecx, 0x11
mov dword [esp + 0x564], eax
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x5421e3
mov dword [esp + 0x564], eax
jmp 0x540961
imul eax, eax
and eax, 3
cmp eax, 3
je 0x54c3df
mov eax, dword [esp + 0x284]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x564]
mov dword [esp], eax
call fcn.007c51d0
mov dword [esp + 0x4d0], edi
xor ecx, ecx
mov eax, dword [esp + 0x220]
lea edx, [eax + eax*2]
jmp 0x54092b
mov eax, 0x11
mov edi, ecx
and edi, 1
xor edi, ecx
cmp edi, 0xffffffff
setne bl
movzx edi, bl
add ecx, edi
mov edi, dword [esp + 0x5b0]
mov edi, dword [edi]
mov ebx, dword [esp + 0x564]
mov dword [edi + edx*8 + 0x14], ebx
mov edi, 3
sub edi, ecx
xor edi, ecx
setne bl
movzx edi, bl
cmp ecx, edi
jb 0x540900
mov dword [esp + 0x538], esi
cmp eax, 0xb
mov edx, dword [esp + 0x294]
jne 0x540961
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x53ddf8
mov eax, dword [esp + 0x818]
mov dword [esp], eax
call fcn.004936c0
mov esi, dword [esp + 0x570]
mov edi, dword [esi]
lea eax, [edi + edi*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x46c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5409d8
cmp eax, 6
jne 0x542641
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x542641
cmp esi, 2
jne 0x54c290
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jne 0x545925
jmp 0x54c290
cmp ecx, 6
je 0x540cb8
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x540cc4
mov dword [esp + 0x570], esi
jmp 0x542641
mov eax, ecx
mov dword [esp + 0x1a0], ecx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x541c25
mov bl, 0x30
mov dword [esp + 0x7bc], 0
mov dword [esp + 0x7b8], 0
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x7c8], eax
lea esi, [esp + 0x7c0]
mov dword [esp + 0x7c0], 3
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x7cc], eax
lea eax, [esp + 0x7d8]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00594ba0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x540e0d
cmp eax, 5
je 0x540e72
xor eax, eax
test al, al
jne 0x540e72
mov dword [esp + 0x15c], esi
jmp 0x541331
mov ecx, dword [esp + 0x334]
test ecx, ecx
jne 0x54a484
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
jne 0x54a493
jmp 0x54a484
cmp eax, 0xa
je 0x5433bc
imul eax, eax
and eax, 3
cmp eax, 3
je 0x5433bc
xor eax, eax
lea ecx, [esp + 0x7d0]
mov bl, byte [esp + 0x4b3]
mov edi, dword [esp + 0x4b8]
mov bh, byte [esp + 0x507]
jmp 0x540eec
mov bl, 0x3a
mov byte [esp + 0x577], 0x15
mov bh, 0x75
mov byte [esp + 0x56e], 0x4d
cmp edx, 2
adc eax, 0
mov edi, ecx
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
sbb esi, esi
and esi, 1
cmp eax, esi
jb 0x540ed0
mov byte [esp + 0x507], bh
mov dword [esp + 0x4b8], edi
mov byte [esp + 0x4b3], bl
mov eax, 0x15
mov dword [esp + 0x7bc], 0
mov dword [esp + 0x7b8], 0
mov edx, dword [esp + 0x7d4]
test edx, edx
jne 0x540f58
mov ecx, edx
mov dword [esp + 0x150], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x5418a9
jmp 0x54696f
mov dword [esp + 0x150], edx
jmp 0x54696f
mov esi, 0xe
mov edx, dword [esp + 0x150]
mov ecx, dword [edx]
shr ecx, 0x18
cmp ecx, 5
je 0x540f8d
mov eax, 2
cmp ecx, 2
mov dword [esp + 0x68], edx
je 0x540fb2
jmp 0x53f66b
mov dword [esp + 0x68], edx
mov ebx, dword [esp + 0x4b4]
mov ecx, dword [esp + 0x578]
mov edx, dword [esp + 0x498]
mov edi, dword [esp + 0x4d0]
jmp 0x5464bb
mov esi, 0xc
mov ecx, dword [esp + 0x15c]
mov dword [ecx], 4
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov edi, dword [esp + 0x4b8]
mov dword [edi], eax
lea eax, [esp + 0x7b8]
mov dword [esp + 8], eax
lea eax, [esp + 0x7bc]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00593400
test eax, eax
jne 0x548836
mov eax, dword [esp + 0x7d4]
mov ecx, dword [eax + 4]
mov esi, ecx
and esi, 0xffffff
cmp esi, dword [esp + 0x7b8]
mov edx, dword [esp + 0x7bc]
je 0x541046
mov eax, 0xd
and ecx, 1
inc ecx
xor ecx, esi
je 0x541046
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x588]
mov esi, dword [esp + 0x4ac]
jmp 0x54b542
mov cl, byte [esp + 0x56e]
movsx eax, cl
cmp eax, 0x5c
jg 0x5410f1
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x6c], edx
mov eax, 0xc
movzx ecx, cl
cmp ecx, 2
je 0x541195
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x6c], edx
movzx eax, cl
cmp eax, 0x5d
je 0x5411b6
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], ebx
call fcn.004936c0
mov dword [esp + 0x7bc], 0
mov eax, dword [esp + 0x7d8]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x7d8], 0
mov dword [esp + 0x438], 0x70000001
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x5412c0
mov dword [esp + 0x4b8], edi
mov bl, byte [esp + 0x3c3]
mov edi, dword [esp + 0x438]
mov eax, 9
movzx ecx, bl
cmp ecx, 0x23
jne 0x541447
mov dword [esp + 0x438], edi
mov byte [esp + 0x3c3], bl
xor ecx, ecx
cmp eax, 7
mov esi, dword [esp + 0x570]
jne 0x541497
mov edx, 3
sub edx, eax
xor edx, eax
je 0x541497
mov eax, 7
mov edi, dword [esp + 0x354]
mov edx, dword [edi + 0x44]
test edx, edx
je 0x541545
xor eax, eax
mov edx, dword [esp + 0x570]
mov esi, dword [esp + 0x5b0]
jmp 0x541485
mov bl, 0x30
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esp + 0x5a4], esi
mov dword [esp + 0x5a8], edx
mov dword [esp + 0x5bc], edi
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
test eax, eax
je 0x541460
test ecx, ecx
je 0x541460
jmp 0x5414f2
mov bl, byte [esp + 0x3c3]
mov edi, dword [esp + 0x438]
jmp 0x5414dc
mov eax, ecx
or eax, 2
mov edx, ecx
xor edx, 2
add edx, eax
setne al
movzx eax, al
cmp ecx, eax
jb 0x5414b0
mov dword [esp + 0x438], edi
mov byte [esp + 0x3c3], bl
jmp 0x542641
mov ecx, dword [esp + 0x1f4]
mov eax, ecx
shr eax, 0x18
and ecx, 0xffffff
mov edi, dword [esp + 0x1ec]
mov edx, dword [esp + 0x46c]
mov dword [edx], edi
mov ebx, dword [esp + 0x570]
mov edx, dword [ebx]
mov esi, edx
imul esi, esi
and esi, 3
cmp esi, 2
adc edx, 0
mov dword [ebx], edx
mov edx, dword [esp + 0x28c]
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x1f0]
mov dword [edi + edx], esi
mov edi, dword [esp + 0x5b0]
mov esi, dword [edi]
mov dword [esi + edx + 4], ecx
mov ecx, dword [edi]
mov byte [ecx + edx + 8], al
mov eax, dword [edi]
mov dword [eax + edx + 0xc], 0
mov eax, dword [edi]
mov esi, dword [esp + 0x1c8]
mov dword [eax + edx + 0x10], esi
mov eax, dword [edi]
mov dword [eax + edx + 0x14], 0
mov dword [esp], esi
call fcn.00492770
mov edx, eax
test edx, edx
jne 0x541757
mov eax, edx
and eax, 1
xor eax, edx
not eax
mov dword [esp + 0x55c], 0x70000003
test eax, eax
je 0x541757
mov dword [esp + 0x560], edx
jmp 0x548818
mov dword [esp + 0x55c], 0x70000003
test esi, esi
jne 0x541780
mov dword [esp + 0x560], edx
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x541841
mov eax, 3
mov dword [esp + 0x55c], 0x70000003
mov cl, byte [esp + 0x507]
movzx ecx, cl
cmp ecx, 0x39
mov edi, dword [esp + 0x4b4]
je 0x5417e3
mov eax, 6
cmp ecx, 0x75
jne 0x5417f6
mov byte [esp + 0x507], 0x12
mov dword [esp + 8], esi
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x560], edx
call fcn.007c51d0
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x54183a
mov dword [esp + 0x560], edx
mov dl, byte [esp + 0x1bf]
jmp 0x546530
mov dword [esp + 0x560], edx
mov ecx, dword [esp + 0x5bc]
mov dword [esp + 0x59c], ecx
jmp 0x547b05
mov byte [esp + 0x507], 0x39
mov eax, dword [esp + 0x1c8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x560]
mov dword [esp], eax
call fcn.007c51d0
mov dword [esp + 0x55c], eax
xor eax, eax
mov ecx, dword [esp + 0x28c]
lea ecx, [ecx + ecx*2]
jmp 0x54187e
mov esi, 0xa
add edx, edi
setne dl
movzx edx, dl
add eax, edx
mov edx, dword [esp + 0x5b0]
mov edx, dword [edx]
mov edi, dword [esp + 0x560]
mov dword [edx + ecx*8 + 0x14], edi
mov dword [esp + 0x55c], 0
mov edx, eax
or edx, 2
mov edi, eax
xor edi, 2
mov ebx, edx
add ebx, edi
setne bl
movzx ebx, bl
cmp eax, ebx
jb 0x541850
mov ebx, dword [esp + 0x57c]
mov edx, dword [esp + 0x59c]
jmp 0x544d1c
mov esi, 0xd
mov eax, dword [esp + 0x7d8]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x7d8], 0
cmp esi, 0xd
je 0x541c25
mov esi, 0x19
mov eax, 7
mov byte [esp + 0x2c7], 0x78
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx]
mov dword [esp + 0x26c], edx
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
mov dword [esp + 0x464], 0
add ecx, edx
mov ecx, dword [esp + 0x53c]
mov dword [esp + 0x468], ecx
mov dword [esp + 0x480], 0
mov dword [esp + 0x47c], 0
jne 0x541985
cmp esi, 0x10
je 0x54939e
cmp eax, 6
je 0x544524
mov bl, byte [esp + 0x67]
movzx eax, bl
cmp eax, 0x13
je 0x541bc7
mov edi, 3
cmp eax, 0x1a
jne 0x541bd1
mov byte [esp + 0x67], 0x1a
mov eax, dword [ebp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], str.Loaded_unusable_v2c__s_for_missing_VLIB_n
call fcn.004414c0
mov eax, dword [esp + 0x5ac]
mov dword [esp], eax
call fcn.00411700
jmp 0x53db67
xor esi, esi
mov edi, dword [ebp + 0x28]
jmp 0x53db2b
mov dl, byte [esp + 0x45e]
mov esi, dword [esp + 0x5b8]
jmp 0x54357b
mov eax, dword [esp + 0x53c]
mov dword [esp + 0x468], eax
mov dword [esp + 0x480], 0
mov dword [esp + 0x47c], 0
jmp 0x544524
lea eax, [esp + 0x7dc]
mov dword [esp + 8], eax
lea eax, [esp + 0x7e0]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.0059a8d0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x541d1a
mov dword [esp + 0x5a4], ecx
xor esi, esi
cmp eax, 0xf
jne 0x541d68
mov dword [esp + 0x57c], edi
mov dword [esp + 0x5a8], edx
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x542641
jmp 0x541d76
mov dword [esp + 0x57c], edi
mov dword [esp + 0x5a8], edx
mov edi, dword [esp + 0x338]
mov eax, dword [esp + 0x3a0]
jmp 0x541de4
mov ebx, 0xd
mov byte [esp + 0x51f], 0x26
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
lea eax, [esp + 0x81c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x520]
mov dword [esp + 0xc], eax
mov dword [esp], edi
mov dword [esp + 0x10], 0
mov dword [esp + 8], 4
mov dword [esp + 4], 0xc
call fcn.00593f40
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp esi, ecx
jb 0x541d90
mov dword [esp + 0x3a0], eax
mov dword [esp + 0x338], edi
cmp ebx, 0xd
je 0x5454ec
mov eax, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], eax
mov eax, dword [esp + 0x570]
mov dword [esp + 0x5a8], eax
jmp 0x542641
mov al, byte [esp + 0x247]
movzx ecx, al
cmp ecx, 0x39
je 0x541ecb
mov eax, 0x10
cmp ecx, 0x6b
mov esi, dword [esp + 0x394]
jne 0x541f07
mov edx, dword [ebp + 0x28]
cmp eax, 0x10
je 0x541f53
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x541f53
mov dword [esp + 0x394], esi
mov byte [esp + 0xdb], 0x5d
mov dword [esp + 4], edx
mov dword [esp], str.Loaded_unusable_v2c__s_for_hardware_modified_n
call fcn.004414c0
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jmp 0x53db67
mov byte [esp + 0x247], 0x6b
imul eax, ebx, 0x1c
mov ecx, dword [esp + 0x394]
mov eax, dword [ecx + eax + 4]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x368], ebx
jne 0x542046
jmp 0x54209a
mov eax, 0x10
mov byte [esp + 0x247], 0x39
imul ecx, ebx, 0x1c
mov ecx, dword [esi + ecx + 4]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
cmp ecx, edx
mov dword [esp + 0x57c], ebx
mov ecx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], ecx
mov dword [esp + 0x368], ebx
je 0x549b2c
jmp 0x542046
mov eax, 0x12
mov byte [esp + 0x247], 6
imul ecx, ebx, 0x1c
mov ecx, dword [esi + ecx + 4]
mov dword [esp + 0x394], esi
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
mov dword [esp + 0x368], ebx
jne 0x542046
cmp eax, 0xd
je 0x541f9e
xor eax, eax
test al, al
je 0x54209a
mov ecx, 0x16
mov byte [esp + 0x3ab], 0x6f
mov edi, dword [esp + 0x500]
mov edx, dword [edi]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx esi, al
xor eax, eax
cmp edx, esi
mov edx, dword [esp + 0x4f4]
mov dword [esp + 0x490], edx
mov esi, edi
mov dword [esp + 0x2fc], edi
mov edi, 0
mov dword [esp + 0x2f8], edx
jne 0x53ee4f
mov esi, dword [esp + 0x500]
mov eax, dword [esp + 0x4f4]
mov dword [esp + 0x490], eax
cmp ecx, 0xa
mov eax, dword [esp + 0x2fc]
mov dword [esp + 0x500], eax
mov eax, dword [esp + 0x2f8]
mov dword [esp + 0x4f4], eax
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jne 0x53f147
jmp 0x544b04
mov eax, ebx
not eax
and eax, 1
add eax, ebx
setne al
movzx ecx, al
add ecx, ebx
cmp ecx, dword [esp + 0xc0]
jae 0x542087
mov esi, 0x14
mov eax, 3
sub eax, ecx
xor eax, ecx
mov dword [esp + 0x57c], ecx
mov dword [esp + 0x368], ebx
jne 0x54be49
jmp 0x54b0d9
mov dword [esp + 0x57c], ecx
mov dword [esp + 0x368], ebx
jmp 0x54b0d9
imul eax, dword [esp + 0x368], 0x1c
mov esi, dword [esp + 0x394]
mov ecx, dword [esi + eax + 0x14]
cmp ecx, 4
je 0x5420e2
imul ecx, ecx
and ecx, 3
mov dword [esp + 0x5bc], 0x30000003
cmp ecx, 2
je 0x5420e2
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x368]
mov dword [esp + 0x14c], eax
jmp 0x541e33
mov cl, 0x7b
movzx edx, cl
cmp edx, 0x3e
je 0x542140
mov ecx, 3
mov dword [esp + 0x5bc], 0x30000003
mov eax, 0x18
cmp edx, 0x7b
mov dword [esp + 0x57c], ebx
mov edx, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], edx
mov edx, dword [esp + 0x570]
mov dword [esp + 0x5a8], edx
mov edx, dword [esp + 0x368]
mov dword [esp + 0x14c], edx
je 0x54005b
jmp 0x54b070
mov ecx, 1
mov eax, dword [esi + eax + 0x18]
mov dword [esp + 0x59c], 0
cmp dword [eax], 0
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], eax
mov eax, dword [esp + 0x570]
mov dword [esp + 0x5a8], eax
mov eax, dword [esp + 0x368]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x5bc], 0
jne 0x54478c
jmp 0x54b0d9
mov eax, 5
imul ecx, dword [esp + 0x420], 0x1c
mov edx, dword [esp + 0x370]
mov edx, dword [edx + ecx]
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
movzx ecx, cl
sub edx, ecx
cmp edx, 1
ja 0x547a6a
mov ecx, 2
mov esi, edx
not esi
and esi, 1
add esi, edx
je 0x547a6a
cmp ecx, 2
jne 0x54224a
mov edi, dword [esp + 0x30c]
lea edx, [edi - 3]
cmp edx, 0x1f
ja 0x542256
mov eax, 0x4040200d
bt eax, edx
jb 0x54a0ce
mov ecx, 9
cmp edx, 0x13
je 0x54228c
mov eax, 0xa
cmp edx, 0x1f
jne 0x542256
mov dword [esp + 0x2a8], edi
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x2a4], ecx
cmp eax, 0xa
je 0x54a0ce
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x54362f
jmp 0x54a0ce
mov edi, dword [esp + 0x4d0]
jmp 0x54c3aa
lea eax, [edi - 0x31]
cmp eax, 2
jb 0x54a0ce
mov esi, 0x19
mov eax, 7
cmp edi, 0x23
mov dword [esp + 0x2a8], edi
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x2a4], ecx
je 0x5429dc
jmp 0x5422a6
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x54a0b0
cmp esi, 0xf
jne 0x5422cd
imul eax, eax
and eax, 3
cmp eax, 3
je 0x54a9d9
mov dword [esp + 0x490], 0xf
imul ecx, dword [esp + 0x420], 0x1c
add ecx, dword [esp + 0x1f8]
mov dword [esp + 0x37c], ecx
mov ecx, dword [esp + 0x44c]
mov ecx, dword [ecx]
mov dword [esp + 0x248], ecx
mov dword [esp + 0x5bc], 0x700002bb
mov ecx, dword [esp + 0x224]
lea edi, [ecx - 3]
cmp edi, 0x23
ja case.default.0x5423f9
mov dword [esp + 0x60], 0x10
mov ebx, 0x17
mov dword [esp + 0x5c], 0x1b
mov ecx, 0xd
mov dword [esp + 0x344], 2
mov dword [esp + 0x59c], 0xc
mov dword [esp + 0x54], 0x16
mov dword [esp + 0x58], 6
mov esi, 0x18
mov dword [esp + 0x448], 0x1f
mov edx, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], edx
mov edx, dword [esp + 0x570]
mov dword [esp + 0x5a8], edx
jmp dword [edi*4 + 0x7dbc88]
cmp ecx, 0xd
jne 0x5499fb
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne case.0x5423f9.21
jmp 0x5499fb
mov ecx, dword [esp + 0x224]
lea ecx, [ecx - 0x31]
cmp ecx, 2
mov ecx, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], ecx
mov ecx, dword [esp + 0x570]
mov dword [esp + 0x5a8], ecx
jae case.0x5423f9.4
mov esi, 0xd
mov eax, dword [esp + 0x37c]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp], 0x1f
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x248]
call fcn.00551210
mov dword [esp + 0x5bc], eax
test eax, eax
mov eax, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], eax
mov eax, dword [esp + 0x570]
mov dword [esp + 0x5a8], eax
jne 0x542641
cmp esi, 0xd
jne 0x548b6c
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
jne 0x54c4c3
jmp 0x548b6c
mov esi, dword [esp + 0x37c]
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x248]
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov edx, 0x27
mov ecx, dword [ebp + 0x10]
call fcn.00589f50
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x542588
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x214]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, 6
jmp 0x542594
mov dword [esp + 0x5bc], eax
jmp 0x541e33
mov edx, 1
call fcn.0058dc00
mov dword [esp + 0x5bc], eax
test eax, eax
mov eax, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], eax
mov eax, dword [esp + 0x570]
mov dword [esp + 0x5a8], eax
jne 0x542641
jmp 0x54c4c3
mov byte [esp + 0x3cf], 0x11
mov edx, dword [esp + 0x420]
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx esi, al
add esi, edx
mov eax, dword [esp + 0x7dc]
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x5bc], 0
cmp esi, dword [eax + 4]
jae 0x54c6c1
mov eax, 3
sub eax, esi
xor eax, esi
mov ecx, dword [esp + 0x570]
mov edx, dword [esp + 0x5b0]
jne 0x54c516
mov dword [esp + 0x134], esi
mov dword [esp + 0x5a4], edx
mov dword [esp + 0x5a8], ecx
mov dword [esp + 0x490], 1
mov edx, dword [esp + 0x5a8]
mov esi, dword [edx]
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
xor edi, edi
cmp esi, ecx
mov ebx, dword [esp + 0x5a4]
mov dword [esp + 0x514], edx
mov ecx, dword [esp + 0x5bc]
mov edx, ecx
mov eax, ecx
je 0x542815
mov dword [esp + 0x558], edx
mov edx, dword [esp + 0x490]
mov ecx, edx
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp edx, ecx
jne 0x5426b9
mov ecx, eax
mov edx, dword [esp + 0x558]
jmp 0x54274e
mov dword [esp + 0x3d4], esi
mov dword [esp + 0x364], edi
mov dword [esp + 0x3d0], ebx
mov dword [esp + 0x490], 0x1a
mov dword [esp + 0x408], 0
cmp dword [esp + 0x24c], 2
mov ecx, dword [esp + 0x48c]
mov dword [esp + 0x4a4], ecx
mov ecx, dword [esp + 0x488]
mov dword [esp + 0x40c], ecx
mov dword [esp + 0x59c], eax
mov dword [esp + 0x5bc], eax
jne 0x54c290
mov eax, dword [esp + 0x490]
cmp eax, 0xf
je 0x542641
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jne 0x5462e8
jmp 0x542641
mov dword [esp + 0x5bc], ecx
mov dword [esp + 0x3d4], esi
mov dword [esp + 0x558], edx
mov dword [esp + 0x3d0], ebx
mov dword [esp + 0x59c], 0x16
mov eax, dword [ebx]
lea ecx, [edi + edi*2]
mov ecx, dword [eax + ecx*8 + 0x14]
test ecx, ecx
jne 0x542892
mov esi, 0xb
mov eax, ecx
or eax, 2
mov dword [esp + 0x4c0], ecx
xor ecx, 2
add ecx, eax
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x328], eax
mov dword [esp + 0x1e0], edi
mov dword [esp + 0x364], edi
je case.0x5423f9.6
cmp esi, 0xb
jne 0x544c4e
mov eax, 3
sub eax, esi
xor eax, esi
je 0x544c4e
mov ecx, dword [esp + 0x1e0]
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx edi, al
add edi, ecx
mov eax, dword [esp + 0x328]
cmp edi, eax
mov esi, eax
mov ebx, dword [esp + 0x3d0]
mov edx, dword [esp + 0x558]
mov ecx, dword [esp + 0x5bc]
jb 0x54274e
mov dword [esp + 0x5bc], ecx
mov dword [esp + 0x3d4], esi
mov dword [esp + 0x558], edx
mov byte [esp + 0x31a], 0x22
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004936c0
mov esi, dword [esp + 0x7dc]
test esi, esi
jne 0x542865
mov eax, 3
sub eax, esi
xor eax, esi
je 0x542865
mov dword [esp + 0x364], edi
mov dword [esp + 0x3d0], ebx
jmp 0x54297b
mov dword [esp + 0x364], edi
mov dword [esp + 0x3d0], ebx
mov al, 1
test al, al
jne 0x542919
mov dword [esp], esi
mov dword [esp + 4], 0x2a
call fcn.0064bf00
jmp 0x54297b
mov dword [esp + 0x4c0], ecx
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x328], eax
mov dword [esp + 0x1e0], edi
mov dword [esp + 0x364], edi
cmp dword [esp + 0x59c], 0xc
je case.0x5423f9.3
xor edi, edi
mov ebx, dword [esp + 0x434]
mov edx, dword [esp + 0x328]
jmp 0x5428fe
mov esi, 0x10
inc edi
mov eax, dword [esp + 0x4c0]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x514]
mov edx, dword [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 0x5428e0
jmp 0x53ccc8
xor ebx, ebx
jmp 0x542946
mov edi, 0x11
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
mov dword [esp], esi
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ebx, eax
jb 0x542920
cmp edi, 0xf
je 0x542c44
xor eax, eax
test al, al
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jne 0x54774e
movzx ecx, byte [esp + 0x31a]
cmp ecx, 0x10
je 0x5429f9
cmp ecx, 0x27
je 0x542a35
mov eax, 0xe
cmp ecx, 0x69
jne 0x542a79
mov eax, 0x16
mov byte [esp + 0x31a], 0x10
mov byte [esp + 0x2c6], 0x22
mov byte [esp + 0x52b], 0x5f
mov edx, dword [esp + 0x558]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edx, ecx
je 0x54acb3
cmp eax, 7
jne 0x542c57
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x54a0ce
mov byte [esp + 0x31a], 0x27
mov byte [esp + 0x2c6], 0x22
mov byte [esp + 0x52b], 0x5f
mov ecx, dword [esp + 0x558]
test ecx, ecx
jne 0x542c57
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
jne 0x54acb3
jmp 0x542c57
mov esi, 0x10
mov eax, 0xa
mov byte [esp + 0x31a], 0x69
mov byte [esp + 0x2c6], 0x22
mov byte [esp + 0x52b], 0x5f
mov edx, dword [esp + 0x558]
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x543696
jmp 0x54ac9f
mov ebx, dword [esp + 0x4b4]
mov dl, byte [esp + 0x590]
mov edi, dword [esp + 0x4d0]
mov ecx, dword [esp + 0x518]
mov esi, dword [esp + 0x540]
mov dword [esp + 0x4d0], edi
mov byte [esp + 0x590], dl
mov dword [esp + 0x4b4], ebx
cmp eax, 0xe
je 0x542b95
xor eax, eax
test al, al
jne 0x542b95
mov eax, 7
mov esi, dword [esp + 0x154]
mov ecx, dword [esi + 0x1a8]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
mov dword [esp + 0x518], 0x70000042
cmp ecx, edx
mov dword [esp + 0x458], esi
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x3ec], ecx
mov dword [esp + 0x460], 0
mov dword [esp + 0x4e4], 0
mov dword [esp + 0x540], esi
mov dword [esp + 0x580], ecx
mov ebx, 0
mov dword [esp + 0x490], ecx
mov dword [esp + 0x448], 0
mov ecx, 0
mov edx, 0
jne 0x549d0b
cmp eax, 7
jne 0x542be5
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x542be5
mov dword [esp + 0x4e4], edx
mov eax, dword [esp + 0x490]
mov dword [esp + 0x580], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x584], eax
mov dword [esp + 0x588], ecx
jmp 0x5474dc
mov dword [esp + 0x540], esi
mov dword [esp + 0x518], ecx
mov edi, 0x13
mov byte [esp + 0x31a], 0x22
mov byte [esp + 0x52b], 0x5f
mov ecx, dword [esp + 0x558]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
mov byte [esp + 0x2c6], 0x22
jne 0x54500b
jmp 0x54acb3
mov eax, 7
mov edi, 5
mov dword [esp + 0x59c], ecx
mov esi, dword [esp + 0x188]
mov ebx, edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x294], edx
mov ecx, dword [edx + 0xc]
xor ecx, dword [esp + 0x78]
mov edx, dword [edx + 8]
xor edx, dword [esp + 0x7c]
or edx, ecx
mov edx, ebx
mov byte [esp + 0x147], 0x15
mov byte [esp + 0x2d7], 0x4e
mov dword [esp + 0x128], esi
mov ecx, dword [esp + 0x59c]
je 0x5499b8
jmp 0x5457cf
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x54774e
mov eax, 4
mov ecx, 0xf
movzx edx, byte [esp + 0x52b]
cmp edx, 0x5f
je 0x54b230
cmp ecx, 6
je 0x547bfa
mov esi, 0xe
mov byte [esp + 0x52b], 0x5f
mov edi, dword [esp + 0x44c]
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x53c]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 3
mov ecx, 3
mov edx, dword [ebp + 0x10]
call fcn.0058dc00
mov eax, dword [esp + 0x558]
mov ecx, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], ecx
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x44c], edi
cmp esi, 4
je 0x542cf6
xor eax, eax
test al, al
je 0x54939e
mov esi, 0xe
mov eax, dword [ebp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], str.Loaded_unusable_v2c__s_for_clone_detected_n
call fcn.004414c0
cmp esi, 2
jne 0x53db67
xor esi, esi
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x44c]
mov ecx, dword [esp + 0x5a0]
mov edx, dword [esp + 0x5b4]
jmp 0x542d98
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x542d40
mov al, 0xf
cmp ecx, 1
je 0x542e11
mov dword [esp + 0x1a8], eax
mov byte [esp + 0x3fb], 0x26
mov byte [esp + 0x2c6], 0x22
mov eax, 1
mov dword [esp + 0x5a0], 0x700002bb
cmp ecx, 3
je 0x542e2d
cmp dword [esp + 0x60], 7
je 0x54939e
xor eax, eax
test al, al
je 0x5424d4
jmp 0x54939e
mov dword [esp + 0x1a8], eax
mov byte [esp + 0x3fb], 0x26
mov byte [esp + 0x2c6], 0x22
jmp 0x54b2b0
mov eax, 0xe
mov dword [esp + 0x5a0], 0x70000013
mov byte [esp + 0x4a3], 0x79
cmp byte [esp + 0x45e], 0
mov ecx, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], ecx
je 0x54939e
jmp 0x54c57a
mov esi, 0xb
mov byte [esp + 0x487], 0x69
inc edi
mov eax, dword [ebp + 0x28]
mov dword [esp + 8], eax
lea eax, [esp + 0x620]
mov dword [esp], eax
mov dword [esp + 4], 0x180
call fcn.004959f0
dec ebx
mov eax, edi
and eax, 1
xor eax, ebx
setne al
movzx eax, al
cmp edi, eax
jb 0x542e90
mov ebx, dword [esp + 0x584]
mov edx, dword [esp + 0x588]
jmp 0x549c8c
mov byte [esp + 0x3fb], 0x26
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax]
mov edx, dword [esp + 0x290]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
lea esi, [esp + 0x620]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x20]
mov dword [esp], eax
mov dword [esp + 0x18], 3
call fcn.00591470
mov dword [esp + 0x5a0], eax
test eax, eax
jne 0x53fd10
mov byte [esp + 0x343], 0x12
mov byte [esp + 0x533], 0x3f
mov byte [esp + 0x283], 0x69
mov eax, dword [esp + 0x53c]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x38c], edx
mov eax, dword [edx + 4]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov dword [esp + 0x3dc], 0
cmp eax, ecx
lea eax, [edx + 4]
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jl 0x541903
mov eax, dword [esp + 0x3dc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38c]
mov dword [esp], eax
call fcn.00591f90
test eax, eax
jne 0x542ff2
mov dword [esp + 0x5ac], ecx
mov byte [esp + 0x283], 0x2d
mov edx, dword [eax + 0xc]
mov dword [esp + 0x378], eax
cmp edx, 8
jne 0x543148
mov ecx, 3
sub ecx, edx
xor ecx, edx
mov bl, byte [esp + 0x533]
jne 0x54c658
jmp 0x54c8c0
mov bl, byte [esp + 0x533]
jmp 0x54c8c0
mov esi, 0xf
mov byte [esp + 0x533], 0x19
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add edi, eax
lea eax, [esp + 0x620]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 4], 0x400
call fcn.004959f0
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x543160
mov edi, dword [esp + 0x588]
mov ebx, dword [esp + 0x434]
mov ecx, dword [esp + 0x518]
mov edx, dword [esp + 0x540]
cmp esi, 0xf
je 0x543226
mov eax, 0x1b
mov byte [esp + 0x343], 0x12
mov esi, dword [esp + 0x2b8]
mov edx, esi
or edx, 2
mov ecx, esi
xor ecx, 2
add ecx, edx
setne dl
movzx edx, dl
add edx, esi
mov dword [esp + 0x3dc], edx
mov edx, dword [esp + 0x250]
cmp esi, dword [edx]
jge 0x54bfcd
test ecx, ecx
jne 0x542faf
jmp 0x54bfcd
mov byte [esp + 0x2c7], 0x17
mov eax, dword [esp + 0x250]
mov eax, dword [eax]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
mov dword [esp + 0x464], 0
add ecx, eax
mov ecx, dword [esp + 0x26c]
je 0x541be4
cmp ecx, eax
mov eax, dword [esp + 0x53c]
mov dword [esp + 0x468], eax
mov dword [esp + 0x480], 0
mov dword [esp + 0x47c], 0
jne 0x544524
mov eax, dword [esp + 0x5ac]
mov dword [eax + 0x1a8], 1
mov dword [esp + 0x480], 0
mov dword [esp + 0x464], 1
mov eax, dword [esp + 0x53c]
mov dword [esp + 0x468], eax
mov dword [esp + 0x47c], 0
jmp 0x544524
mov eax, 0xd
mov byte [esp + 0x1be], 0x35
mov byte [esp + 0x3a8], 0x52
mov ecx, dword [ecx + 0x24]
mov edi, dword [ecx]
lea ecx, [edx + 4]
mov dword [esp + 0x58c], ecx
mov edx, dword [edx + 4]
mov dword [esp + 0x1d8], edx
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
setne cl
movzx ecx, cl
add ecx, edx
mov dword [esp + 0x198], ecx
cmp edi, ecx
jg 0x5433b0
mov esi, 0x10
mov ecx, edi
mov dword [esp + 0x598], edi
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x54a1f3
jmp 0x5493ee
mov dword [esp + 0x598], edi
jmp 0x5493ee
mov al, byte [esp + 0x45e]
test al, al
je 0x5433f7
mov eax, dword [ebp + 0x34]
cmp eax, 3
je 0x5434c7
mov dword [esp + 0x374], 1
imul eax, eax
and eax, 3
cmp eax, 2
je 0x5434c7
mov eax, 1
jmp 0x5434f6
xor esi, esi
lea edi, [esp + 0x7a4]
mov ebx, 0x70000012
mov ecx, dword [esp + 0x5a0]
mov eax, dword [esp + 0x5b4]
jmp 0x5434a1
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [ebp + 0x14]
mov ecx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov dword [esp + 0x1c], 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0
call fcn.00508b80
and eax, 0xfffffff
cmp eax, 7
mov ecx, 0x70000037
cmove ecx, ebx
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
test esi, esi
jne 0x5434ea
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x543420
mov dword [esp + 0x5a0], ecx
jmp 0x54939e
mov eax, dword [ebp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], str.The_update__s_was_too_new._Install_the_pending_updates_first_n
call fcn.004414c0
mov dword [esp + 0x374], 1
jmp 0x547bfa
mov dword [esp + 0x5a0], ecx
jmp 0x54939e
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jne 0x53ca9b
jmp 0x547bfa
mov byte [esp + 0x197], 0x6d
mov cl, 0x29
mov edi, dword [esp + 0x5ac]
cmp dword [edi + 0x1a8], 2
jne 0x54365f
mov dl, byte [esp + 0x45e]
mov dword [esp + 0x5ac], edi
mov edi, 0x10
movzx eax, cl
cmp eax, 0x29
je 0x540635
cmp eax, 0x37
jne 0x54357b
mov dword [esp + 0x5a0], 0x70000042
test dl, dl
mov byte [esp + 0x45e], dl
mov dword [esp + 0x5b4], esi
je 0x54939e
jmp 0x54362f
cmp edi, 3
jne 0x5435ef
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
je 0x5435ef
mov dword [esp + 0x5b8], esi
mov byte [esp + 0x45e], dl
xor esi, esi
mov edi, dword [ebp + 0x28]
mov bl, byte [esp + 0x67]
jmp 0x5435d2
mov bl, 0x13
inc esi
mov dword [esp + 4], edi
mov dword [esp], str.Loaded_unusable_v2c__s_for_missing_VLIB_n
call fcn.004414c0
mov eax, dword [esp + 0x5ac]
mov dword [esp], eax
call fcn.00411700
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x5435b0
mov byte [esp + 0x67], bl
jmp 0x53db67
mov eax, 0xb
mov dword [esp + 0x5a0], 0x70000042
test dl, dl
mov byte [esp + 0x45e], dl
mov dword [esp + 0x5b4], esi
mov dword [esp + 0x5b8], esi
je 0x54939e
cmp eax, 0xb
je 0x54362f
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x53f9bc
mov eax, 7
mov ecx, dword [ebp + 0x34]
cmp ecx, 3
mov dword [esp + 0x374], 1
je 0x547ba3
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x547bfa
jmp 0x547ba3
mov esi, dword [esp + 0x4d4]
mov ecx, 6
mov eax, 0x16
mov dword [esp + 0x374], 0
mov edx, dword [esp + 0x1d8]
cmp dword [esp + 0x598], edx
mov dword [esp + 0x4d4], esi
jg 0x542c72
cmp eax, 0xa
je 0x542c57
mov esi, 0xf
mov eax, dword [esp + 0x598]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp], eax
call fcn.00591f20
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
mov dword [esp + 0x5a0], 0x70000041
mov dword [esp + 0x374], 0
cmp eax, ecx
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jne 0x5422a6
jmp 0x54939e
cmp eax, 0x52
mov edx, dword [esp + 0x598]
jne 0x543756
mov ecx, 0xa
mov byte [esp + 0x3a8], 7
mov dword [esp + 0x404], 0
test edx, edx
jg 0x543796
mov eax, 0xc
imul edx, edx
and edx, 3
cmp edx, 2
mov edx, dword [esp + 0x374]
mov dword [esp + 0x33c], edx
je 0x549fa8
cmp eax, 0xc
je 0x547d08
jmp 0x544524
mov byte [esp + 0x3a8], 0x14
mov dword [esp + 0x404], 0
test edx, edx
jle 0x5437a9
mov eax, 0xc
mov ecx, edx
and ecx, 1
xor ecx, edx
not ecx
test ecx, ecx
mov ecx, dword [esp + 0x374]
mov dword [esp + 0x33c], ecx
jne 0x544a90
jmp 0x547d08
mov eax, dword [esp + 0x374]
mov dword [esp + 0x33c], eax
jmp 0x549fa8
mov eax, dword [esp + 0x374]
mov dword [esp + 0x33c], eax
jmp 0x547d08
mov eax, 0xc
mov esi, ecx
not esi
and esi, 1
add esi, ecx
setne bl
movzx esi, bl
add ecx, esi
mov esi, dword [esp + 0x598]
mov edi, dword [esp + 0x58c]
cmp esi, dword [edi]
setg bl
cmp edx, 0xffffffff
setne bh
and bh, bl
movzx edi, bh
mov esi, ecx
imul esi, esi
and esi, 3
test ecx, ecx
je 0x5437c0
cmp esi, 3
je 0x5437c0
mov dword [esp + 0x404], edi
cmp eax, 0xc
je 0x547d08
xor eax, eax
test al, al
je 0x542e53
jmp 0x547d08
mov esi, 0x10
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax]
mov dword [esp + 0x3b0], eax
mov dword [esp + 4], 0x410
mov dword [esp], 1
call fcn.00493840
mov dword [esp + 0x5a0], 0x70000003
test eax, eax
jne 0x543886
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x534], eax
not ecx
test ecx, ecx
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jne 0x54939e
jmp 0x5495c0
mov dword [esp + 0x534], eax
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jmp 0x5495c0
mov bl, 0x1b
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0x534]
mov dword [ecx], eax
mov eax, dword [ebp + 0x2c]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x5438ee
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x5438ee
mov eax, dword [esp + 0x534]
lea eax, [eax + 0x10]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
call fcn.004959f0
mov esi, 0x10
movzx eax, bl
cmp eax, 0x1b
mov eax, dword [esp + 0x588]
jne 0x543953
mov byte [esp + 0x1df], 0x58
mov esi, dword [esp + 0x4ac]
mov eax, dword [esi]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov ecx, dword [esp + 0x3b0]
cmp ecx, eax
je 0x54395a
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x104], esi
mov ebx, dword [ebp + 0x1c]
mov edi, dword [esp + 0x4b8]
jne 0x543c4c
jmp 0x54b567
mov ecx, eax
jmp 0x54b4ab
mov dword [esp + 0x104], esi
mov edi, dword [esp + 0x4b8]
jmp 0x54b567
mov esi, 0x10
mov byte [esp + 0x56f], 3
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
call fcn.004936c0
mov ecx, dword [esp + 0x568]
mov edx, dword [esp + 0x5b8]
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jb 0x543970
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5a0], ecx
jmp 0x541985
mov ebx, 6
mov byte [esp + 0x1df], 0x58
mov byte [esp + 0x56f], 3
lea eax, [edx + 0x1a0]
mov ecx, dword [esp + 0x4c4]
lea esi, [ecx + 0x10]
mov ecx, dword [edx + 8]
lea edi, [esp + 0x600]
mov dword [esp + 0x18], edi
lea edi, [esp + 0x5f8]
mov dword [esp + 0x14], edi
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [ebp + 0x18]
mov dword [esp + 0xc], edi
mov edi, dword [ebp + 0x14]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004fdf80
mov dword [esp + 0x568], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x549f22
mov esi, 0x15
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax]
mov ebx, dword [esp + 0x534]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4ac]
mov dword [esp], eax
call fcn.00591ec0
mov edi, eax
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp edi, eax
jne 0x543aa0
mov edi, dword [esp + 0x3b0]
mov cl, byte [esp + 0x476]
jmp 0x543ab4
mov dword [esp], ebx
call fcn.004936c0
mov dword [esp + 0x5a0], edi
jmp 0x53fd10
cmp esi, 0xa
je 0x53f429
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x53f429
mov byte [esp + 0x476], cl
mov ebx, 0x14
mov eax, dword [esp + 0x104]
mov dword [eax], edi
mov esi, dword [esp + 0x4ac]
cmp edi, dword [esi + 4]
jle 0x543b37
mov eax, 3
sub eax, edi
xor eax, edi
je 0x543b37
mov dword [esp + 0x3b0], edi
mov edi, dword [esp + 0x508]
cmp ebx, 8
jne 0x543b60
mov eax, ebx
not eax
and eax, 1
add eax, ebx
mov dword [esp + 0x508], edi
jne 0x54939e
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4c4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x2e
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00537060
mov dword [esp + 0x5a0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x508], edi
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jne 0x54939e
mov edi, 0xd
mov byte [esp + 0x31b], 0x2f
mov byte [esp + 0x303], 0x4e
mov byte [esp + 0x1eb], 0x77
mov eax, dword [esp + 0x1ac]
mov edx, dword [eax]
cmp edx, 0xffffffff
jne 0x543c40
mov eax, edx
or eax, 2
mov ecx, edx
mov dword [esp + 0x168], edx
xor ecx, 2
add ecx, eax
jne 0x54b1ef
jmp 0x548e8b
mov dword [esp + 0x168], edx
jmp 0x548e8b
mov dword [esp + 0x4ac], esi
mov esi, 0x11
mov eax, dword [esp + 0x534]
lea ecx, [eax + 8]
mov dword [esp + 0x8c], ecx
mov dword [eax + 8], ebx
mov dword [esp], ebx
mov ebx, eax
mov dword [esp + 4], 1
call fcn.00493840
mov dword [ebx + 4], eax
test eax, eax
jne 0x543cdf
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov edx, dword [esp + 0x3c8]
je 0x543d12
mov dword [esp + 0x88], eax
mov dword [esp + 0x4b8], edi
mov al, 0x74
movzx eax, al
cmp eax, 0x7b
jne 0x543e3b
mov esi, 0xa
mov dword [esp], ebx
call fcn.004936c0
mov ecx, 0x70000003
mov edx, dword [esp + 0x5b8]
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x104], eax
jmp 0x545dd8
mov dword [esp + 0x88], eax
mov dword [esp + 0x4b8], edi
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x3e8]
mov dword [esp + 0x59c], eax
mov edx, dword [esp + 0x3c8]
jmp 0x543d3c
mov dword [esp + 0x88], eax
mov dword [esp + 0x4b8], edi
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x3e8]
mov dword [esp + 0x59c], eax
mov edi, dword [esp + 0x57c]
cmp esi, 0xd
je 0x543e09
xor ebx, ebx
test bl, bl
jne 0x543e15
mov eax, dword [esp + 0x59c]
jmp 0x53f706
xor edi, edi
jmp 0x543e5e
mov esi, 0x12
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
call fcn.004936c0
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edi, eax
jb 0x543e40
mov ecx, 0x70000003
mov edx, dword [esp + 0x5b8]
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x104], eax
jmp 0x54bcbe
mov dword [esp + 0x57c], edi
mov dword [esp + 0x4ac], esi
mov byte [esp + 0x127], 0x6f
mov byte [esp + 0x4ef], 0x18
test eax, eax
je 0x543ed4
mov edx, 0xc
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0xc8], eax
jne 0x54ac39
mov dword [esp + 0xc8], eax
jmp 0x543bf7
mov byte [esp + 0x1eb], 0x77
mov eax, dword [esp + 0x58c]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
mov ecx, dword [esp + 0x168]
je 0x54b1ef
cmp ecx, eax
jne 0x54b1ef
mov eax, ecx
not eax
and eax, 1
add eax, ecx
je 0x54b1ef
mov eax, dword [esp + 0x5ac]
mov dword [eax + 0x1a8], 1
mov ebx, 1
jmp 0x54b251
mov al, byte [esp + 0x31b]
movzx eax, al
cmp eax, 0x57
jne 0x54400e
cmp eax, 0xa
je 0x53fcce
xor eax, eax
test al, al
je 0x54939e
jmp 0x53fcce
imul eax, eax
and eax, 3
cmp eax, 3
je 0x54b440
mov dword [esp + 0x490], edi
mov dword [esp + 0x588], edx
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0x20c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00591f90
mov edi, eax
test edi, edi
je 0x5444a6
mov al, byte [esp + 0x486]
movzx ecx, al
cmp ecx, 0x27
je 0x5445be
mov esi, 0xc
cmp ecx, 0x32
jne 0x544654
mov eax, dword [esp + 0x378]
mov ecx, dword [esp + 0x5ac]
cmp esi, 0xc
jne 0x54310f
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x54310f
mov dword [esp + 0x378], eax
mov byte [esp + 0x486], 0x6e
mov byte [esp + 0x2af], 0x5b
lea eax, [ecx + 8]
mov dword [esp + 0x424], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x5ac], ecx
lea ecx, [esp + 0x5e0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a7b0
mov edi, eax
and eax, 1
inc eax
xor eax, edi
sete al
movzx eax, al
cmp edi, eax
jmp 0x54468f
mov esi, 4
mov byte [esp + 0x486], 0x27
mov byte [esp + 0x2af], 0x5b
mov ecx, dword [esp + 0x5ac]
lea eax, [ecx + 8]
mov dword [esp + 0x424], eax
mov eax, dword [ecx + 8]
lea ecx, [esp + 0x5e0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a7b0
mov edi, eax
test edi, edi
mov eax, dword [esp + 0x468]
mov dword [esp + 0x2c0], eax
mov eax, dword [esp + 0x464]
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x480]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x47c]
mov dword [esp + 0x2b4], eax
jne 0x5446c9
cmp esi, 4
je 0x544726
xor eax, eax
test al, al
je 0x53db67
jmp 0x544726
mov byte [esp + 0x486], 0x32
mov byte [esp + 0x2af], 0x5b
mov ecx, dword [esp + 0x5ac]
lea eax, [ecx + 8]
mov dword [esp + 0x424], eax
mov eax, dword [ecx + 8]
lea ecx, [esp + 0x5e0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a7b0
mov edi, eax
test edi, edi
mov eax, dword [esp + 0x468]
mov dword [esp + 0x2c0], eax
mov eax, dword [esp + 0x464]
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x480]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x47c]
mov dword [esp + 0x2b4], eax
je 0x544726
mov eax, dword [esp + 0x424]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.VLIB_for_vendor__d_is_not_available_n
call fcn.004414c0
mov eax, dword [esp + 0x468]
mov dword [esp + 0x2c0], eax
mov eax, dword [esp + 0x464]
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x480]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x47c]
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x5a0], edi
jmp 0x53fd10
mov esi, 7
movzx eax, byte [esp + 0x2af]
cmp eax, 0x5b
je 0x546409
mov byte [esp + 0x2af], 0x15
lea eax, [esp + 0x5e4]
mov dword [esp + 0x27c], eax
mov eax, dword [esp + 0x5e4]
cmp eax, 3
jb 0x54476f
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
mov ecx, dword [ebp + 0x10]
jne 0x5447ce
cmp eax, 2
jne 0x544870
mov ecx, 3
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x544870
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ecx, eax
je 0x542641
mov ecx, dword [esp + 0x5e8]
cmp ecx, 0x23
jb 0x544870
mov edi, 7
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
jne 0x544936
jmp 0x544870
mov edi, dword [esp + 0x5ac]
mov edx, dword [edi + 0x1a0]
lea eax, [esp + 0x608]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x30
mov dword [esp], 0
call fcn.0051f860
mov dword [esp + 0x5a0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov esi, dword [esp + 0x5b8]
jne 0x5449b5
xor eax, eax
jmp 0x544855
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add eax, ecx
movsd xmm0, qword [esp + 0x608]
movsd qword [edi + 0x190], xmm0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jb 0x544830
mov dword [esp + 0x5b4], esi
mov esi, 0x10
mov edx, dword [esp + 0x2a0]
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edx, eax
jne 0x5449c1
mov ecx, dword [ebp + 0x10]
cmp esi, 5
jne 0x5448ae
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x54a88d
mov esi, 0x13
lea eax, [esp + 0x618]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x61c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
lea eax, [esp + 0x617]
mov dword [esp], eax
mov dword [esp + 0x10], 8
mov dword [esp + 4], 0
call fcn.0054de10
test eax, eax
jne 0x5449f4
mov edi, 0xd
mov dword [esp + 0x5a0], eax
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
je 0x544a09
cmp edi, 7
je 0x544aad
imul edi, edi
and edi, 3
cmp edi, 3
je 0x544ab5
mov eax, 7
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
test edx, edx
jne 0x544abd
mov dword [esp + 0x58], 0xd
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x354], edx
je 0x541350
mov eax, dword [esp + 0x58]
cmp eax, 6
je case.0x5423f9.3
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x4f4]
mov dword [esp + 0x490], eax
mov esi, dword [esp + 0x500]
jne 0x544b04
jmp case.0x5423f9.3
mov dword [esp + 0x5b4], esi
jmp 0x54939e
mov al, 0x2e
mov edi, 0x15
movzx ecx, al
cmp ecx, 0x29
je 0x5449e8
mov eax, 8
mov esi, 0x1d
cmp ecx, 0x2e
je 0x548740
jmp 0x54c878
mov eax, dword [esp + 0x5bc]
jmp 0x547606
mov dword [esp + 0x5a0], eax
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
cmp esi, 9
jne 0x54939e
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x54939e
xor ecx, ecx
lea edx, [esp + 0x7d0]
mov esi, dword [esp + 0x4b8]
mov bh, byte [esp + 0x507]
jmp 0x544a73
mov eax, 3
mov byte [esp + 0x4b3], 0x3a
mov byte [esp + 0x577], 0x15
mov bh, 0x75
mov byte [esp + 0x56e], 0x4d
mov esi, ecx
and esi, 1
xor esi, ecx
cmp esi, 0xffffffff
setne bl
movzx esi, bl
add ecx, esi
mov esi, edx
mov byte [esp + 0x507], bh
mov dword [esp + 0x4b8], esi
test ecx, ecx
jne 0x544a90
mov esi, ecx
not esi
and esi, 1
add esi, ecx
jne 0x544a40
cmp eax, 3
je 0x540f15
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x54a01c
jmp 0x540f15
mov ecx, dword [ebp + 0x10]
jmp 0x5447ce
mov ecx, dword [ebp + 0x10]
jmp 0x5447ce
mov dword [esp + 0x354], edx
jmp 0x541350
mov edi, 0xd
mov eax, dword [esp + 0x61c]
mov dword [esp + 0x180], eax
lea ecx, [esp + 0x830]
mov dword [esp + 0x520], ecx
mov dword [esp + 0x830], eax
mov dword [esp + 0x82c], 0
mov dword [esp + 0x828], 0
mov dword [esp + 0x824], 0
lea eax, [esp + 0x820]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x820], 0
mov dword [esp + 0x81c], 0
mov ebx, esi
mov esi, dword [esp + 0x5ac]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea edx, [esp + 0x82c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov dword [esp + 0x1c], 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0
call fcn.00508b80
mov eax, dword [esp + 0x82c]
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x3bc], 0
test eax, eax
mov ecx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov eax, dword [esp + 0x490]
mov dword [esp + 0x4f4], eax
mov dword [esp + 0x500], ebx
mov ebx, ecx
mov dword [esp + 0x1cc], esi
je 0x545089
cmp edi, 0xb
jne 0x544c7b
imul edi, edi
and edi, 3
cmp edi, 2
jae 0x544c7b
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov eax, 0x16
mov dl, byte [esp + 0x305]
movzx ecx, dl
cmp ecx, 3
mov esi, dword [esp + 0x494]
mov edi, dword [esp + 0x2c8]
jne 0x546009
xor eax, eax
jmp 0x53ec12
mov esi, 2
mov byte [esp + 0x2f2], 1
mov byte [esp + 0x11b], 4
lea ecx, [esp + 0x7f8]
mov dword [esp + 0x338], ecx
mov dword [esp + 0x7f8], 4
mov dword [esp + 0x7fc], 2
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x800], eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x804], eax
mov dword [esp + 0x808], 0xfffffffe
lea eax, [esp + 0x824]
mov dword [esp + 8], eax
lea eax, [esp + 0x828]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00593400
mov dword [esp + 0x3a0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov edx, dword [esp + 0x59c]
jne 0x544de0
cmp esi, 2
jne 0x544dcd
mov ecx, 3
movzx eax, byte [esp + 0x11b]
cmp eax, 4
jne 0x544e06
mov dword [esp + 0x59c], edx
mov byte [esp + 0x11b], 0x57
mov byte [esp + 0x51f], 0xe
mov eax, dword [esp + 0x828]
mov ecx, dword [eax]
mov edx, ecx
imul edx, edx
and edx, 3
xor esi, esi
cmp edx, 2
mov edx, 0x7000002f
cmovae esi, edx
cmp ecx, 0x636f6964
cmovne esi, edx
mov dword [esp + 0x3a0], esi
add eax, 0xc
mov dword [esp + 4], eax
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov ecx, dword [esp + 0x820]
cmp ecx, dword [esp + 0x180]
jae 0x544efd
mov eax, 0x14
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
jne 0x544f48
jmp 0x544efd
mov dword [esp + 0x57c], ebx
mov dword [esp + 0x5bc], edx
jmp 0x548818
mov dword [esp + 0x59c], edx
cmp esi, 2
jne 0x549031
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
jne 0x544efd
jmp 0x549031
mov dword [esp + 0x57c], ebx
mov dword [esp + 0x5bc], edx
mov esi, dword [esp + 0x480]
mov edi, dword [esp + 0x47c]
cmp ecx, 2
jne 0x544e36
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x5432ff
mov eax, dword [esp + 0x828]
xor ecx, ecx
cmp dword [eax], 0x636f6964
je 0x544e4c
mov ecx, 0x7000002f
mov dword [esp + 0x3a0], ecx
mov byte [esp + 0x11b], 4
mov byte [esp + 0x51f], 0xe
add eax, 0xc
mov dword [esp + 4], eax
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov ecx, dword [esp + 0x820]
cmp ecx, dword [esp + 0x180]
jae 0x544eda
mov eax, 7
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
mov ebx, dword [esp + 0x57c]
mov ecx, dword [esp + 0x5bc]
mov dword [esp + 0x59c], ecx
mov dword [esp + 0x480], esi
mov dword [esp + 0x47c], edi
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
jne 0x5459f3
jmp 0x544efd
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov dword [esp + 0x480], esi
mov dword [esp + 0x47c], edi
mov eax, 0xf
movzx ecx, byte [esp + 0x2f2]
cmp ecx, 1
jne 0x544f48
mov byte [esp + 0x2f2], 1
mov esi, dword [esp + 0x828]
test esi, esi
je 0x54507b
mov al, 0x1e
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x3a0]
mov dword [esp + 0x3bc], ecx
jne 0x544fa6
jmp 0x545089
cmp eax, 0xf
je 0x544f5b
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x54540d
mov byte [esp + 0x2f2], 0x18
mov al, 0x1e
mov esi, dword [esp + 0x828]
test esi, esi
jne 0x544fa6
mov ecx, 9
mov edx, esi
not edx
and edx, 1
add edx, esi
mov edx, dword [esp + 0x3a0]
mov dword [esp + 0x3bc], edx
je 0x544fa6
cmp ecx, 9
je 0x545089
xor eax, eax
test al, al
je 0x53f0c3
jmp 0x545089
mov dword [esp + 0x490], ebx
movzx eax, al
xor ebx, ebx
cmp eax, 0x1e
je 0x544fce
jmp 0x54505a
mov edi, 0xe
inc ebx
mov dword [esp], esi
call fcn.004936c0
mov eax, ebx
not eax
and eax, 1
add eax, ebx
setne al
movzx eax, al
cmp ebx, eax
jb 0x544fc0
mov eax, dword [esp + 0x490]
mov dword [esp + 0x57c], eax
mov eax, dword [esp + 0x3a0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
cmp edi, 0xe
jne 0x542c57
mov eax, 3
sub eax, edi
xor eax, edi
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jne 0x545089
jmp 0x542c57
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
add ebx, eax
mov dword [esp], esi
call fcn.004936c0
test ebx, ebx
je 0x545040
mov al, 1
test al, al
je 0x545040
mov eax, dword [esp + 0x3a0]
mov dword [esp + 0x3bc], eax
mov ebx, dword [esp + 0x490]
jmp 0x545089
mov eax, dword [esp + 0x3a0]
mov dword [esp + 0x3bc], eax
mov esi, ebx
mov ebx, dword [esp + 0x3bc]
test ebx, ebx
jne 0x5451ca
mov al, byte [esp + 0x617]
mov ecx, dword [esp + 0x618]
mov byte [esp + 0x857], al
mov dword [esp + 0x850], ecx
mov dword [esp + 0x84c], 0
mov dword [esp + 0x848], 0
mov dword [esp + 0x844], 0
mov dword [esp + 0x840], 0
mov byte [esp + 0x83f], 0
mov dword [esp + 0x838], 0
mov dword [esp + 0x834], 0
mov ecx, dword [esp + 0x1cc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
lea edx, [esp + 0x84c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
mov edi, dword [ebp + 0x10]
mov dword [esp + 4], edi
mov dword [esp + 0x1c], 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0
call fcn.00508b80
mov eax, dword [esp + 0x84c]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5451eb
mov dword [esp + 0x57c], esi
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov dword [esp + 0x5a0], ebx
jmp 0x53fd10
mov edx, dword [esp + 0x338]
mov eax, 0x16
movzx ecx, byte [esp + 0x51f]
cmp ecx, 0x24
je 0x545446
mov eax, 7
cmp ecx, 0x26
je 0x545470
cmp ecx, 0x2d
jne 0x545506
mov byte [esp + 0x51f], 0xe
jmp 0x54550e
mov dword [esp + 0x338], edx
mov edi, ebx
mov ecx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], ecx
mov ecx, dword [esp + 0x5a4]
mov edx, dword [esp + 0x5a8]
jmp 0x541d3b
mov dword [esp + 0x338], edx
mov dword [esp + 0x57c], ebx
mov ecx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], ecx
cmp eax, 7
je 0x5454a0
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x5499fb
mov byte [esp + 0x51f], 0x24
lea eax, [esp + 0x81c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x520]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x338]
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 8], 4
mov dword [esp + 4], 0xc
call fcn.00593f40
mov dword [esp + 0x3a0], eax
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x544efd
mov byte [esp + 0x51f], 0x2d
lea eax, [esp + 0x81c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x520]
mov dword [esp + 0xc], eax
mov dword [esp], edx
mov dword [esp + 0x338], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], 4
mov dword [esp + 4], 0xc
call fcn.00593f40
mov dword [esp + 0x3a0], eax
jmp 0x544efd
mov eax, 0x11
mov edx, dword [esp + 0x400]
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x54561b
mov eax, dword [esp + 0x600]
mov ecx, dword [esp + 0x604]
xor esi, esi
mov edx, eax
or edx, ecx
je 0x54559b
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0041e260
mov edi, dword [esp + 0x5ac]
jmp 0x5455cb
mov ebx, 9
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], edi
call fcn.00411700
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x5455b0
mov edx, dword [esp + 0x5bc]
mov eax, dword [esp + 0x510]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x50c]
mov dword [esp + 0x490], eax
mov eax, dword [esp + 0x400]
mov ecx, dword [esp + 0x5b8]
mov esi, dword [esp + 0x570]
jmp 0x545b5f
mov ebx, dword [esp + 0x57c]
mov ecx, dword [esp + 0x5bc]
mov dword [esp + 0x59c], ecx
mov dword [esp + 0x5a0], edx
mov edx, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], edx
jmp 0x549ae6
mov eax, dword [esp + 0x848]
mov ecx, dword [eax]
cmp ecx, 0x636f6366
je 0x545683
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x545683
mov byte [esp + 0x25b], 0x5f
mov eax, 4
mov dword [esp + 0x398], 0x7000002f
jmp 0x54bcf1
mov byte [esp + 0x25b], 0x5f
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x848]
add eax, 8
mov dword [esp + 4], eax
lea eax, [esp + 0x83f]
mov dword [esp], eax
mov dword [esp + 8], 1
call fcn.007c51d0
movzx ecx, byte [esp + 0x83f]
mov al, byte [esp + 0x857]
or al, cl
mov byte [esp + 0x857], al
movzx eax, al
cmp eax, ecx
mov dword [esp + 0x398], 0x7000002f
je 0x545760
imul eax, eax
and eax, 3
cmp eax, 2
je 0x545760
lea eax, [esp + 0x834]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x857]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 8
call fcn.00593f40
mov dword [esp + 0x398], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x54c0ef
mov cl, 0x33
mov eax, 8
movzx ecx, cl
cmp ecx, 0x19
je 0x5457a5
mov esi, 0x15
cmp ecx, 0x33
jne 0x54b8cb
mov eax, dword [esp + 0x850]
cmp eax, dword [esp + 0x840]
ja 0x545a5d
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x545aaf
jmp 0x545a5d
mov edx, dword [esp + 0x4e4]
mov ecx, dword [esp + 0x580]
mov dword [esp + 0x490], ecx
mov ecx, dword [esp + 0x584]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x588]
cmp eax, 7
mov edi, dword [esp + 0x490]
jne 0x545803
mov dword [esp + 0x4e4], edx
mov dword [esp + 0x580], edi
mov eax, dword [esp + 0x448]
mov dword [esp + 0x584], eax
mov dword [esp + 0x588], ecx
jmp 0x53dccb
mov dword [esp + 0x59c], ecx
mov dword [esp + 0x588], 4
mov eax, dword [esp + 0x850]
cmp eax, dword [esp + 0x840]
mov esi, dword [esp + 0x5b8]
ja 0x545898
mov ebx, 0xa
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov eax, dword [esp + 0x5b4]
je 0x54589f
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x5b8], esi
cmp ebx, 0xa
jne 0x5458fb
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
mov dword [esp + 0x4e4], edx
mov dword [esp + 0x580], edi
mov eax, dword [esp + 0x448]
mov dword [esp + 0x584], eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x588], eax
jne 0x545aaf
jmp 0x545925
mov eax, dword [esp + 0x5b4]
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x5b8], esi
mov eax, dword [esp + 0x588]
cmp eax, 4
jne 0x545a16
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x4e4], edx
mov dword [esp + 0x580], edi
mov eax, dword [esp + 0x448]
mov dword [esp + 0x584], eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x588], eax
jb 0x545a5d
jmp 0x54939e
mov dword [esp + 0x4e4], edx
mov dword [esp + 0x580], edi
mov eax, dword [esp + 0x448]
mov dword [esp + 0x584], eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x588], eax
mov al, byte [esp + 0x307]
movzx ecx, al
cmp ecx, 0x17
je 0x54596a
cmp ecx, 0x36
je 0x5459a3
mov eax, 0x17
mov byte [esp + 0x307], 0x36
mov edx, dword [esp + 0x8a4]
test edx, edx
je 0x545a45
cmp eax, 2
je 0x53fa2a
mov ebx, dword [esp + 0x57c]
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
jmp 0x54540d
mov dword [esp + 0x4e4], edx
mov dword [esp + 0x580], edi
mov eax, dword [esp + 0x448]
mov dword [esp + 0x584], eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x588], eax
jmp 0x54939e
lea eax, [esp + 0x834]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 8], 4
mov dword [esp + 4], 4
call fcn.00593f40
mov dword [esp + 0x398], eax
test eax, eax
je 0x545aaf
mov dword [esp + 0x398], 0
mov esi, 0x18
jmp 0x54b692
mov dword [esp + 0x448], 0x10
mov byte [esp + 0x306], 0x7a
mov eax, dword [esp + 0x848]
mov dword [esp + 0x274], eax
test eax, eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x278], eax
mov dword [esp + 0x400], eax
jne 0x545b21
mov ecx, dword [esp + 0x448]
cmp ecx, 0x10
je 0x545557
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
jne case.0x5423f9.3
jmp 0x545557
mov ebx, 8
mov eax, dword [esp + 0x274]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x278]
mov dword [esp + 0x400], eax
mov eax, ebx
not eax
and eax, 1
add eax, ebx
setne al
movzx eax, al
cmp ebx, eax
jne 0x545557
jmp 0x5474dc
mov dword [esp + 0x5b4], ecx
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x5ac], edi
mov dword [esp + 0x570], esi
cmp ebx, 9
je 0x545baf
xor eax, eax
test al, al
mov dword [esp + 0x5bc], edx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x510], eax
mov eax, dword [esp + 0x490]
mov dword [esp + 0x50c], eax
je 0x54169b
jmp 0x545c08
mov eax, dword [esp + 0x448]
mov dword [esp + 0x510], eax
mov eax, dword [esp + 0x490]
mov dword [esp + 0x50c], eax
mov dword [esp + 0x5bc], edx
jmp 0x545c08
mov eax, 5
mov edx, dword [esp + 0x234]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x542e34
mov eax, dword [esp + 0x5ac]
mov dword [esp], eax
call fcn.00411700
mov ecx, dword [esp + 0x5b8]
test ecx, ecx
jne 0x545c23
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
jne 0x5461d3
mov al, 1
test al, al
jne 0x545cea
mov esi, 0x18
xor eax, eax
test al, al
je 0x545dc3
mov byte [esp + 0x453], 0x51
mov esi, dword [esp + 0x2c0]
lea eax, [esi + 0x18]
mov dword [esp + 0x430], eax
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], 0x80dc24
call fcn.007c5230
lea eax, [esi + 8]
mov dword [esp + 0x42c], eax
movsd xmm0, qword [esi + 8]
movsd qword [esp + 0x858], xmm0
lea eax, [esp + 0x858]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00419d10
lea ecx, [esi + 0x28]
mov dword [esp + 0x4e8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], 0x80dc2c
call fcn.007c57a0
mov eax, dword [esp + 0x5f8]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
xor ecx, eax
or ecx, dword [esp + 0x5fc]
mov dword [esp + 0x428], esi
jne 0x545ec9
jmp 0x5461d3
mov esi, 0x1d
mov byte [esp + 0x453], 0x51
mov edi, dword [esp + 0x2c0]
lea eax, [edi + 0x18]
mov dword [esp + 0x430], eax
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], 0x80dc24
call fcn.007c5230
lea eax, [edi + 8]
mov dword [esp + 0x42c], eax
movsd xmm0, qword [edi + 8]
movsd qword [esp + 0x858], xmm0
lea eax, [esp + 0x858]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00419d10
lea ecx, [edi + 0x28]
mov dword [esp + 0x4e8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov dword [esp], 0x80dc2c
call fcn.007c57a0
mov eax, dword [esp + 0x5f8]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
xor ecx, eax
or ecx, dword [esp + 0x5fc]
mov dword [esp + 0x428], edi
mov edi, dword [esp + 0x508]
jne 0x545ec9
cmp esi, 0xf
je 0x5461c7
imul esi, esi
and esi, 3
cmp esi, 2
mov dword [esp + 0x508], edi
jne 0x5461d3
mov ebx, dword [esp + 0x534]
mov ecx, dword [esp + 0x5a0]
mov edx, dword [esp + 0x5b4]
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5a0], ecx
mov dword [esp + 0x534], ebx
cmp esi, 0xa
jne 0x545e01
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x54939e
mov esi, 1
mov byte [esp + 0x453], 0x51
mov edi, dword [esp + 0x2c0]
lea eax, [edi + 0x18]
mov dword [esp + 0x430], eax
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], 0x80dc24
call fcn.007c5230
lea eax, [edi + 8]
mov dword [esp + 0x42c], eax
movsd xmm0, qword [edi + 8]
movsd qword [esp + 0x858], xmm0
lea eax, [esp + 0x858]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00419d10
lea ecx, [edi + 0x28]
mov dword [esp + 0x4e8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov dword [esp], 0x80dc2c
call fcn.007c57a0
mov eax, dword [esp + 0x5f8]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
xor ecx, eax
or ecx, dword [esp + 0x5fc]
mov dword [esp + 0x428], edi
je 0x5461d3
mov eax, 0xc
movzx ecx, byte [esp + 0x453]
cmp ecx, 0x2b
je 0x545ff4
cmp ecx, 0x72
je 0x5460fb
mov dl, byte [esp + 0x305]
mov esi, dword [esp + 0x494]
mov edi, dword [esp + 0x2c8]
cmp eax, 0xc
je 0x546034
imul eax, eax
and eax, 3
cmp eax, 2
je 0x546034
mov byte [esp + 0x305], 0x40
mov dword [esp + 0x494], edi
mov dword [esp + 0x2c8], edi
jmp 0x53f9bc
mov dword [esp + 0x2c8], edi
mov dword [esp + 0x494], esi
mov byte [esp + 0x305], dl
mov byte [esp + 0x453], 0x77
mov edi, dword [esp + 0x430]
mov dword [esp + 4], edi
mov dword [esp], 0x80dc24
call fcn.007c5260
mov eax, dword [esp + 0x4e8]
mov dword [esp + 4], eax
mov dword [esp], 0x80dc2c
call fcn.007c5760
movsd xmm0, qword [esp + 0x5f8]
mov ebx, dword [esp + 0x42c]
movsd qword [ebx], xmm0
mov esi, dword [esp + 0x428]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], 0x80dc24
call fcn.007c5230
movsd xmm0, qword [ebx]
movsd qword [esp + 0x860], xmm0
lea eax, [esp + 0x860]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00419d10
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov esi, 0xe
mov eax, dword [esp + 0x4e8]
mov dword [esp + 4], eax
mov dword [esp], 0x80dc2c
call fcn.007c57a0
jmp 0x54b1ac
cmp dword [esp + 0x59c], 2
je 0x54a88d
xor eax, eax
test al, al
je 0x5461d3
jmp 0x54a88d
mov dword [esp + 0x508], edi
jmp 0x53f9bc
mov ecx, 3
mov esi, dword [ebp + 0x38]
test esi, esi
jne 0x5461f3
mov eax, 0x18
mov edx, 3
sub edx, esi
xor edx, esi
jne 0x5466fe
mov dl, 0x28
mov eax, 7
movzx edx, dl
cmp edx, 0x76
je 0x548903
xor eax, eax
mov edi, dword [esp + 0x5ac]
jmp 0x54622a
mov dword [esp + 0x444], edi
mov eax, dword [esp + 0x24c]
cmp eax, 2
je 0x5462e8
imul eax, eax
and eax, 3
mov dword [esp + 0x408], 0
cmp eax, 3
mov eax, dword [esp + 0x48c]
mov dword [esp + 0x4a4], eax
mov eax, dword [esp + 0x488]
mov dword [esp + 0x40c], eax
jne 0x54c290
mov eax, 0x10
mov ecx, dword [esp + 0x5e8]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
mov edi, dword [esp + 0x2b4]
mov esi, edi
and esi, 1
inc esi
xor esi, edi
sete dh
movzx esi, dh
mov dword [esp + 0x408], 0
cmp edi, esi
je 0x54634e
movzx edx, dl
cmp ecx, edx
mov ecx, dword [esp + 0x48c]
mov dword [esp + 0x4a4], ecx
mov ecx, dword [esp + 0x488]
mov dword [esp + 0x40c], ecx
jne 0x54636f
jmp 0x54b13f
mov ecx, dword [esp + 0x48c]
mov dword [esp + 0x4a4], ecx
mov ecx, dword [esp + 0x488]
mov dword [esp + 0x40c], ecx
jmp 0x54b13f
mov esi, 0x12
mov byte [esp + 0x1bf], 5
lea eax, [esp + 0x870]
mov dword [esp + 0x208], eax
mov dword [esp + 0x874], 0
mov dword [esp + 0x870], 0
mov dword [esp + 0x878], 0
mov dword [esp + 0x86c], 0
mov ecx, dword [esp + 0x5ac]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00432440
mov dword [esp + 0x4b4], eax
mov dword [esp], eax
call fcn.007ca940
mov dword [esp + 0x498], 0
test eax, eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov dword [esp + 0x4d0], 0
je 0x546ac2
cmp esi, 7
je 0x5464e5
imul esi, esi
and esi, 3
cmp esi, 2
je 0x5464e5
mov eax, 7
mov dl, byte [esp + 0x1bf]
movzx ecx, dl
cmp ecx, 5
je 0x546529
cmp ecx, 0x42
mov ebx, dword [esp + 0x4b4]
jne 0x5465e0
mov esi, 6
mov byte [esp + 0x1bf], 0x42
mov byte [esp + 0x590], 0x7b
mov dword [esp], ebx
call fcn.007ca940
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00493a50
mov edi, eax
mov dword [esp], ebx
call fcn.007ca940
shl eax, 2
mov dword [esp + 8], eax
mov dword [esp], edi
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp], ebx
call fcn.00430350
mov edx, edi
mov dword [esp + 0x594], 0
test eax, eax
mov edi, 0
mov ecx, edx
je 0x546d7e
mov dword [esp + 0x4d0], edi
mov dword [esp + 0x498], edx
mov dword [esp + 0x578], ecx
mov dword [esp + 0x4b4], ebx
cmp esi, 6
jne 0x540fb2
jmp 0x546ac2
mov byte [esp + 0x2af], 0x5b
lea eax, [esp + 0x5e4]
mov dword [esp + 0x27c], eax
mov eax, dword [esp + 0x5e4]
cmp eax, 3
jb 0x54476f
mov edi, 0xa
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
mov ecx, dword [ebp + 0x10]
jb 0x5469a8
jmp 0x54476f
mov edi, dword [esp + 0x4b4]
xor esi, esi
cmp eax, 3
je 0x546889
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x546889
mov esi, 0xf
mov byte [esp + 0x1bf], 0x31
mov byte [esp + 0x590], 0x7b
mov dword [esp], edi
call fcn.007ca940
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00493a50
mov ebx, eax
mov dword [esp + 0x578], ebx
mov dword [esp], edi
call fcn.007ca940
shl eax, 2
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp], edi
mov dword [esp + 0x4b4], edi
call fcn.00430350
mov dword [esp + 0x594], 0
test eax, eax
mov dword [esp + 0x498], ebx
mov dword [esp + 0x4d0], 0
jne 0x546ac2
cmp esi, 0xf
je 0x53cde7
jmp 0x54ba0e
mov esi, 0x10
mov byte [esp + 0x1bf], 5
mov byte [esp + 0x590], 0x7b
mov dword [esp], ebx
call fcn.007ca940
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00493a50
mov edi, eax
mov dword [esp], ebx
call fcn.007ca940
shl eax, 2
mov dword [esp + 8], eax
mov dword [esp], edi
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp], ebx
call fcn.00430350
test eax, eax
jne 0x546946
mov ch, byte [esp + 0x34b]
mov cl, byte [esp + 0x476]
mov dl, byte [esp + 0xeb]
mov byte [esp + 0xeb], dl
mov byte [esp + 0x476], cl
mov byte [esp + 0x34b], ch
mov edx, edi
cmp esi, 0x10
mov ecx, edi
jne 0x54669c
mov eax, esi
not eax
and eax, 1
mov dword [esp + 0x594], 0
add eax, esi
je 0x54669c
xor edi, edi
mov ebx, dword [esp + 0x4b4]
mov dword [esp + 0x578], ecx
jmp 0x546a30
mov dword [esp + 0x498], edx
mov dword [esp + 0x578], ecx
mov eax, 0xe
mov byte [esp + 0x2f3], 0x21
mov ecx, dword [esp + 0x240]
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x2f4], edx
test edx, edx
sete cl
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
mov dword [esp + 0x594], 0
or dl, cl
mov byte [esp + 0x213], dl
mov dword [esp + 0x4d0], 0
jne 0x53caf4
cmp eax, 0xe
je 0x54a5fe
mov eax, dword [esp + 0x27c]
mov eax, dword [eax]
mov dword [esp + 0x24c], eax
cmp eax, 2
jbe 0x546785
mov edx, 4
mov eax, dword [esp + 0x2b4]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x408], 0
cmp eax, ecx
mov eax, dword [esp + 0x48c]
mov dword [esp + 0x4a4], eax
mov eax, dword [esp + 0x488]
mov dword [esp + 0x40c], eax
jne 0x54afe7
jmp 0x54c290
mov cl, 0x56
mov eax, 5
movzx edx, cl
cmp edx, 0x39
je 0x54682c
cmp edx, 0x56
je 0x546838
mov dword [esp + 0x490], 9
mov dword [esp + 0x5bc], 0x10
cmp edx, 0x57
mov ebx, dword [esp + 0x3d0]
mov edx, dword [esp + 0x558]
mov edi, dword [esp + 0x364]
mov esi, dword [esp + 0x3d4]
mov eax, dword [esp + 0x59c]
je 0x542689
mov dword [esp + 0x59c], eax
mov dword [esp + 0x3d4], esi
mov dword [esp + 0x364], edi
mov dword [esp + 0x558], edx
mov dword [esp + 0x3d0], ebx
cmp dword [esp + 0x5bc], 0x10
jne 0x546911
mov dword [esp + 0x408], 0
cmp dword [esp + 0x24c], 2
jmp 0x5462c6
mov edi, dword [esp + 0x444]
jmp 0x548a83
mov esi, 0x10
mov dword [esp + 0x408], 0
mov ecx, dword [esp + 0x24c]
cmp ecx, 2
jne 0x546987
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
mov eax, dword [esp + 0x48c]
mov dword [esp + 0x4a4], eax
mov eax, dword [esp + 0x488]
mov dword [esp + 0x40c], eax
jne 0x5462e8
jmp 0x540aed
mov byte [esp + 0x1bf], dl
mov dword [esp + 0x4b4], edi
mov dword [esp + 0x59c], eax
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x1c8]
jmp 0x5468e1
mov dword [esp + 0x59c], 0x15
mov byte [esp + 0x507], 0x75
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], ecx
call fcn.007c51d0
test esi, esi
jne 0x5468fa
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
mov ecx, dword [esp + 0x560]
jne 0x5468b0
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x6c], edi
mov ecx, dword [esp + 0x5bc]
jmp 0x53d5f3
mov edi, 0x12
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x19c]
mov dword [esp], eax
call fcn.007c51d0
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
jmp 0x53fa67
mov eax, 5
mov dword [esp + 0x594], 0
mov dword [esp + 0x4d0], 0
mov dword [esp + 0x578], edi
mov dword [esp + 0x498], edi
cmp eax, 5
je 0x546ac2
xor eax, eax
test al, al
je 0x540f64
jmp 0x546ac2
mov eax, dword [esp + 0x48c]
mov dword [esp + 0x4a4], eax
mov eax, dword [esp + 0x488]
mov dword [esp + 0x40c], eax
jmp 0x540aed
cmp edi, 0xa
jne 0x5469bc
mov eax, edi
not eax
and eax, 1
add eax, edi
jne 0x5447ce
mov esi, 0xb
mov byte [esp + 0x577], 0x15
mov eax, dword [esp + 0x7bc]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x7bc], 0
mov ecx, dword [esp + 0x55c]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
je 0x54b59b
mov eax, dword [esp + 0x7d8]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x7d8], 0
mov edi, dword [esp + 0x55c]
mov bl, byte [esp + 0x3c3]
jmp 0x541331
mov esi, 1
mov al, byte [esp + 0x590]
movzx eax, al
cmp eax, 0x26
jne 0x546c92
mov byte [esp + 0x590], 0x26
mov dword [esp], ebx
call fcn.00430370
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x594]
mov edi, dword [esp + 0x578]
mov dword [edi + esi*4], eax
mov dword [esp], ebx
call fcn.004303a0
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp + 0x594], esi
mov dword [esp], ebx
call fcn.00430350
mov ecx, edi
test eax, eax
mov edx, ecx
mov edi, esi
je 0x546a30
mov byte [esp + 0x590], 0x26
mov dword [esp + 0x4b4], ebx
mov dword [esp + 0x498], ecx
mov eax, dword [esp + 0x594]
mov dword [esp + 0x4d0], eax
mov esi, dword [esp + 0x4b4]
mov dword [esp], esi
call fcn.004303e0
mov eax, dword [esp + 0x208]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x870], 0x39
lea eax, [esp + 0x878]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x874]
mov edi, dword [esp + 0x878]
lea ecx, [edi + edi*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x874]
mov dword [esp + 0x49c], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov ebx, eax
test ebx, ebx
je 0x546d8a
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x546d8a
mov al, 0x29
movzx eax, al
cmp eax, 0x28
je 0x546e14
mov dword [esp + 0x164], ebx
cmp eax, 0x74
jne 0x546f04
mov bl, 0x1b
mov esi, dword [esp + 0x164]
mov dword [esp + 0x874], esi
mov eax, dword [esp + 0x878]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esp + 0x878], ecx
lea eax, [edi*8]
mov dword [esp + 0x190], edi
lea eax, [eax + eax*2]
mov dword [esi + eax], 0x10
mov ecx, dword [esp + 0x874]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0x874]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esp + 0x874]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esp + 0x874]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [esp + 0x874]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov edi, eax
test edi, edi
jne 0x54706c
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
mov ecx, dword [esp + 0x498]
je 0x5470a6
mov eax, 0xd
mov dword [esp + 0x454], 0x70000003
mov edx, dword [esp + 0x5bc]
mov dword [esp + 0x59c], edx
mov esi, dword [esp + 0x548]
mov edi, dword [esp + 0x238]
mov edx, dword [esp + 0x5ac]
mov dword [esp + 0x130], edx
mov dword [esp + 0x444], ecx
mov edx, dword [esp + 0x4d0]
mov dword [esp + 0x12c], edx
mov edx, edi
mov ebx, dword [esp + 0x308]
jmp 0x54846a
mov dword [esp + 0x4d0], edi
mov dword [esp + 0x498], edx
mov dword [esp + 0x4b4], ebx
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jne 0x54c729
mov dword [esp + 0x59c], 0xb
mov byte [esp + 0x590], 0x7b
mov edi, dword [esp + 0x4b4]
mov dword [esp], edi
call fcn.00430370
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0x594]
mov esi, dword [esp + 0x578]
mov dword [esi + ebx*4], eax
mov dword [esp], edi
call fcn.004303a0
inc ebx
mov dword [esp + 0x594], ebx
mov dword [esp], edi
call fcn.00430350
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x498], esi
mov esi, 0x1e
mov dword [esp + 0x4d0], ebx
mov edi, dword [esp + 0x508]
jne 0x546dee
xor ebx, ebx
cmp esi, 0xf
mov esi, dword [esp + 0x5b8]
je 0x53e46b
xor eax, eax
test al, al
jne 0x53e46b
mov dword [esp + 0x578], ecx
jmp 0x546a30
mov dword [esp + 0x454], 0x70000003
mov dword [esp + 0x164], ebx
mov dword [esp + 0x190], edi
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x498]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x4d0]
mov dword [esp + 0x12c], eax
jmp 0x548a2c
mov ecx, dword [esp + 0x59c]
cmp ecx, 0xb
jne 0x5403f0
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
jne 0x546ac2
mov dword [esp + 0x874], ebx
mov eax, dword [esp + 0x878]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esp + 0x878], ecx
lea eax, [edi*8]
mov dword [esp + 0x190], edi
lea eax, [eax + eax*2]
mov dword [ebx + eax], 0x10
mov ecx, dword [esp + 0x874]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0x874]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esp + 0x874]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esp + 0x874]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [esp + 0x874]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov edi, eax
test edi, edi
je 0x5470e7
mov dword [esp + 0x454], 0x70000003
mov dword [esp + 0x164], ebx
xor eax, eax
test al, al
mov eax, dword [esp + 0x498]
jne 0x5470fe
mov bl, 0x1b
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
mov ecx, dword [esp + 0x5bc]
mov dword [esp + 0x59c], ecx
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 0x130], ecx
jmp 0x54709d
mov dword [esp + 0x190], edi
mov dword [esp + 0x454], 0x70000003
mov edi, 5
mov eax, dword [esp + 0x510]
mov dword [esp + 0x448], eax
mov ebx, dword [esp + 0x50c]
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x498]
mov dword [esp + 0x444], eax
mov edx, dword [esp + 0x5bc]
mov ecx, dword [esp + 0x4d0]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x498], eax
cmp edi, 2
je 0x547044
mov dword [esp + 0x4b4], esi
mov eax, edi
and eax, 1
inc eax
xor eax, edi
je 0x54704b
mov dword [esp + 0x59c], edx
mov esi, dword [esp + 0x49c]
mov edi, dword [esp + 0x164]
mov dword [esi], edi
mov edx, dword [esp + 0x418]
mov eax, dword [edx]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x190]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 0x10
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov edi, eax
test edi, edi
jne 0x54712d
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
mov dword [esp + 0x454], 0x70000003
mov esi, dword [esp + 0x448]
mov edx, ebx
mov bl, 0x1b
jne 0x548a2c
jmp 0x547138
mov dword [esp + 0x4b4], esi
mov eax, dword [esp + 0x448]
mov dword [esp + 0x510], eax
mov dword [esp + 0x50c], ebx
mov dword [esp + 0x5bc], edx
jmp 0x54a88d
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x498]
mov dword [esp + 0x444], eax
jmp 0x5470d7
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x130], eax
mov dword [esp + 0x444], ecx
mov eax, dword [esp + 0x4d0]
mov dword [esp + 0x12c], eax
jmp 0x547138
mov dword [esp + 0x454], 0x70000003
mov dword [esp + 0x164], ebx
jmp 0x546da3
mov ecx, dword [esp + 0x5bc]
mov dword [esp + 0x59c], ecx
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 0x130], ecx
jmp 0x546dd4
mov esi, dword [esp + 0x448]
mov edx, ebx
mov bl, 0x1b
movzx eax, bl
cmp eax, 0x1b
je 0x54720d
mov dword [esp + 0x490], edx
cmp eax, 0x2c
jne 0x5472f2
mov ebx, 0x17
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov edx, dword [esp + 0x49c]
mov eax, dword [edx]
mov ecx, dword [esp + 0x190]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x12c]
lea eax, [eax*4]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x418]
mov eax, dword [eax]
mov dword [esp + 0x184], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x454], 0x70000003
test eax, eax
jne 0x54739b
mov ecx, eax
mov dword [esp + 0xcc], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x444]
mov dword [esp + 0x264], eax
mov edx, dword [esp + 0x490]
jb 0x548a2c
jmp 0x5473b7
mov dword [esp + 0x490], 0xe
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 8
mov ebx, edx
call fcn.007c51d0
mov edx, dword [esp + 0x49c]
mov eax, dword [edx]
mov ecx, dword [esp + 0x190]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x12c]
lea eax, [eax*4]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x418]
mov eax, dword [eax]
mov dword [esp + 0x184], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov edx, ebx
mov dword [esp + 0xcc], eax
mov dword [esp + 0x454], 0x70000003
test eax, eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x264], eax
je 0x548a2c
mov ecx, dword [esp + 0x490]
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
je 0x5461d3
jmp 0x5473eb
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov edx, dword [esp + 0x49c]
mov eax, dword [edx]
mov ecx, dword [esp + 0x190]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x12c]
lea eax, [eax*4]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x418]
mov eax, dword [eax]
mov dword [esp + 0x184], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0xcc], eax
test eax, eax
mov dword [esp + 0x454], 0x70000003
je 0x5476bb
xor eax, eax
test al, al
mov eax, dword [esp + 0x444]
mov dword [esp + 0x264], eax
mov edx, dword [esp + 0x490]
je 0x5473eb
jmp 0x548a2c
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x264], eax
mov edx, dword [esp + 0x490]
cmp ebx, 0xd
mov eax, dword [esp + 0x59c]
je 0x547664
imul ebx, ebx
and ebx, 3
cmp ebx, 3
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
mov dword [esp + 0x5bc], eax
je 0x547679
mov dword [esp + 0x490], edx
mov ebx, esi
mov esi, dword [esp + 0x49c]
mov edi, dword [esp + 0xcc]
mov dword [esi], edi
mov edx, dword [esp + 0x418]
mov eax, dword [edx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [edx], eax
mov eax, dword [esp + 0x184]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 0x3b
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [esp + 0x36c]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov edi, 8
mov esi, 0x13
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x330], eax
mov dword [esp + 0x454], 0x70000003
test eax, eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x510], ebx
mov ecx, dword [esp + 0x490]
mov dword [esp + 0x50c], ecx
mov edx, dword [esp + 0x4d8]
je 0x547606
mov dword [esp + 0x5bc], eax
cmp esi, 7
jne 0x5475de
mov ecx, 0x11
mov al, byte [esp + 0x3aa]
movzx eax, al
cmp eax, 1
jne 0x53d62d
mov edx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
mov al, byte [esp + 0x4ff]
cmp ecx, 9
je 0x547687
mov byte [esp + 0x4ff], al
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x54768e
mov esi, 0xa
mov byte [esp + 0x3aa], 1
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x7a0]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov edi, dword [esp + 0x458]
mov dword [esp], edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0x2c
call fcn.00537060
mov dword [esp + 0x1fc], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x5ac], edi
mov eax, dword [esp + 0x3ec]
mov dword [esp + 0x48c], eax
mov eax, dword [esp + 0x460]
mov dword [esp + 0x488], eax
mov eax, dword [esp + 0x4e4]
mov dword [esp + 0x410], eax
jne 0x53d6d1
cmp esi, 0xa
je 0x53db67
jmp 0x54c729
cmp edi, 8
je 0x5476af
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
mov dword [esp + 0x5bc], eax
xor esi, esi
mov ebx, dword [esp + 0x218]
jmp 0x53fae9
mov byte [esp + 0x4ff], al
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov edx, dword [esp + 0x384]
jmp 0x53f0ec
mov eax, dword [esp + 0x444]
mov dword [esp + 0x264], eax
mov edx, dword [esp + 0x490]
jmp 0x548a2c
mov byte [esp + 0xb7], 0x13
mov eax, dword [esp + 0x880]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x884]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x418]
mov eax, dword [eax]
mov dword [esp + 0x228], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x49c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x547747
mov edx, eax
or edx, 2
mov ecx, eax
mov dword [esp + 0xb0], eax
xor ecx, 2
add ecx, edx
jne 0x547994
jmp 0x54774e
mov dword [esp + 0xb0], eax
mov edx, dword [esp + 0xb0]
mov edi, dword [esp + 0x49c]
mov dword [edi], edx
mov esi, dword [esp + 0x418]
mov eax, dword [esi]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esi], eax
mov eax, dword [esp + 0x228]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x22
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0xfffffff9
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov ebx, dword [esp + 0x204]
mov dword [ecx + eax + 0x10], ebx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], ebx
call fcn.00492770
mov edx, eax
test edx, edx
jne 0x5477e6
mov eax, edx
not eax
and eax, 1
add eax, edx
je 0x5477e6
mov dword [esp + 0x524], edx
jmp 0x547994
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ebx, eax
jne 0x54781c
mov dword [esp + 0x524], edx
mov edi, dword [esp + 0x508]
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jmp 0x547961
mov al, 0x60
movzx ecx, al
cmp ecx, 0x2b
je 0x54784e
mov eax, 0x17
cmp ecx, 0x60
jne 0x5478b7
mov dword [esp + 0x524], edx
mov ecx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], ecx
jmp 0x54a11f
mov dword [esp + 0x524], edx
xor edi, edi
jmp 0x547897
mov esi, 0xc
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add edi, eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x3b4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x524]
mov dword [esp], eax
call fcn.007c51d0
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp edi, eax
jb 0x547860
mov ebx, dword [esp + 0x57c]
jmp 0x53e939
mov esi, 2
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x3b4]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x524], edx
call fcn.007c51d0
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov edi, dword [esp + 0x508]
cmp esi, 2
je 0x547961
xor eax, eax
test al, al
mov dword [esp + 0x508], edi
je 0x54939e
jmp 0x547961
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x524]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
imul eax, eax
and eax, 3
test esi, esi
je 0x547910
cmp eax, 3
je 0x547910
mov eax, dword [esp + 0x49c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x228]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x524]
mov dword [eax + ecx*8 + 0x14], edx
mov dword [esp + 0x508], edi
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov eax, dword [esp + 0x884]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x424]
mov eax, dword [eax]
lea ecx, [esp + 0x86c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x870]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x547a94
mov al, 3
movzx eax, al
cmp eax, 3
je 0x547aa0
cmp eax, 0x2f
jne 0x547b30
mov eax, 7
mov byte [esp + 0xeb], 0x42
mov byte [esp + 0x195], 0x25
mov esi, dword [esp + 0x86c]
mov ecx, dword [esi + 4]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
mov dword [esp + 0x308], 0
cmp ecx, edx
mov edx, 0
mov dword [esp + 0x454], 0
mov ecx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], ecx
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], 0
je 0x548a2c
cmp eax, 5
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
jne 0x5481b9
jmp 0x54c4c3
mov dword [esp + 0x454], eax
jmp 0x5481a6
mov eax, 0x15
mov byte [esp + 0xeb], 0x42
mov byte [esp + 0x195], 0x25
mov esi, dword [esp + 0x86c]
mov ecx, dword [esi + 4]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
mov dword [esp + 0x308], 0
cmp ecx, edx
mov edx, 0
mov dword [esp + 0x454], 0
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], 0
je 0x548a2c
cmp eax, 6
je 0x541810
imul eax, eax
and eax, 3
cmp eax, 2
je 0x541810
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
jmp 0x5481b9
mov eax, 0x12
mov byte [esp + 0xeb], 0x42
mov byte [esp + 0x195], 0x25
mov esi, dword [esp + 0x86c]
mov ecx, dword [esi + 4]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
mov dword [esp + 0x308], 0
cmp ecx, edx
mov edx, 0
mov dword [esp + 0x454], 0
mov ecx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], ecx
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], 0
jne 0x5481b9
cmp eax, 7
jne 0x547c43
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x547c43
mov esi, 0x17
mov eax, dword [ebp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], str.The_update__s_was_too_new._Install_the_pending_updates_first_n
call fcn.004414c0
mov dword [esp + 0x374], 1
cmp esi, 7
je 0x54814a
xor eax, eax
test al, al
mov edi, dword [esp + 0x508]
jne 0x53e353
mov al, byte [esp + 0x3a8]
movzx eax, al
cmp eax, 0xb
je 0x547c56
mov esi, 0xe
cmp eax, 0x14
jne 0x5436fe
mov edx, dword [esp + 0x598]
cmp esi, 0xb
jne 0x547cc2
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
je 0x547cc2
mov dword [esp + 0x598], edx
jmp 0x53db67
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x5481a6
mov dword [esp + 0x344], 0xd
mov byte [esp + 0x3a8], 0xb
mov ecx, dword [esp + 0x598]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
mov dword [esp + 0x404], 0
cmp ecx, eax
mov eax, dword [esp + 0x374]
mov dword [esp + 0x33c], eax
jle 0x547d08
mov eax, dword [esp + 0x344]
cmp eax, 2
jne 0x54a01c
imul eax, eax
and eax, 3
cmp eax, 2
jb case.0x5423f9.3
jmp 0x54a01c
mov eax, 0x17
mov byte [esp + 0x3a8], 0x52
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov dword [esp + 0x404], 0
cmp edx, ecx
mov dword [esp + 0x598], edx
mov ecx, dword [esp + 0x374]
mov dword [esp + 0x33c], ecx
jg 0x547f75
mov esi, 0x10
mov eax, dword [esp + 0x20c]
mov eax, dword [eax]
mov dword [esp + 0x4ac], eax
mov dword [esp + 0x5a0], 0x700002bb
test eax, eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x358], eax
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
je 0x54939e
cmp esi, 0x10
mov ecx, dword [ebp + 0x14]
je 0x543824
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x543824
mov al, byte [esp + 0x13f]
movzx eax, al
cmp eax, 0x1f
mov edx, dword [esp + 0x558]
je 0x547e73
cmp eax, 0x22
jne 0x547fd1
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x46c]
mov dword [eax], edx
mov esi, dword [esp + 0x570]
mov eax, dword [esi]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0xec]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x10
mov edi, dword [esp + 0x5b0]
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov byte [esp + 0x13f], 8
mov dword [esp], 8
call fcn.00492770
test eax, eax
mov dword [esp + 0x5a0], 0x700002bb
mov dword [esp + 0x5bc], 0x70000003
je 0x548156
mov ecx, 9
mov edx, eax
mov dword [esp + 0x9c], eax
imul edx, edx
and edx, 3
cmp edx, 2
mov dword [esp + 0x5a4], edi
mov dword [esp + 0x5a8], esi
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jne 0x548fe9
jmp 0x542641
mov dword [esp + 0x5a0], 0x700002bb
mov dword [esp + 0x59c], 0x10
mov ecx, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], ecx
mov ebx, dword [esp + 0x3d0]
mov edi, dword [esp + 0x364]
mov esi, dword [esp + 0x3d4]
mov ecx, dword [esp + 0x5bc]
mov dword [esp + 0x5bc], ecx
mov dword [esp + 0x3d4], esi
mov dword [esp + 0x364], edi
mov dword [esp + 0x558], edx
mov dword [esp + 0x3d0], ebx
mov eax, dword [esp + 0x59c]
cmp eax, 0x10
jne 0x547ef1
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x5400ff
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x19c]
mov dword [esp], eax
call fcn.007c51d0
movzx ecx, byte [esp + 0x163]
cmp ecx, 0xa
je 0x5480b7
cmp ecx, 0x12
mov esi, dword [esp + 0x44c]
mov edx, dword [esp + 0x22c]
je 0x5480fa
mov eax, 0xe
cmp ecx, 0x37
jne 0x547f75
mov byte [esp + 0x163], 0xa
mov eax, dword [esp + 0x5b0]
mov eax, dword [eax]
lea ecx, [edx + edx*2]
mov edx, dword [esp + 0x19c]
mov dword [eax + ecx*8 + 0x14], edx
mov ecx, dword [esi]
test ecx, ecx
jne 0x541c0d
cmp eax, 0xe
je 0x547f84
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x46c]
mov dword [eax], edx
mov esi, dword [esp + 0x570]
mov eax, dword [esi]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0xec]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x10
mov edi, dword [esp + 0x5b0]
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov byte [esp + 0x13f], 0x1f
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x5a0], 0x700002bb
mov dword [esp + 0x5bc], 0x70000003
test eax, eax
jne 0x54817e
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x9c], eax
not ecx
test ecx, ecx
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x5a4], edi
mov dword [esp + 0x5a8], esi
jne 0x542641
jmp 0x5401b5
mov byte [esp + 0x163], 0x12
mov eax, dword [esp + 0x5b0]
mov eax, dword [eax]
mov ecx, dword [esp + 0x22c]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x19c]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x44c]
mov ecx, dword [eax]
test ecx, ecx
jne 0x540cde
mov dword [esp + 0x1a0], ecx
jmp 0x541c25
mov eax, 0xa
mov ecx, dword [esp + 0x5b0]
mov ecx, dword [ecx]
lea edx, [edx + edx*2]
mov edi, dword [esp + 0x19c]
mov dword [ecx + edx*8 + 0x14], edi
mov edx, dword [esi]
mov dword [esp + 0x1a0], edx
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edx, ecx
mov ecx, 0x12
mov byte [esp + 0x163], 0x37
jne 0x54830b
jmp 0x53ce7c
mov edi, dword [esp + 0x508]
jmp 0x53e353
mov dword [esp + 0x9c], eax
mov dword [esp + 0x5a4], edi
mov dword [esp + 0x5a8], esi
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jmp 0x542641
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x5a4], edi
mov dword [esp + 0x5a8], esi
jmp 0x5401b5
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
jmp 0x548a2c
mov dword [esp + 0x490], edx
mov dword [esp + 0x448], esi
mov edi, dword [esi + 8]
mov ebx, dword [esp + 0x308]
imul eax, ebx, 0x1c
mov ecx, dword [edi + eax + 4]
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
lea ecx, [edi + eax]
mov dword [esp + 0x1b4], ecx
jne 0x548335
mov ecx, dword [edi + eax + 0x14]
mov dword [esp + 0x140], edi
mov dword [esp + 0x454], 0x30000003
cmp ecx, 4
jne 0x54876a
mov eax, 0xa
mov edx, ecx
not edx
and edx, 1
add edx, ecx
mov esi, dword [esp + 0x448]
mov dword [esp + 0x548], esi
mov dword [esp + 0x314], ebx
mov edx, dword [esp + 0x490]
mov dword [esp + 0x238], edx
je 0x548a2c
cmp eax, 0xa
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov esi, dword [esp + 0x554]
mov edx, dword [esp + 0x550]
je 0x540cf6
mov dword [esp + 0x140], edi
mov eax, 0xa
movzx ecx, byte [esp + 0x195]
cmp ecx, 0x25
mov edx, dword [esp + 0x490]
jne 0x548447
mov byte [esp + 0x195], 0x25
mov eax, dword [esp + 0x1b4]
cmp dword [eax], 2
mov esi, dword [esp + 0x448]
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
mov dword [esp + 0x554], esi
mov dword [esp + 0x550], edx
mov dword [esp + 0x314], ebx
mov dword [esp + 0x548], esi
mov dword [esp + 0x238], edx
jne 0x5489be
mov esi, dword [esp + 0x448]
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
mov dword [esp + 0x314], ebx
mov ecx, dword [esp + 0x498]
mov dword [esp + 0x498], ecx
mov dword [esp + 0x308], ebx
cmp eax, 0xa
je 0x548496
xor eax, eax
test al, al
jne 0x548496
mov dword [esp + 0x548], esi
mov dword [esp + 0x238], edx
jmp 0x5481a6
mov eax, 0x10
mov byte [esp + 0x195], 0xa
mov ecx, dword [esp + 0x1b4]
cmp dword [ecx], 2
mov dword [esp + 0x548], esi
mov dword [esp + 0x238], edx
mov dword [esp + 0x554], esi
mov dword [esp + 0x550], edx
jne 0x5489be
cmp eax, 0x10
je 0x548645
xor eax, eax
test al, al
jne 0x548645
mov dword [esp + 0x490], edx
mov dword [esp + 0x448], esi
xor ecx, ecx
mov dword [esp + 0x344], eax
mov edi, dword [esp + 0x430]
mov esi, dword [esp + 0x42c]
jmp 0x5485d1
mov dword [esp + 0x344], 0x1b
mov byte [esp + 0x453], 0x51
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
adc ecx, 0
mov dword [esp + 0x5bc], ecx
mov dword [esp + 4], edi
mov dword [esp], 0x80dc24
call fcn.007c5260
mov eax, dword [esp + 0x4e8]
mov dword [esp + 4], eax
mov dword [esp], 0x80dc2c
call fcn.007c5760
movsd xmm0, qword [esp + 0x5f8]
movsd qword [esi], xmm0
mov ebx, dword [esp + 0x428]
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], 0x80dc24
call fcn.007c5230
movsd xmm0, qword [esi]
movsd qword [esp + 0x860], xmm0
lea eax, [esp + 0x860]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00419d10
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x4e8]
mov dword [esp + 4], eax
mov dword [esp], 0x80dc2c
call fcn.007c57a0
mov ecx, dword [esp + 0x5bc]
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ecx, eax
jb 0x548510
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x548], eax
mov eax, dword [esp + 0x490]
mov dword [esp + 0x238], eax
mov esi, dword [esp + 0x5b8]
mov ecx, dword [esp + 0x344]
cmp ecx, 0xc
je 0x5488ba
mov ebx, edx
mov edi, 0x13
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov ecx, dword [esp + 0x424]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x1b4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov edx, 0x27
call fcn.00589f50
mov dword [esp + 0x454], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x548916
mov ecx, 4
mov al, byte [esp + 0xeb]
movzx eax, al
cmp eax, 5
mov edx, dword [esp + 0x59c]
jne 0x548972
mov eax, 0xd
mov byte [esp + 0xeb], 0x42
mov dword [esp + 0x550], 0
mov ecx, dword [esp + 0x86c]
mov dword [esp + 0x554], ecx
mov dword [esp + 0x5bc], edx
mov dword [esp + 0x548], esi
mov dword [esp + 0x238], ebx
cmp eax, 8
je 0x545bd4
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov esi, dword [esp + 0x554]
mov edx, dword [esp + 0x550]
jmp 0x5489be
mov esi, dword [esp + 0x448]
mov dword [esp + 0x548], esi
mov dword [esp + 0x314], ebx
mov edx, dword [esp + 0x490]
mov dword [esp + 0x238], edx
jmp 0x548a2c
mov dword [esp + 0x5b4], ecx
cmp ebx, 0xa
je 0x5487e0
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x570], esi
imul ebx, ebx
and ebx, 3
cmp ebx, 3
jne 0x53e48f
mov dword [esp + 0x5ac], edi
jmp 0x5487f5
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x5ac], edi
mov dword [esp + 0x570], esi
mov dword [esp + 0x5bc], edx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x510], eax
mov eax, dword [esp + 0x490]
mov dword [esp + 0x50c], eax
mov esi, 0x11
mov edi, 0x12
movzx eax, byte [esp + 0x577]
cmp eax, 0x15
mov ecx, dword [ebp + 0x10]
jne 0x5469a8
cmp esi, 0xc
jne 0x548873
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x548873
mov eax, dword [esp + 0x7d8]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x7d8], 0
mov edi, 0x7000000a
mov bl, byte [esp + 0x3c3]
jmp 0x541331
mov byte [esp + 0x577], 0x14
mov eax, dword [esp + 0x7bc]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x7bc], 0
mov ecx, dword [esp + 0x55c]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x546a03
jmp 0x54b5b5
cmp eax, 7
jne 0x549229
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov dword [esp + 0x548], esi
mov dword [esp + 0x238], ebx
cmp edi, 4
je 0x53f69b
imul edi, edi
and edi, 3
cmp edi, 2
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
mov ebx, dword [esp + 0x57c]
jne 0x548a2c
jmp 0x53f1ce
mov dword [esp + 0x5bc], edx
mov dword [esp + 0x548], esi
mov dword [esp + 0x238], ebx
cmp ecx, 2
mov eax, dword [esp + 0x5bc]
je 0x541c25
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x541c25
mov edi, edx
mov eax, 3
mov edx, dword [esp + 0x314]
sub eax, edx
xor eax, edx
setne al
movzx ecx, al
add ecx, edx
cmp ecx, dword [esi + 4]
jae 0x548a0e
mov eax, ecx
and eax, 1
xor eax, ecx
mov dword [esp + 0x308], ecx
not eax
test eax, eax
mov dword [esp + 0x554], esi
mov edx, edi
mov dword [esp + 0x550], edx
mov dword [esp + 0x454], edx
jne 0x5481b9
jmp 0x548a2c
mov dword [esp + 0x308], ecx
mov dword [esp + 0x554], esi
mov edx, edi
mov dword [esp + 0x550], edx
mov dword [esp + 0x454], edx
mov eax, 0x11
mov edi, dword [esp + 0x444]
test edi, edi
jne 0x548a67
mov ecx, edi
and ecx, 1
xor ecx, edi
not ecx
test ecx, ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x350], ecx
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
jne 0x548ada
jmp 0x548a83
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x350], ecx
cmp eax, 5
je 0x54629f
imul eax, eax
and eax, 3
cmp eax, 3
je 0x54629f
xor esi, esi
jmp 0x548ab9
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
call fcn.004936c0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x548aa0
mov esi, dword [esp + 0x510]
mov edx, dword [esp + 0x50c]
mov dword [esp + 0x444], edi
mov eax, 0x12
mov ecx, dword [esp + 0x418]
mov edi, edx
mov edx, dword [ecx]
mov dword [esp + 0x39c], edx
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
mov dword [esp + 0x2dc], 0
cmp edx, ecx
mov byte [esp + 0x327], 0x4a
mov byte [esp + 0x2ce], 0x49
mov ecx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], ecx
mov dword [esp + 0x510], esi
mov dword [esp + 0x50c], edi
mov esi, dword [esp + 0x4d4]
je 0x548d9e
cmp eax, 0xd
jne 0x548ca7
movzx ecx, byte [esp + 0x304]
cmp ecx, 0x5c
je 0x548c06
mov eax, 0xd
cmp ecx, 0x69
je 0x53fd23
cmp eax, 2
je 0x54bf29
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x54bf29
mov ebx, dword [esp + 0x2b0]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x148], eax
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
xor eax, dword [esp + 0x1c0]
mov ecx, edx
xor ecx, dword [esp + 0x1c4]
or ecx, eax
mov eax, 0x15
mov byte [esp + 0x304], 0x5c
jne 0x548cbf
mov ecx, 6
mov esi, edx
or esi, 2
xor edx, 2
add edx, esi
mov esi, dword [esp + 0x508]
mov dword [esp + 0x1e4], ebx
jne 0x54adbd
jmp 0x548ccd
mov esi, dword [esp + 0x2b0]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x148], ecx
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
xor ecx, dword [esp + 0x1c0]
mov edx, eax
xor edx, dword [esp + 0x1c4]
or edx, ecx
mov byte [esp + 0x304], 0x69
je 0x548cb3
mov dword [esp + 0x448], 0x18
imul eax, eax
and eax, 3
cmp eax, 3
mov dword [esp + 0x1e4], esi
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
je 0x53fd7e
mov edx, dword [esp + 0x448]
cmp edx, 0xc
mov ecx, dword [esp + 0x59c]
je 0x53ed65
mov eax, edx
and eax, 1
inc eax
xor eax, edx
je 0x53ed65
mov dword [esp + 0x57c], ebx
mov dword [esp + 0x5bc], ecx
jmp 0x53fcce
mov dword [esp + 0x1e4], esi
jmp 0x53fd7e
mov esi, dword [esp + 0x508]
mov dword [esp + 0x1e4], ebx
cmp eax, 6
jne 0x548d92
mov byte [esp + 0x417], 0x44
mov edx, dword [esp + 0x5ac]
lea eax, [edx + 0x1a0]
mov ebx, dword [esp + 0x4c4]
mov ecx, ebx
and ecx, 1
xor ecx, ebx
lea edi, [ebx + 0x10]
cmp ecx, 0xffffffff
mov ecx, 0
cmove edi, ecx
test ebx, ebx
cmove edi, ebx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov edi, esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0x40
mov dword [esp], 0
xor ecx, ecx
call fcn.0057b410
mov dword [esp + 0x5a0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x508], edi
je 0x53e353
mov dword [esp + 0x508], esi
jmp 0x53fcce
movzx ecx, byte [esp + 0x327]
cmp ecx, 0x11
je 0x548e04
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jne 0x548fb2
mov esi, dword [esp + 0x4d4]
mov eax, 0x1e
mov bl, byte [esp + 0x54f]
movzx ecx, bl
cmp ecx, 3
jne 0x548ff7
xor ebx, ebx
jmp 0x548f02
mov edi, 0x12
mov byte [esp + 0x54f], 3
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
adc ebx, 0
mov eax, dword [esp + 0x544]
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ebx, eax
jb 0x548ed0
mov dword [esp + 0x4d4], esi
cmp edi, 2
jne 0x54900a
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
je 0x549013
mov esi, 0x10
mov eax, dword [ebp + 0x28]
mov dword [esp + 8], eax
lea eax, [esp + 0x620]
mov dword [esp], eax
mov dword [esp + 4], 0x180
call fcn.004959f0
cmp esi, 0x10
jne 0x54901c
mov eax, esi
not eax
and eax, 1
add eax, esi
mov edx, dword [esp + 0x4e4]
mov eax, dword [esp + 0x580]
mov dword [esp + 0x490], eax
mov eax, dword [esp + 0x584]
mov dword [esp + 0x448], eax
mov esi, dword [esp + 0x588]
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jne 0x54b31f
mov eax, 7
mov ecx, 0xd
movzx edx, byte [esp + 0x1eb]
cmp edx, 0x77
mov edx, dword [esp + 0x580]
mov dword [esp + 0x490], edx
mov edi, dword [esp + 0x584]
mov esi, dword [esp + 0x588]
je 0x54ab83
cmp ecx, 9
jne 0x543f54
jmp 0x5401b5
mov dword [esp + 0x4d4], esi
mov edi, dword [esp + 0x544]
jmp 0x54c11c
mov esi, dword [esp + 0x4d4]
jmp 0x549054
mov esi, dword [esp + 0x4d4]
jmp 0x549054
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov dword [esp + 0x490], ebx
xor esi, esi
mov edi, dword [esp + 0x320]
mov edx, dword [esp + 0x494]
mov ebx, dword [esp + 0x31c]
jmp 0x53f983
mov edi, dword [esp + 0x350]
test edi, edi
jne 0x5490f9
mov eax, 5
mov dword [esp + 0x408], 0
mov dword [esp + 0x4d4], esi
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 0x540], ecx
mov dword [esp + 0x518], edi
mov ecx, dword [esp + 0x48c]
mov dword [esp + 0x580], ecx
mov edx, dword [esp + 0x488]
mov dword [esp + 0x584], edx
mov esi, dword [esp + 0x410]
mov dword [esp + 0x588], esi
mov dword [esp + 0x4a4], ecx
mov dword [esp + 0x40c], edx
mov dword [esp + 0x350], edi
cmp eax, 5
jne 0x54939e
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jb 0x54c290
jmp 0x54939e
mov dword [esp + 0x4d4], esi
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x540], eax
mov dword [esp + 0x518], edi
mov eax, dword [esp + 0x48c]
mov dword [esp + 0x580], eax
mov ebx, dword [esp + 0x488]
mov edx, dword [esp + 0x410]
jmp 0x549d0b
mov eax, ecx
mov dword [esp + 0x2dc], ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x39c], esi
jae 0x548d9e
mov eax, dword [esp + 0x49c]
mov eax, dword [eax]
mov edx, dword [esp + 0x2dc]
lea ecx, [edx + edx*2]
mov eax, dword [eax + ecx*8 + 0x14]
test eax, eax
je 0x5491b0
mov ebx, edx
mov edi, 0x11
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x418]
mov eax, dword [eax]
mov dword [esp + 0x4d4], eax
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov dword [esp + 0x39c], esi
mov dword [esp + 0x23c], ebx
jmp 0x54a31c
mov dword [esp + 0x39c], esi
mov dword [esp + 0x23c], edx
movzx ecx, byte [esp + 0x2ce]
cmp ecx, 0x49
je 0x5492af
mov eax, 0xb
cmp ecx, 0x7d
jne 0x5492e7
mov eax, 0xf
mov byte [esp + 0x2ce], 0x7d
mov ecx, dword [esp + 0x23c]
inc ecx
mov dword [esp + 0x2dc], ecx
cmp ecx, esi
mov dword [esp + 0x4d4], esi
mov dword [esp + 0x39c], esi
jb 0x549155
cmp eax, 0xf
je 0x549307
xor eax, eax
test al, al
mov esi, dword [esp + 0x4d4]
jne 0x548d9e
movzx eax, byte [esp + 0x1be]
cmp eax, 4
mov edx, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x3d8]
jne 0x543344
mov byte [esp + 0x3a8], 0x52
mov eax, dword [ecx + 0x24]
mov esi, dword [eax]
lea eax, [edx + 4]
mov dword [esp + 0x58c], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x1d8], ecx
mov eax, 3
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
add eax, ecx
mov dword [esp + 0x198], eax
cmp esi, eax
jle 0x5492f3
mov byte [esp + 0x1be], 4
mov eax, 0xa
mov ecx, esi
mov dword [esp + 0x598], esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x540e97
jmp 0x54a21d
mov byte [esp + 0x2ce], 0x2b
mov ecx, dword [esp + 0x23c]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
adc ecx, 0
cmp ecx, esi
jb 0x549136
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x39c], esi
jmp 0x548d9e
mov edi, dword [esp + 0x5ac]
jmp 0x54a2af
mov dword [esp + 0x598], esi
mov byte [esp + 0x1be], 4
jmp 0x54a21d
mov esi, dword [esp + 0x4d4]
jmp 0x548d9e
mov esi, 0x1a
mov byte [esp + 0x304], 0x6f
mov eax, dword [edi]
mov dword [esp + 0x1c4], eax
mov ecx, dword [edi + 4]
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x7b4], ecx
mov dword [esp + 0x7b0], eax
lea eax, [esp + 0x7b0]
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]
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x5a0], 0x700002bb
test eax, eax
mov dword [esp + 0x290], edi
mov dword [esp + 0x5ac], edi
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
jne 0x5424b5
mov eax, 8
mov edx, dword [esp + 0x5b4]
test edx, edx
je 0x5493d2
xor ecx, ecx
test cl, cl
mov dword [esp + 0x2d0], edx
mov ecx, dword [esp + 0x5a0]
mov dword [esp + 0x2e4], ecx
mov dword [esp + 0x2d8], ecx
je 0x54940c
jmp 0x5493ee
mov dword [esp + 0x2d0], edx
mov ecx, dword [esp + 0x5a0]
mov dword [esp + 0x2e4], ecx
mov dword [esp + 0x2d8], ecx
cmp eax, 8
jne 0x5433bc
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x549bc9
jmp 0x5433bc
mov eax, 0x16
mov esi, dword [esp + 0x2d0]
lea ecx, [esi + 0x10]
mov dword [esp + 0x11c], ecx
mov edx, dword [esi + 0x10]
test edx, edx
mov edi, dword [esp + 0x4cc]
mov bl, byte [esp + 0x45f]
jne 0x549466
mov ecx, edx
and ecx, 1
xor ecx, edx
mov dword [esp + 0x158], edx
not ecx
test ecx, ecx
mov dword [esp + 0x4bc], esi
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x4a8], ecx
jne 0x549667
jmp 0x549482
mov dword [esp + 0x158], edx
mov dword [esp + 0x4bc], esi
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x4a8], ecx
cmp eax, 0xf
jne 0x54963b
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x54963b
mov esi, 0xf
mov byte [esp + 0x45f], 0x49
mov eax, dword [ebp + 0x10]
mov dword [edi], eax
mov eax, dword [esp + 0x98]
movsd xmm0, qword [eax]
movsd qword [edi + 8], xmm0
mov dword [esp + 4], 0x1c
mov dword [esp], 1
call fcn.00493840
mov dword [esp + 0x470], eax
lea ecx, [edi + 0x14]
mov dword [esp + 0x4f8], ecx
mov dword [edi + 0x14], eax
mov dword [esp + 0x2e4], 0x70000003
test eax, eax
mov dword [esp + 0x2d0], edi
mov dword [esp + 0x4cc], edi
je 0x54940c
cmp esi, 0xf
jne 0x54bf29
mov eax, esi
not eax
and eax, 1
add eax, esi
mov ebx, dword [esp + 0x584]
mov edx, dword [esp + 0x588]
je 0x549d0b
xor ecx, ecx
mov bl, byte [esp + 0x45f]
movzx edx, bl
cmp edx, 0x49
je 0x5496dc
mov eax, 0x13
cmp edx, 0x73
je 0x54974d
mov esi, 0x20
cmp edx, 0x74
jne 0x5495c0
mov esi, dword [esp + 0x4cc]
mov edi, dword [esp + 0x470]
jmp 0x54959f
mov bl, 0x52
cmp eax, 2
adc ecx, 0
mov dword [edi], 0xffffffff
mov eax, dword [esp + 0x7a0]
mov edx, dword [esp + 0x4f8]
mov edx, dword [edx]
mov dword [edx + 4], eax
mov dword [esp + 0x52c], esi
mov dword [esp + 0x538], esi
mov byte [esp + 0x45f], bl
test ecx, ecx
jne 0x53e0d7
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 1
jbe 0x549570
jmp 0x53e0d7
cmp esi, 0x10
mov edx, dword [esp + 0x470]
jne 0x5495db
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x5438a0
mov ecx, 0xf
mov bl, 0x73
mov dword [edx], 0xffffffff
mov eax, dword [esp + 0x7a0]
mov edx, dword [esp + 0x4f8]
mov edx, dword [edx]
mov dword [edx + 4], eax
mov edi, dword [esp + 0x4cc]
mov dword [esp + 0x52c], edi
mov dword [esp + 0x538], edi
cmp ecx, 0xf
jne 0x53dfd5
mov eax, ecx
not eax
and eax, 1
add eax, ecx
je 0x53dfd5
mov byte [esp + 0x45f], bl
mov dword [esp + 0x4cc], edi
jmp 0x53e0d7
mov esi, dword [esp + 0x158]
mov dword [esp], esi
mov dword [esp + 4], 0x4ddaa0
call fcn.007c56d0
mov dword [esp], esi
call fcn.004936c0
mov eax, dword [esp + 0x11c]
mov dword [eax], 0
mov byte [esp + 0x45f], bl
mov dword [esp + 0x4cc], edi
mov ecx, 0x11
mov byte [esp + 0x29b], 0x13
mov byte [esp + 0x477], 0x54
mov edx, dword [esp + 0x4bc]
lea eax, [edx + 0x14]
mov dword [esp + 0xf4], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0xf8], eax
test eax, eax
mov edx, dword [esp + 0x4e4]
mov eax, dword [esp + 0x580]
mov dword [esp + 0x490], eax
mov eax, dword [esp + 0x584]
mov dword [esp + 0x448], eax
mov esi, dword [esp + 0x588]
jne 0x54a77b
jmp 0x549891
mov esi, dword [esp + 0x4cc]
mov edi, dword [esp + 0x470]
jmp 0x54972b
mov bl, 0x74
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx eax, al
add ecx, eax
mov dword [edi], 0xffffffff
mov eax, dword [esp + 0x7a0]
mov edx, dword [esp + 0x4f8]
mov edx, dword [edx]
mov dword [edx + 4], eax
mov dword [esp + 0x52c], esi
mov dword [esp + 0x538], esi
mov eax, ecx
or eax, 2
mov edx, ecx
xor edx, 2
add edx, eax
setne al
movzx eax, al
cmp ecx, eax
jb 0x5496f0
mov byte [esp + 0x45f], bl
jmp 0x53e0d7
mov esi, dword [esp + 0x4d8]
mov edi, dword [esp + 0x380]
mov bl, byte [esp + 0x18f]
cmp eax, 0xa
jne 0x5497d9
mov dword [esp + 0x380], edi
movzx eax, bl
cmp eax, 0x69
je 0x5497f5
cmp eax, 0x70
jne 0x54985f
xor edi, edi
jmp 0x5497c9
mov bl, 0x69
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x36c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x330]
mov dword [esp], eax
call fcn.007c51d0
test edi, edi
je 0x549790
mov byte [esp + 0x18f], bl
jmp 0x54a8fb
mov byte [esp + 0x18f], bl
mov dword [esp + 0x380], edi
xor eax, eax
mov bh, byte [esp + 0x45f]
jmp 0x53e0b1
mov edi, 0x1b
mov byte [esp + 0x18f], 0x10
mov eax, dword [esp + 0x36c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x330]
mov dword [esp], eax
call fcn.007c51d0
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov dword [esp + 0x4d8], esi
cmp edi, 0xb
je 0x53ebc2
mov eax, edi
and eax, 1
inc eax
xor eax, edi
jne 0x54a917
jmp 0x53ebc2
mov byte [esp + 0x18f], 0x70
mov eax, dword [esp + 0x36c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x330]
mov dword [esp], eax
call fcn.007c51d0
jmp 0x54a8fb
mov edi, 0xa
mov al, byte [esp + 0x29b]
movzx eax, al
cmp eax, 0x13
jne 0x549986
mov ebx, dword [esp + 0x57c]
mov dword [esp + 0x4e4], edx
mov edx, dword [esp + 0x5bc]
mov eax, dword [esp + 0x490]
mov dword [esp + 0x580], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x584], eax
mov dword [esp + 0x588], esi
cmp edi, 0xa
jne 0x549aad
mov dword [esp + 0x59c], edx
mov eax, edi
not eax
and eax, 1
add eax, edi
je 0x549ab4
mov dword [esp + 0x490], ebx
xor esi, esi
mov bl, 1
mov bh, byte [esp + 0x29b]
mov eax, dword [esp + 0x2d8]
jmp 0x54994f
mov edi, 8
mov bh, 0x13
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x4bc]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x4a8]
test esi, esi
je 0x549920
test bl, bl
je 0x549920
mov dword [esp + 0x2d8], eax
mov byte [esp + 0x29b], bh
mov eax, dword [esp + 0x490]
mov dword [esp + 0x57c], eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jmp 0x54a38a
mov edi, 0xf
mov byte [esp + 0x29b], 0x62
mov eax, dword [esp + 0x4bc]
mov dword [esp], eax
mov ebx, esi
mov esi, edx
call fcn.004936c0
mov edx, esi
mov ecx, ebx
mov eax, dword [esp + 0x4a8]
mov dword [esp + 0x2d8], eax
cmp edi, 5
jne 0x549aa1
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
mov dword [esp + 0x4e4], edx
mov eax, dword [esp + 0x490]
mov dword [esp + 0x580], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x584], eax
mov dword [esp + 0x588], ecx
je 0x549bc9
mov eax, 0xb
mov cl, byte [esp + 0x2d7]
movzx ecx, cl
cmp ecx, 0x4b
je 0x540945
cmp ecx, 0x4e
jne 0x549a5c
mov eax, 0xb
mov byte [esp + 0x2d7], 0x4b
mov dword [esp + 0x538], 0
mov edx, dword [esp + 0x294]
test edx, edx
jne 0x549b25
mov eax, 0x1b
mov byte [esp + 0x2d7], 0x3b
mov dword [esp + 0x538], 0
mov esi, dword [esp + 0x294]
test esi, esi
jne 0x549b4d
mov dword [esp + 0x4e4], edx
jmp 0x549bc9
mov dword [esp + 0x59c], edx
mov ecx, 0x16
mov eax, 0xe
movzx edx, byte [esp + 0x3a9]
cmp edx, 4
mov edi, ebx
mov edx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], edx
mov edx, dword [esp + 0x5b8]
jne 0x54bae9
cmp eax, 0xe
jne 0x549b04
mov dword [esp + 0x5b8], edx
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x53ec38
jmp 0x549b0b
mov dword [esp + 0x5b8], edx
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jmp 0x54939e
cmp eax, 0xb
mov ecx, dword [esp + 0x57c]
je 0x53e0d7
xor eax, eax
test al, al
mov ebx, ecx
je 0x54209a
jmp 0x53e0d7
mov byte [esp + 0x477], 0x12
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], ebx
call fcn.005926b0
mov dword [edi], 0
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x549b60
mov edx, dword [esp + 0x4e4]
mov eax, dword [esp + 0x580]
mov dword [esp + 0x490], eax
mov eax, dword [esp + 0x584]
mov dword [esp + 0x448], eax
mov esi, dword [esp + 0x588]
jmp 0x549891
mov esi, 0x16
mov dword [esp + 0x408], 0
mov ecx, dword [esp + 0x2d8]
test ecx, ecx
jne 0x549c4b
mov edi, 0x14
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x540], eax
mov dword [esp + 0x518], ecx
mov eax, dword [esp + 0x48c]
mov dword [esp + 0x580], eax
mov ecx, dword [esp + 0x488]
mov dword [esp + 0x584], ecx
mov edx, dword [esp + 0x410]
mov dword [esp + 0x588], edx
mov dword [esp + 0x4a4], eax
mov dword [esp + 0x40c], ecx
mov ebx, ecx
jb 0x54b5fe
jmp 0x549c8c
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x540], eax
mov dword [esp + 0x518], ecx
mov eax, dword [esp + 0x48c]
mov dword [esp + 0x580], eax
mov ecx, dword [esp + 0x488]
mov ebx, ecx
mov edx, dword [esp + 0x410]
mov dword [esp + 0x4a4], eax
mov dword [esp + 0x40c], ecx
cmp esi, 0xb
jne 0x549d0b
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov dword [esp + 0x584], ebx
mov dword [esp + 0x588], edx
jne 0x54c888
jmp 0x549d0b
mov byte [esp + 0x326], 0x2e
mov byte [esp + 0x246], 0x1c
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x178], eax
mov dword [esp + 0x518], 0x70000013
test eax, eax
mov dword [esp + 0x540], 0
mov dword [esp + 0x580], 0
mov ebx, 0
mov dword [esp + 0x584], 0
jne 0x54abb2
mov edi, edx
mov esi, dword [esp + 0x518]
mov edx, esi
and edx, 0xfffffff
cmp edx, 0x30
sete al
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
cmp edx, 0x41
je 0x549dfc
and al, cl
mov cl, byte [esp + 0x45e]
and al, cl
mov edx, dword [esp + 0x540]
jne 0x549e21
mov eax, 0xc
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
test edx, edx
je 0x549e65
and ecx, 1
cmp edi, ecx
mov dword [esp + 0x588], edi
jne 0x549e75
mov dword [esp + 0x59c], ebx
xor edi, edi
mov ebx, 0xffffffff
jmp 0x549dae
mov esi, 0xf
inc edi
mov eax, dword [esp + 0x540]
mov dword [esp], eax
mov dword [esp + 4], 0x4ae670
call fcn.004117f0
dec ebx
mov eax, edi
and eax, 1
xor eax, ebx
setne al
movzx eax, al
cmp edi, eax
jb 0x549d90
mov ecx, dword [esp + 0x59c]
mov dword [esp + 0x584], ecx
mov eax, dword [esp + 0x518]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x580]
mov dword [esp + 0x4a4], eax
mov dword [esp + 0x40c], ecx
mov eax, dword [esp + 0x5a8]
jmp 0x54c76d
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov dword [esp + 0x584], ebx
mov dword [esp + 0x588], edi
mov dword [esp + 0x408], esi
jmp 0x549e4b
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov dword [esp + 0x584], ebx
mov dword [esp + 0x588], edi
mov eax, dword [esp + 0x518]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x580]
mov dword [esp + 0x4a4], eax
mov dword [esp + 0x40c], ebx
jmp 0x54c290
mov dword [esp + 0x584], ebx
mov dword [esp + 0x588], edi
jmp 0x549e7c
mov dword [esp + 0x584], ebx
mov ecx, dword [esp + 0x518]
mov dword [esp + 0x408], ecx
mov esi, dword [esp + 0x580]
mov dword [esp + 0x40c], ebx
mov edi, dword [esp + 0x5ac]
mov dword [esp + 0x4a4], esi
mov dword [esp + 0x540], edx
mov dword [esp + 0x518], ecx
cmp eax, 0xc
jne 0x549313
mov dword [esp + 0x5ac], edi
jmp 0x54c282
mov byte [esp + 0x2e3], 0x57
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
je 0x549f77
mov al, 0x42
mov ebx, 0x15
movzx eax, al
cmp eax, 0x75
jne 0x549f4a
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x288], eax
mov dword [esp + 0x120], esi
mov eax, dword [esp + 0x40c]
mov dword [esp + 0x334], eax
cmp ebx, 6
je 0x54b7da
mov eax, dword [esp + 0x120]
mov dword [esp], eax
call fcn.0041d160
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x549fc9
mov dword [esp], esi
call fcn.0041d160
mov eax, dword [esp + 0x408]
mov dword [esp + 0x288], eax
mov dword [esp + 0x120], esi
mov eax, dword [esp + 0x40c]
mov dword [esp + 0x334], eax
jmp 0x549fc9
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x288], eax
mov dword [esp + 0x120], esi
mov eax, dword [esp + 0x40c]
mov dword [esp + 0x334], eax
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
cmp ecx, eax
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jne 0x54a01c
mov eax, 0x1b
mov cl, byte [esp + 0x2e3]
movzx ecx, cl
cmp ecx, 0x10
je 0x54a038
cmp ecx, 0x28
je 0x54a3a7
mov eax, 5
cmp ecx, 0x57
mov ecx, dword [esp + 0x59c]
jne 0x54a46e
mov dword [esp + 0x5bc], ecx
mov esi, dword [esp + 0x15c]
mov bl, byte [esp + 0x3c3]
mov edi, dword [esp + 0x438]
jmp 0x540e5b
xor ecx, ecx
mov eax, dword [esp + 0x598]
mov edx, eax
and edx, 1
xor edx, eax
mov edi, dword [esp + 0x404]
jmp 0x5437f4
mov ebx, dword [esp + 0x57c]
cmp eax, 0xd
jne 0x54a055
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x53f6b5
mov ecx, 0x15
mov byte [esp + 0x2e3], 0x57
mov esi, dword [esp + 0x334]
test esi, esi
jne 0x54a0b0
mov eax, 9
mov edx, esi
or edx, 2
xor esi, 2
add esi, edx
mov dword [esp + 0x57c], ebx
mov edx, dword [esp + 0x59c]
mov dword [esp + 0x5bc], edx
je 0x54a0b0
cmp eax, 7
jne 0x54a493
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x54939e
jmp 0x54a493
cmp ecx, 9
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jne 0x54a484
mov eax, 0xf
mov ecx, dword [esp + 0x44c]
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 ecx, dword [esp + 0x5bc]
mov dword [esp + 0x59c], ecx
mov ecx, dword [esp + 0x30c]
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x2a4], ecx
jne 0x54a2d3
xor esi, esi
cmp eax, 0xf
jne 0x54a50b
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov edx, dword [ebp + 0x10]
mov edi, dword [esp + 0x204]
mov ebx, dword [esp + 0x3b4]
je 0x54793b
mov edi, 0x13
mov esi, 9
mov eax, dword [esp + 0x7f0]
mov ecx, dword [esp + 0x7f4]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x44c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x13
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.0054c950
mov dword [esp + 0x5bc], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], eax
mov eax, dword [esp + 0x570]
mov dword [esp + 0x5a8], eax
jne 0x54a38a
xor eax, eax
cmp esi, 9
je 0x54a51e
xor ecx, ecx
test cl, cl
mov esi, dword [esp + 0x420]
mov edi, dword [esp + 0x2a8]
mov ebx, dword [esp + 0x2a4]
jne 0x542302
mov edi, 0x1b
mov byte [esp + 0x197], 0x7e
mov eax, dword [esp + 0x198]
cmp dword [esp + 0x598], eax
mov esi, dword [esp + 0x4d4]
jne 0x543666
cmp edi, 0xe
mov esi, dword [esp + 0x5b8]
je 0x53fb08
imul edi, edi
and edi, 3
cmp edi, 3
je 0x53fb08
movzx eax, byte [esp + 0x197]
cmp eax, 0x4f
je 0x543513
cmp eax, 0x6d
mov dl, byte [esp + 0x45e]
mov edi, dword [esp + 0x5ac]
jne 0x54a4de
mov eax, 0x16
mov byte [esp + 0x197], 0x4f
mov cl, 0x29
cmp dword [edi + 0x1a8], 2
je 0x543538
mov esi, dword [esp + 0x4d4]
cmp eax, 0xb
je 0x54a4a2
imul eax, eax
and eax, 3
cmp eax, 3
je 0x54a4a2
mov dword [esp + 0x5ac], edi
jmp 0x543666
movzx eax, byte [esp + 0x245]
cmp eax, 0x54
jne 0x54a349
mov edi, 0xd
mov byte [esp + 0x245], 0x31
mov ecx, dword [esp + 0x2a8]
cmp ecx, 0x19
sete al
test byte [esp + 0x103], al
mov dword [esp + 0x224], ecx
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0x1f8], eax
jne 0x54c4c3
cmp edi, 0xd
je 0x54233e
xor eax, eax
test al, al
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov esi, dword [esp + 0x4d4]
je 0x5491be
jmp 0x54233e
mov eax, 0x1c
mov byte [esp + 0x245], 0x54
mov edx, dword [esp + 0x2a8]
cmp edx, 0x19
sete cl
test byte [esp + 0x103], cl
mov dword [esp + 0x224], edx
mov ecx, dword [esp + 0x2a4]
mov dword [esp + 0x1f8], ecx
je 0x54a9d0
jmp 0x54c4c3
cmp edi, 8
jne 0x542641
mov eax, 3
sub eax, edi
xor eax, edi
jne 0x549bc9
jmp 0x542641
mov eax, dword [esp + 0x334]
test eax, eax
je 0x54a493
imul eax, eax
and eax, 3
cmp eax, 2
je 0x54a493
mov edx, 9
mov byte [esp + 0x2e3], 0x28
mov ebx, dword [esp + 0x57c]
cmp edx, 9
je 0x54a484
mov eax, edx
and eax, 1
inc eax
xor eax, edx
je 0x54a484
mov dword [esp + 4], 1
mov dword [esp], 0x10
call fcn.00493a50
mov dword [esp + 0x848], eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x848]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 8], 0x10
call fcn.00593cf0
mov dword [esp + 0x398], eax
test eax, eax
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
je 0x54c0ae
jmp 0x54c0ef
mov ecx, dword [esp + 0x334]
test ecx, ecx
jne 0x54a484
mov eax, 3
sub eax, ecx
xor eax, ecx
jne 0x54a493
mov eax, dword [esp + 0x334]
mov dword [esp], eax
call fcn.00434c70
mov eax, dword [esp + 0x288]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x5ac], edi
mov byte [esp + 0x2ce], 0x49
mov eax, dword [esp + 0x23c]
inc eax
mov dword [esp + 0x2dc], eax
cmp eax, esi
jb 0x549155
xor eax, eax
test al, al
mov dword [esp + 0x39c], esi
je 0x548d9e
jmp 0x549155
mov byte [esp + 0x197], 0x7e
mov cl, 0x29
mov eax, dword [edi + 0x1a8]
cmp eax, 2
je 0x543538
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x54365f
jmp 0x543538
mov edi, dword [esp + 0x204]
mov ebx, dword [esp + 0x3b4]
jmp 0x54793b
mov esi, dword [esp + 0x420]
mov edi, dword [esp + 0x2a8]
mov ebx, dword [esp + 0x2a4]
jmp 0x542302
mov byte [esp + 0x2f3], 0x29
mov eax, dword [esp + 0x240]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x580], 0
mov dword [esp + 0x518], 0x70000013
test eax, eax
jne 0x54a5a2
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [ebp + 8]
mov dword [esp + 0x540], eax
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
mov ebx, 0
mov edx, 0
jb 0x53caf4
jmp 0x549d0b
mov eax, dword [ebp + 8]
mov dword [esp + 0x540], eax
xor ebx, ebx
xor edx, edx
jmp 0x549d0b
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x54ba77
mov byte [esp + 0x2f3], 0x21
mov eax, dword [esp + 0x240]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x2f4], ecx
test ecx, ecx
sete al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
setb cl
and cl, al
mov byte [esp + 0x213], cl
jne 0x53caf4
mov eax, 8
movzx ecx, byte [esp + 0x2f3]
cmp ecx, 0x21
je 0x54a538
jmp 0x5434f6
mov dword [esp + 0x534], edi
movzx edx, byte [esp + 0x273]
cmp edx, 0x13
mov esi, dword [esp + 0x570]
je 0x54a64c
mov ecx, 0x16
mov eax, 2
cmp edx, 0x4f
je 0x540c4c
jmp 0x54bf4a
mov dword [esp + 0x5c], 0xf
mov byte [esp + 0x273], 0x13
mov byte [esp + 0x2ae], 0x3a
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x4d8], 0
test eax, eax
mov eax, 0
mov dword [esp + 0x478], 0
je 0x54b97d
mov ecx, dword [esp + 0x5c]
cmp ecx, 0xf
jne case.0x5423f9.21
mov eax, ecx
not eax
and eax, 1
add eax, ecx
je case.0x5423f9.21
cmp ecx, 0xa
jne 0x54a78f
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x54aad9
movzx eax, byte [esp + 0x477]
cmp eax, 0x54
mov ebx, dword [esp + 0xf8]
jne 0x54aef7
xor esi, esi
mov edi, dword [esp + 0xf4]
jmp 0x549b87
cmp ecx, 9
je 0x53e11f
xor eax, eax
test al, al
je 0x54aad9
jmp 0x53e11f
mov al, byte [esp + 0x363]
movzx ecx, al
cmp ecx, 0x27
je 0x54a8b3
mov eax, 1
cmp ecx, 0x35
jne 0x54a8d8
mov byte [esp + 0x363], 0x4a
jmp 0x5405dc
mov byte [esp + 0x363], 0x27
mov esi, dword [esp + 0x810]
test esi, esi
jne 0x5405fc
mov eax, esi
not eax
and eax, 1
add eax, esi
jmp 0x5405f3
mov edi, dword [esp + 0x534]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
je 0x5405cd
jmp 0x54a619
mov ebx, dword [esp + 0x57c]
mov dword [esp + 0x4d8], esi
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov eax, 0xf
mov ecx, dword [esp + 0x49c]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x184]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x330]
mov dword [ecx + edx*8 + 0x14], esi
mov esi, dword [esp + 0x5ac]
mov ecx, dword [esi + 0x1a0]
mov edx, dword [esp + 0x424]
mov edx, dword [edx]
mov dword [esp + 0x7f8], 4
mov dword [esp + 0x7fc], 2
mov dword [esp + 0x800], edx
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
lea edx, [esi + 0x1a0]
mov dword [esp + 0x90], edx
mov dword [esp + 0x884], 0
mov dword [esp + 0x880], 0
mov dword [esp + 0x804], ecx
lea ecx, [esp + 0x7f8]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x808], 0xfffffff9
mov dword [esp + 0x57c], ebx
je 0x547994
cmp eax, 0xf
jne 0x54232f
mov esi, 4
mov edi, 0x10
mov byte [esp + 0xb7], 0x57
lea eax, [esp + 0x880]
mov dword [esp + 8], eax
lea eax, [esp + 0x884]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov bl, byte [esp + 0x533]
mov edx, dword [esp + 0x59c]
jne 0x54c354
cmp edi, 0x10
je 0x54ae53
xor eax, eax
test al, al
jne 0x54ae53
mov dword [esp + 0x5bc], edx
jmp 0x54c658
cmp eax, 4
jne 0x53dccb
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x53dccb
mov esi, 0x11
movzx eax, byte [esp + 0x326]
cmp eax, 0x72
je 0x54c386
mov dword [esp + 0x59c], 0xa
mov byte [esp + 0x326], 0x72
mov byte [esp + 0x246], 0x1c
mov eax, dword [esp + 0x2f4]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x540], 0
test ecx, ecx
mov dword [esp + 0x518], 0x70000013
je 0x54b004
mov eax, 4
mov dword [esp + 0x178], ecx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x580], 0
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
mov dword [esp + 0x490], 0
mov edi, 0
mov esi, 0
je 0x54b82c
cmp eax, 4
jne 0x54add5
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x54add5
mov eax, dword [esp + 0x490]
mov dword [esp + 0x580], eax
mov dword [esp + 0x584], edi
mov edx, esi
mov edi, edx
mov edx, 1
movzx ecx, byte [esp + 0x246]
cmp ecx, 0x3c
jne 0x54ac32
mov esi, 0x1a
mov byte [esp + 0x246], 0x1c
mov ecx, dword [esp + 0x178]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0041f570
mov dword [esp + 0x4d8], 0
test eax, eax
jne 0x54b497
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x434], eax
mov ecx, edi
mov dword [esp + 0x588], ecx
mov eax, 0
mov dword [esp + 0x478], 0
jne 0x54b97d
jmp 0x54b4ab
mov dword [esp + 0x588], edi
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
movzx ecx, cl
cmp edx, ecx
jne 0x54bc89
mov edi, 0x19
mov esi, 4
mov byte [esp + 0x246], 0x3c
mov ecx, dword [esp + 0x178]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0041f570
mov dword [esp + 0x434], eax
mov dword [esp + 0x4d8], 0
test eax, eax
mov dword [esp + 0x478], 0
je 0x54b482
cmp esi, 4
jne 0x54acb3
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x53cbc4
movzx eax, byte [esp + 0x2c6]
cmp eax, 0x31
mov ecx, dword [ebp + 0x34]
mov edx, dword [esp + 0x5b8]
je 0x542db0
cmp eax, 0x33
jne 0x54ad2b
cmp ecx, 1
je 0x54b260
mov al, 0xf
cmp ecx, 1
je 0x54b299
cmp ecx, 6
je 0x53fd7e
mov byte [esp + 0x1eb], 0x13
mov eax, dword [esp + 0x58c]
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
je 0x54b1d3
mov edx, dword [esp + 0x168]
cmp edx, eax
jne 0x54b1d3
mov eax, 9
mov ecx, edx
or ecx, 2
xor edx, 2
add edx, ecx
mov ecx, dword [esp + 0x490]
mov dword [esp + 0x580], ecx
mov dword [esp + 0x448], edi
mov dword [esp + 0x584], edi
mov dword [esp + 0x588], esi
mov edx, dword [esp + 0x4e4]
jne 0x54b437
jmp 0x54b1ef
mov eax, 0x1d
mov cl, byte [esp + 0xb7]
movzx ecx, cl
cmp ecx, 0x3a
je 0x54bd99
mov dword [esp + 0x59c], edx
mov byte [esp + 0x533], bl
cmp ecx, 0x46
je 0x54be6f
cmp ecx, 0x57
je 0x5476d5
mov esi, 0xb
mov byte [esp + 0xb7], 0x46
mov eax, dword [esp + 0x880]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x884]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x418]
mov eax, dword [eax]
mov dword [esp + 0x228], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x49c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0xb0], eax
test eax, eax
jne 0x54c82b
jmp 0x547994
mov dword [esp + 0x344], 0x13
mov byte [esp + 0x477], 0x54
mov dword [esp], ebx
call fcn.005926b0
mov eax, dword [esp + 0xf4]
mov dword [eax], 0
mov edx, dword [esp + 0x4e4]
mov edi, dword [esp + 0x580]
mov eax, dword [esp + 0x584]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x588]
mov dword [esp + 0x59c], eax
mov esi, dword [esp + 0x5b8]
mov eax, dword [esp + 0x5b4]
jmp 0x54b3d7
cmp edx, 4
jne 0x540961
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
jne 0x54636f
jmp 0x540961
mov dword [esp + 0x178], ecx
mov dword [esp + 0x580], 0
mov dword [esp + 0x584], 0
mov dword [esp + 0x588], 0
jmp 0x54b82c
cmp eax, 0xe
je 0x54b15b
xor eax, eax
test al, al
jne 0x54b15b
mov dword [esp + 0x59c], 0
mov eax, 0x11
imul ecx, dword [esp + 0x14c], 0x1c
mov edx, dword [esp + 0x394]
mov ecx, dword [edx + ecx + 0x18]
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 ecx, dword [esp + 0x5b0]
mov dword [esp + 0x5a4], ecx
mov ecx, dword [esp + 0x570]
mov dword [esp + 0x5a8], ecx
jne 0x54b13f
mov byte [esp + 0x177], 0x36
mov byte [esp + 0x3cf], 0xa
mov byte [esp + 0x245], 0x31
mov eax, dword [ebp + 0x34]
mov edx, eax
cmp edx, 2
sete al
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
and cl, al
mov byte [esp + 0x103], cl
mov dword [esp + 0x2e8], 0
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
mov eax, dword [esp + 0x394]
mov dword [esp + 0x2ec], eax
mov al, 0x71
jmp 0x54c400
cmp eax, 0x10
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jne 0x542641
jmp 0x54c290
movzx eax, byte [esp + 0x487]
xor edi, edi
cmp eax, 0x69
jne 0x54b1c9
mov ebx, dword [ebp + 0x28]
jmp 0x54b199
mov esi, 0x1e
mov byte [esp + 0x487], 0x47
inc edi
mov dword [esp + 8], ebx
lea eax, [esp + 0x620]
mov dword [esp], eax
mov dword [esp + 4], 0x180
call fcn.004959f0
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x54b170
cmp esi, 0xe
jne 0x54c888
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x5461d3
jmp 0x54c888
mov ebx, 0xffffffff
jmp 0x542ebd
mov eax, dword [esp + 0x490]
mov dword [esp + 0x580], eax
mov dword [esp + 0x584], edi
mov dword [esp + 0x588], esi
mov eax, 0xd
mov bl, byte [esp + 0x303]
movzx ecx, bl
cmp ecx, 0x4e
je 0x53d9e8
mov eax, 1
mov byte [esp + 0x303], 0x52
mov ecx, dword [esp + 0x5ac]
mov dword [ecx + 0x1a8], 2
mov dword [esp + 0x310], 0
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x542d1c
mov ebx, dword [esp + 0x310]
mov edi, dword [ebp + 0x34]
mov edx, dword [esp + 0x434]
jmp 0x543fb6
mov byte [esp + 0x620], 0
mov edx, dword [esp + 0x4e4]
mov eax, dword [esp + 0x580]
mov dword [esp + 0x490], eax
mov eax, dword [esp + 0x584]
mov dword [esp + 0x448], eax
mov esi, dword [esp + 0x588]
mov dword [esp + 0x508], edi
mov eax, 0x13
mov cl, byte [esp + 0x2cd]
movzx ecx, cl
cmp ecx, 0x3b
jne 0x54b437
mov dword [esp + 0x59c], esi
mov dword [esp + 0x344], 0xa
mov byte [esp + 0x2cd], 0x3b
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax]
mov esi, dword [esp + 0x5ac]
mov ecx, dword [esi]
mov edi, edx
mov edx, dword [esi + 4]
mov esi, dword [esi + 8]
lea ebx, [esp + 0x620]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x1a4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov eax, dword [ebp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x20]
mov dword [esp], eax
call fcn.00591470
mov edx, edi
mov dword [esp + 0x5a0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov esi, dword [esp + 0x5b8]
mov eax, esi
mov edi, dword [esp + 0x490]
je 0x5443e5
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x5b8], esi
mov ecx, dword [esp + 0x344]
cmp ecx, 0xa
jne 0x54b46f
cmp eax, 9
jne 0x544347
mov dword [esp + 0x4e4], edx
mov eax, dword [esp + 0x490]
mov dword [esp + 0x580], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x584], eax
mov dword [esp + 0x588], esi
jmp 0x543f9b
cmp edi, 0xf
mov eax, dword [esp + 0x478]
jne 0x54b97d
jmp 0x548818
mov dword [esp + 0x434], eax
mov dword [esp + 0x478], 0
mov ecx, edi
cmp esi, 0x10
jne 0x54b515
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x54b521
mov eax, ecx
mov byte [esp + 0x1df], 0x58
mov esi, dword [esp + 0x4ac]
mov ecx, dword [esi]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add edx, ecx
cmp dword [esp + 0x3b0], edx
je 0x54b52d
xor ecx, ecx
test cl, cl
mov ecx, eax
mov dword [esp + 0x588], ecx
mov dword [esp + 0x104], esi
mov ebx, dword [ebp + 0x1c]
mov edi, dword [esp + 0x4b8]
mov eax, 0x1a
je 0x543c4c
jmp 0x54b542
mov dword [esp + 0x588], ecx
jmp 0x53cbc4
mov dword [esp + 0x588], ecx
jmp 0x53cbc4
mov dword [esp + 0x104], esi
mov edi, dword [esp + 0x4b8]
mov ecx, eax
mov eax, 0x1a
cmp eax, 0xd
jne 0x54b560
mov dword [esp + 0x588], ecx
mov dword [esp + 0x4ac], esi
xor esi, esi
mov ebx, dword [esp + 0x6c]
jmp 0x541309
mov dword [esp + 0x588], ecx
mov dword [esp + 0x4ac], esi
mov dword [esp + 0x4b8], edi
movzx eax, byte [esp + 0x1df]
cmp eax, 0x58
mov edx, dword [esp + 0x5ac]
je 0x54b624
mov esi, 0xc
cmp eax, 0x72
jne 0x5439ce
cmp esi, 0xb
jne 0x54b6af
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x54b6af
movzx eax, byte [esp + 0x4b3]
cmp eax, 0x38
je 0x54b85f
cmp eax, 0x3a
jne 0x54b89c
mov edi, 0xa
mov byte [esp + 0x4b3], 0x38
mov eax, dword [esp + 0x7d8]
lea ecx, [esp + 0x7d4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
test eax, eax
je 0x540f15
cmp edi, 0xa
je 0x5418a9
xor eax, eax
test al, al
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
je 0x54c290
jmp 0x5418a9
mov esi, 0xd
mov byte [esp + 0x1df], 0x30
mov byte [esp + 0x56f], 3
lea eax, [edx + 0x1a0]
mov ecx, dword [esp + 0x4c4]
lea ebx, [ecx + 0x10]
mov ecx, dword [edx + 8]
lea edi, [esp + 0x600]
mov dword [esp + 0x18], edi
lea edi, [esp + 0x5f8]
mov dword [esp + 0x14], edi
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [ebp + 0x18]
mov dword [esp + 0xc], edi
mov edi, dword [ebp + 0x14]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004fdf80
mov dword [esp + 0x568], eax
test eax, eax
jne 0x54b7da
cmp esi, 0xd
jne 0x54c0ef
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x543a4d
jmp 0x54c0ef
mov esi, 8
mov dword [esp + 0x59c], 0x14
mov byte [esp + 0x1df], 0x72
mov byte [esp + 0x56f], 3
mov edx, dword [esp + 0x5ac]
lea eax, [edx + 0x1a0]
mov ecx, dword [esp + 0x4c4]
lea edi, [ecx + 0x10]
mov ecx, dword [edx + 8]
lea ebx, [esp + 0x600]
mov dword [esp + 0x18], ebx
lea ebx, [esp + 0x5f8]
mov dword [esp + 0x14], ebx
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x10], ebx
mov ebx, dword [ebp + 0x18]
mov dword [esp + 0xc], ebx
mov ebx, dword [ebp + 0x14]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.004fdf80
mov dword [esp + 0x568], eax
test eax, eax
je 0x54b82c
cmp esi, 8
je 0x54b7da
imul esi, esi
and esi, 3
cmp esi, 3
je 0x54b7da
mov ecx, 0xb
movzx eax, byte [esp + 0x362]
cmp eax, 0x1f
je 0x54badb
cmp eax, 0x58
jne 0x54bc04
xor esi, esi
mov edi, dword [esp + 0x3b0]
mov ebx, dword [esp + 0x534]
jmp 0x54b7b1
mov byte [esp + 0x362], 0x58
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov eax, dword [esp + 0x4ac]
mov dword [esp], eax
call fcn.00591ec0
mov edx, esi
or edx, 2
mov ecx, esi
xor ecx, 2
add ecx, edx
setne cl
movzx ecx, cl
cmp esi, ecx
jb 0x54b780
mov cl, byte [esp + 0x127]
mov esi, dword [esp + 0x4ac]
jmp 0x54bc38
movzx ecx, byte [esp + 0x56f]
cmp ecx, 3
je 0x54b906
cmp ecx, 0xf
mov edi, dword [esp + 0x534]
je 0x54b922
mov eax, 0x15
cmp ecx, 0x3f
jne 0x54ba2f
mov byte [esp + 0x56f], 0x3f
mov dword [esp], edi
call fcn.004936c0
mov eax, dword [esp + 0x568]
mov dword [esp + 0x5a0], eax
jmp 0x53fd10
mov ecx, dword [esp + 0x59c]
cmp ecx, 0xa
jne 0x543a4d
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
mov ebx, dword [esp + 0x584]
mov edx, dword [esp + 0x588]
jne 0x549d0b
jmp 0x543a4d
mov esi, 0x10
mov byte [esp + 0x4b3], 0x3a
mov eax, dword [esp + 0x7d8]
lea ecx, [esp + 0x7d4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
test eax, eax
je 0x540f15
cmp esi, 0x10
je 0x5418a9
jmp 0x54bf6e
mov esi, 6
mov byte [esp + 0x4b3], 0x1e
mov eax, dword [esp + 0x7d8]
lea ecx, [esp + 0x7d4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
test eax, eax
je 0x540f15
cmp esi, 6
je 0x5418a9
xor eax, eax
test al, al
jne 0x5418a9
mov eax, dword [esp + 0x850]
cmp eax, dword [esp + 0x840]
ja 0x545a5d
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x545aaf
xor edi, edi
mov ebx, dword [esp + 0x534]
mov ecx, dword [esp + 0x5a0]
mov edx, dword [esp + 0x5b4]
jmp 0x5439a7
mov esi, 0x12
mov byte [esp + 0x56f], 0x35
mov dword [esp], edi
call fcn.004936c0
mov eax, dword [esp + 0x568]
mov dword [esp + 0x5a0], eax
mov eax, dword [esp + 0x5b8]
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x534], edi
cmp esi, 0xb
je 0x54b976
mov eax, esi
and eax, 1
inc eax
xor eax, esi
mov eax, dword [esp + 0x478]
jne 0x54939e
jmp 0x54b97d
mov eax, dword [esp + 0x478]
mov dword [esp + 0x490], eax
movzx eax, byte [esp + 0x3e7]
cmp eax, 0x50
je 0x53cd84
mov ah, 0x50
mov byte [esp + 0x3aa], 1
mov al, 0x2e
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x18]
mov edi, dword [esp + 0x4d8]
test edi, edi
sete dl
mov esi, edi
or esi, 2
xor edi, 2
add edi, esi
setne dh
and dh, dl
test ecx, ecx
je 0x53d048
mov ebx, dword [esp + 0x4b4]
mov ecx, dword [esp + 0x578]
mov edx, dword [esp + 0x498]
mov edi, dword [esp + 0x4d0]
jmp 0x53ce13
mov ch, byte [esp + 0x34b]
mov cl, byte [esp + 0x476]
mov dl, byte [esp + 0xeb]
mov edi, dword [esp + 0x578]
mov dword [esp + 0x578], edi
mov byte [esp + 0xeb], dl
mov byte [esp + 0x476], cl
mov byte [esp + 0x34b], ch
xor esi, esi
mov edi, 0xffffffff
cmp eax, 8
je 0x54a5b5
mov ebx, dword [esp + 0x534]
mov ecx, dword [esp + 0x5a0]
mov edx, dword [esp + 0x5b4]
jmp 0x54bab0
mov byte [esp + 0x56f], 0xf
inc esi
mov dword [esp], ebx
call fcn.004936c0
dec edi
mov ecx, dword [esp + 0x568]
mov edx, dword [esp + 0x5b8]
mov eax, esi
and eax, 1
xor eax, edi
setne al
movzx eax, al
cmp esi, eax
jb 0x54ba90
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5a0], ecx
mov dword [esp + 0x534], ebx
jmp 0x54939e
mov edx, dword [esp + 0x5b8]
mov edi, dword [esp + 0x57c]
mov dword [esp + 0x5b8], edx
cmp ecx, 0xb
jne 0x54bb3a
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
je 0x54bb3a
mov byte [esp + 0x362], 0x1f
mov eax, dword [esp + 0x534]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3b0]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x4ac]
mov dword [esp], esi
call fcn.00591ec0
mov cl, byte [esp + 0x127]
jmp 0x54bc3f
mov dword [esp + 0x57c], edi
mov dword [esp + 0x54], 0xd
mov esi, 0x13
mov byte [esp + 0x3a9], 0x7c
mov eax, dword [esp + 0x898]
mov ecx, dword [esp + 0x89c]
lea edx, [esp + 0x8a4]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00627130
mov dword [esp + 0x320], 0x70000013
test eax, eax
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x31c], eax
jne 0x548f59
mov eax, dword [esp + 0x54]
cmp eax, 0xd
je 0x54bf08
imul eax, eax
and eax, 3
cmp eax, 3
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
je 0x53ec94
mov eax, dword [esp + 0x37c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x214]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, 5
jmp 0x542594
mov byte [esp + 0x362], 0xb
mov eax, dword [esp + 0x534]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3b0]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x4ac]
mov dword [esp], esi
call fcn.00591ec0
mov cl, byte [esp + 0x127]
mov edi, dword [esp + 0x57c]
movzx ecx, cl
cmp ecx, 0x6f
je 0x543e93
mov dword [esp + 0x57c], edi
mov dword [esp + 0x4ac], esi
mov byte [esp + 0x127], 0x6a
mov byte [esp + 0x4ef], 0x18
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0xc8], eax
je 0x543bf7
mov eax, 0xb
movzx ecx, byte [esp + 0x4ef]
cmp ecx, 7
je 0x54bcf1
cmp esi, 5
jne 0x54bac1
mov byte [esp + 0x4ef], 0xb
mov dword [esp], ebx
mov dword [esp + 0x534], ebx
call fcn.004936c0
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x5a0], eax
jmp 0x53fd10
mov ecx, dword [esp + 0x5a0]
cmp eax, 4
je 0x54bd81
imul eax, eax
and eax, 3
cmp eax, 2
je 0x54bd8d
xor esi, esi
mov edi, dword [esp + 0x534]
mov ebx, dword [esp + 0xc8]
mov edx, dword [esp + 0x5b4]
jmp 0x54bd5a
mov byte [esp + 0x4ef], 7
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
call fcn.004936c0
mov ecx, ebx
mov edx, dword [esp + 0x5b8]
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x54bd30
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5a0], ecx
jmp 0x54939e
mov dword [esp + 0x5a0], ecx
jmp 0x54c0ef
mov dword [esp + 0x5a0], ecx
jmp 0x54c0ef
mov byte [esp + 0x533], bl
mov dword [esp + 0x5bc], edx
mov edi, dword [esp + 0x4d0]
cmp eax, 0xe
je 0x54bf22
mov dword [esp + 0x4d0], edi
xor eax, eax
test al, al
mov eax, dword [esp + 0x588]
jne 0x54bf3c
mov edi, 0xf
mov esi, 8
mov byte [esp + 0xb7], 0x57
mov eax, dword [esp + 0x880]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x884]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x418]
mov eax, dword [eax]
mov dword [esp + 0x228], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x49c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0xb0], eax
test eax, eax
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jne 0x54295a
cmp esi, 8
mov eax, dword [esp + 0x57c]
je 0x547994
imul esi, esi
and esi, 3
cmp esi, 3
mov ebx, eax
jne 0x541e54
jmp 0x547994
mov esi, 0x18
mov byte [esp + 0xb7], 0x3a
mov eax, dword [esp + 0x880]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x884]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x418]
mov eax, dword [eax]
mov dword [esp + 0x228], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x49c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0xb0], eax
test eax, eax
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jne 0x54774e
cmp esi, 0xa
je 0x543299
xor eax, eax
test al, al
je 0x547986
jmp 0x543299
mov ebx, dword [esp + 0x57c]
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
jmp 0x53ec94
mov dword [esp + 0x4d0], edi
mov ebx, dword [esp + 0x584]
mov edx, dword [esp + 0x588]
jmp 0x549d0b
mov ebx, dword [esp + 0x584]
mov edx, eax
jmp 0x549d0b
cmp eax, 2
je 0x53cb5e
mov esi, 0xa
mov cl, byte [esp + 0x476]
movzx eax, cl
cmp eax, 0x18
jne 0x54bfdb
mov eax, 0x10
mov byte [esp + 0x476], 0xc
mov ecx, dword [esp + 0x3f4]
mov esi, dword [ecx + 0x14]
mov dword [esp + 0x59c], esi
mov edx, dword [esp + 0x3fc]
mov ecx, edx
shl ecx, 4
mov esi, dword [esi + ecx + 0xc]
test esi, esi
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x32c], edx
jne 0x53f579
cmp eax, 0x10
je 0x53f49a
mov edi, dword [esp + 0x3b0]
jmp 0x543ab4
mov dword [esp + 0x59c], ecx
mov byte [esp + 0x533], bl
mov byte [esp + 0x443], 0x6c
mov eax, dword [esp + 0x32c]
lea esi, [eax + 1]
mov edx, dword [esp + 0x3c4]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x3f4], eax
cmp esi, dword [eax + 0x10]
jae 0x54c078
mov ecx, 0xc
mov eax, esi
or eax, 2
mov edi, edx
mov edx, esi
mov dword [esp + 0x3fc], esi
xor edx, 2
add edx, eax
mov dword [esp + 0x35c], edi
mov dword [esp + 0x3ac], edi
mov ebx, dword [esp + 0x490]
je 0x53f1ce
cmp ecx, 4
je 0x54c099
xor eax, eax
test al, al
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
je 0x54bf6e
jmp 0x54c0ae
mov dword [esp + 0x3fc], esi
mov dword [esp + 0x35c], edx
mov dword [esp + 0x3ac], edx
mov ebx, dword [esp + 0x490]
jmp 0x53f1ce
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
movzx eax, byte [esp + 0x25b]
cmp eax, 0x5f
jne 0x54564a
mov eax, dword [esp + 0x848]
cmp dword [eax], 0x636f6366
je 0x54c275
mov byte [esp + 0x25b], 0x4c
mov dword [esp + 0x398], 0x7000002f
xor ecx, ecx
test cl, cl
jne 0x54568b
movzx ecx, byte [esp + 0x306]
cmp ecx, 0xa
je 0x54c200
mov eax, 0xf
cmp ecx, 0x7a
je 0x545ac4
mov edi, dword [esp + 0x544]
mov bl, byte [esp + 0x54f]
xor esi, esi
cmp eax, 0xf
jne 0x54c1d3
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x54c1d3
mov byte [esp + 0x54f], bl
mov dword [esp + 0x544], edi
mov byte [esp + 0x306], 0xa
mov eax, dword [esp + 0x848]
mov dword [esp + 0x274], eax
test eax, eax
je 0x54c25b
mov eax, 0x14
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x398]
mov dword [esp + 0x278], ecx
mov dword [esp + 0x400], ecx
mov ebx, dword [esp + 0x57c]
mov ecx, dword [esp + 0x5bc]
mov dword [esp + 0x59c], ecx
jne 0x545557
cmp eax, 7
je 0x53ea07
mov dword [esp + 0x57c], ebx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x5bc], eax
jmp 0x545b21
mov bl, 0x57
inc esi
mov dword [esp], edi
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x54c1c0
mov byte [esp + 0x54f], bl
mov dword [esp + 0x544], edi
mov esi, dword [esp + 0x4d4]
jmp 0x549054
mov byte [esp + 0x306], 0x17
mov eax, dword [esp + 0x848]
mov dword [esp + 0x274], eax
test eax, eax
je 0x54c25b
mov eax, 0xd
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x398]
mov dword [esp + 0x278], ecx
mov dword [esp + 0x400], ecx
jne 0x545557
cmp eax, 0xd
jne 0x53e0d7
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x545b21
jmp 0x53e0d7
mov eax, dword [esp + 0x398]
mov dword [esp + 0x278], eax
mov dword [esp + 0x400], eax
jmp 0x545557
mov byte [esp + 0x25b], 0x4c
jmp 0x54568b
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
mov ecx, 1
mov esi, dword [esp + 0x4a4]
test esi, esi
jne 0x549ec9
mov byte [esp + 0x2e3], 0x57
jmp 0x549f77
mov ecx, dword [esp + 0xfc]
mov eax, dword [esp + 0x46c]
mov dword [eax], ecx
mov eax, dword [esp + 0x570]
inc dword [eax]
mov eax, dword [esp + 0x220]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0x32
mov esi, dword [esp + 0x5b0]
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 3
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [esp + 0x284]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov esi, 0xc
mov byte [esp + 0x21f], 0x50
mov dword [esp], edx
call fcn.00492770
test eax, eax
jne 0x54c37f
mov byte [esp + 0x533], bl
cmp esi, 4
jne 0x540961
mov dword [esp + 0x59c], edx
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x547994
jmp 0x540961
mov bl, byte [esp + 0x533]
mov byte [esp + 0x533], bl
cmp esi, 0xc
mov edi, dword [esp + 0x4d0]
je 0x54c3aa
xor edx, edx
test dl, dl
je 0x549cb1
mov eax, 0x13
mov edx, dword [esp + 0x284]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edx, ecx
mov esi, dword [esp + 0x538]
je 0x5408e9
cmp eax, 8
jne 0x5408b5
mov dword [esp + 0x4d0], edi
mov dword [esp + 0x538], esi
jmp 0x53e0d7
cmp esi, 0xe
jne 0x54169b
jmp 0x54219e
movzx eax, al
cmp eax, 0x71
jne 0x54c474
mov ecx, 2
mov eax, 7
mov byte [esp + 0x2cf], 0x71
mov edi, dword [esp + 0x2e8]
imul edx, edi, 0x1c
mov esi, dword [esp + 0x2ec]
mov ebx, dword [esi + edx + 4]
mov dword [esp + 0x30c], ebx
mov edx, ebx
not edx
and edx, 1
add edx, ebx
setne dl
movzx edx, dl
cmp ebx, edx
mov dword [esp + 0x370], esi
mov dword [esp + 0x420], edi
mov esi, dword [esp + 0x570]
jne 0x54bf4a
cmp ecx, 2
jne 0x54c5dc
mov dword [esp + 0x570], esi
jmp 0x54c4c3
mov esi, 0xe
mov byte [esp + 0x2cf], 0x74
mov edx, dword [esp + 0x2e8]
imul eax, edx, 0x1c
mov ecx, dword [esp + 0x2ec]
mov edi, dword [ecx + eax + 4]
mov dword [esp + 0x30c], edi
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
mov dword [esp + 0x370], ecx
mov dword [esp + 0x420], edx
jne 0x54c3f2
movzx eax, byte [esp + 0x3cf]
cmp eax, 0xa
je 0x5425ca
mov byte [esp + 0x3cf], 0xa
mov eax, dword [esp + 0x420]
lea esi, [eax + 1]
mov eax, dword [esp + 0x7dc]
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x5bc], 0
cmp esi, dword [eax + 4]
jae 0x54c6c1
mov ecx, dword [esp + 0x570]
mov edx, dword [esp + 0x5b0]
movzx eax, byte [esp + 0x177]
cmp eax, 0x25
jne 0x54c73f
mov eax, 0x16
mov byte [esp + 0x177], 0x36
mov edi, dword [esp + 0x1b0]
mov edi, dword [edi + 8]
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x5bc], 0
mov dword [esp + 0x5a4], edx
mov dword [esp + 0x5b0], edx
mov dword [esp + 0x5a8], ecx
mov dword [esp + 0x570], ecx
mov dword [esp + 0x2e8], esi
mov dword [esp + 0x134], esi
cmp eax, 0xe
jne 0x54c7ac
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x54c7b8
movzx eax, byte [esp + 0x4a3]
cmp eax, 0x79
je 0x54c7d0
mov esi, 0x16
cmp eax, 0x7f
jne 0x54c70f
mov byte [esp + 0x4a3], 0x79
mov eax, dword [ebp + 0x28]
mov dword [esp + 8], eax
lea eax, [esp + 0x620]
mov dword [esp], eax
mov dword [esp + 4], 0x180
call fcn.004959f0
jmp 0x54c888
mov dword [esp + 0x570], esi
mov byte [esp + 0x283], 0x77
mov eax, dword [esp + 0x378]
mov ecx, dword [eax + 0xc]
cmp ecx, 8
jne 0x54c8b9
mov eax, 0x15
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
mov ecx, dword [esp + 0x57c]
mov dword [esp + 0x490], ecx
mov ecx, dword [esp + 0x5bc]
mov bl, byte [esp + 0x533]
je 0x54c8c0
cmp eax, 0xa
je 0x54bfe7
xor eax, eax
test al, al
jne 0x54bfe7
mov eax, dword [esp + 0x490]
mov dword [esp + 0x57c], eax
mov dword [esp + 0x5bc], ecx
movzx eax, bl
cmp eax, 0x19
je 0x54c6cd
xor edi, edi
cmp eax, 0x3f
jne 0x54c6f9
mov eax, dword [esp + 0x378]
lea esi, [eax + 0x10]
jmp 0x54c6a8
mov bl, 0x3f
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
lea eax, [esp + 0x620]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 4], 0x400
call fcn.004959f0
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x54c680
jmp 0x54c8c0
mov dword [esp + 0x134], esi
jmp 0x541e33
mov bl, 0x41
mov eax, dword [esp + 0x378]
lea eax, [eax + 0x10]
lea ecx, [esp + 0x620]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
call fcn.004959f0
jmp 0x54c8c0
mov byte [esp + 0x533], bl
mov eax, dword [esp + 0x378]
lea ebx, [eax + 0x10]
jmp 0x54319c
cmp esi, 9
jne 0x54c84d
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x54c84d
movzx eax, byte [esp + 0x21f]
cmp eax, 0x5b
je 0x54080b
jmp 0x54c2b1
mov dword [esp + 0x134], esi
mov dword [esp + 0x570], ecx
mov dword [esp + 0x5b0], edx
mov esi, 0xa
mov dword [esp + 0x5bc], 0
mov dword [esp + 0x5a4], edx
mov eax, ecx
cmp esi, 0xa
jne 0x54c7c4
mov dword [esp + 0x5a8], eax
mov byte [esp + 0x177], 0x25
mov eax, dword [esp + 0x1b0]
mov eax, dword [eax + 8]
mov dword [esp + 0x2ec], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x2e8], eax
mov al, byte [esp + 0x2cf]
jmp 0x54c400
mov al, byte [esp + 0x2cf]
jmp 0x54c400
mov al, byte [esp + 0x2cf]
jmp 0x54c400
mov dword [esp + 0x5a8], eax
jmp 0x54c282
xor edi, edi
mov ebx, dword [ebp + 0x28]
jmp 0x54c809
mov esi, 0x15
mov byte [esp + 0x4a3], 0x7f
inc edi
mov dword [esp + 8], ebx
lea eax, [esp + 0x620]
mov dword [esp], eax
mov dword [esp + 4], 0x180
call fcn.004959f0
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp edi, eax
jb 0x54c7e0
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x59c], eax
cmp esi, 0xb
mov ecx, dword [esp + 0x59c]
je 0x54774e
xor eax, eax
test al, al
mov dword [esp + 0x5bc], ecx
je 0x54c888
jmp 0x54774e
mov esi, 0x10
mov byte [esp + 0x4a3], 1
mov eax, dword [ebp + 0x28]
mov dword [esp + 8], eax
lea eax, [esp + 0x620]
mov dword [esp], eax
mov dword [esp + 4], 0x180
call fcn.004959f0
cmp esi, 0x10
jne 0x54c8a6
mov eax, 3
sub eax, esi
xor eax, esi
je 0x54c8a6
movzx eax, byte [esp + 0x3fb]
cmp eax, 0x26
jne 0x542ee1
mov byte [esp + 0x3fb], 0x30
jmp 0x542ee9
cmp dword [esp + 0x234], 0
je 0x545bf9
jmp 0x545c08
mov bl, byte [esp + 0x533]
movzx eax, byte [esp + 0x343]
cmp eax, 0x12
je 0x54c8e7
mov byte [esp + 0x533], bl
mov esi, 0x1b
cmp eax, 0x5d
je 0x54324e
jmp 0x5418c8
mov byte [esp + 0x533], bl
mov byte [esp + 0x343], 0x3d
mov edx, dword [esp + 0x2b8]
mov eax, edx
not eax
and eax, 1
add eax, edx
setne al
movzx eax, al
add eax, edx
mov dword [esp + 0x3dc], eax
mov eax, dword [esp + 0x250]
cmp edx, dword [eax]
jge 0x541903
mov eax, 0x10
mov ecx, edx
or ecx, 2
xor edx, 2
add edx, ecx
je 0x541903
cmp eax, 9
je 0x540506
jmp 0x542faf