Function at 0x524b40
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x310
mov ecx, dword [ebp + 0x48]
mov ebx, 0x75fcc74e
cmp ecx, 0x3d
je 0x524cd0
mov eax, dword [ebp + 0x28]
mov edx, dword [ebp + 0x18]
cmp ecx, 0x3e
jne 0x52500f
add bl, 0xb4
mov dword [esp + 0x1dc], 0
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1b4], 4
mov dword [esp + 0x1b8], 2
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], 0xfffffffa
lea eax, [esp + 0x1d4]
mov dword [esp + 4], eax
lea eax, [esp + 0x1dc]
mov dword [esp], eax
call fcn.00449120
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x525383
lea eax, [esp + 0x1c8]
mov dword [esp + 8], eax
lea eax, [esp + 0x1d8]
mov dword [esp + 4], eax
lea eax, [esp + 0x1b4]
mov dword [esp], eax
call fcn.00593400
mov esi, eax
test esi, esi
jne 0x525388
mov eax, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x1dc]
lea edx, [esp + 0x1d0]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0063c500
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x525383
mov eax, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x1d8]
lea edx, [esp + 0x1cc]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0063c500
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov esi, 0x700002bb
jne 0x525388
mov al, 0x71
movzx eax, al
xor edi, edi
cmp eax, 0x22
je 0x5252f8
jmp 0x52536d
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x170], eax
mov dword [esp + 0x274], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x278], 0
mov dword [esp + 0x26c], 0
mov dword [esp + 0x268], 0
mov dword [esp + 0x264], 0
mov dword [esp + 0x260], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x250], xmm0
movaps xmmword [esp + 0x240], xmm0
movaps xmmword [esp + 0x230], xmm0
movaps xmmword [esp + 0x220], xmm0
mov dword [esp + 0x21c], 0
mov dword [esp + 0x218], 0
mov dword [esp + 0x214], 0
mov dword [esp + 0x210], 0
mov dword [esp + 0x20c], 0
mov eax, dword [0x7dc5d4]
mov dword [esp + 0x208], eax
movsd xmm0, qword [0x7dc5cc]
movsd qword [esp + 0x200], xmm0
movsd xmm0, qword [0x7dc5c4]
movsd qword [esp + 0x1f8], 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 0x5253b7
mov esi, 0xb
mov edi, 0x15
call fcn.005974c0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0xc4], ecx
jne 0x5276ce
jmp 0x529099
movzx ecx, word [ebp + 0x20]
movzx edx, word [ebp + 0x1c]
mov esi, dword [ebp + 0x30]
mov edi, dword [ebp + 0x2c]
mov dword [esp + 0x2d4], esi
mov dword [esp + 0x2d0], edi
mov dword [esp + 0x2cc], eax
mov word [esp + 0x2ca], cx
mov word [esp + 0x2c8], dx
mov dword [esp + 0x2bc], 0
mov dword [esp + 0x2b8], 0
mov dword [esp + 0x2c0], 0
mov dword [esp + 0x2b4], 0
mov eax, dword [0x80dc34]
mov dword [esp], eax
call fcn.007c74c0
test eax, eax
jne 0x5256e1
call fcn.005974c0
test eax, eax
je 0x525093
mov byte [0x80dc38], 1
mov eax, dword [ebp + 8]
mov dword [esp + 0x16c], eax
mov esi, 6
lea eax, [esp + 0x2b8]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x2b8], 0x30
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2c0]
mov dword [esp + 0xdc], ecx
lea ecx, [ecx + ecx*2]
mov dword [esp + 0xd4], ecx
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0xd8], eax
test eax, eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x194], 0x70000003
mov dword [esp + 0x110], eax
mov dword [esp + 0x144], eax
jne 0x526100
jmp 0x526cf0
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
adc edi, 0
call fcn.00449410
mov ecx, dword [esp + 0x1cc]
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], 0x80727d
call fcn.0063cd00
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov esi, 0
mov eax, 0x700002bb
cmovne esi, eax
test edi, edi
jne 0x525388
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
jne 0x525290
jmp 0x525388
cmp eax, 2
adc edi, 0
call fcn.00449410
mov ecx, dword [esp + 0x1cc]
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], 0x80727d
call fcn.0063cd00
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov esi, 0
mov eax, 0x700002bb
cmovne esi, eax
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sbb ecx, ecx
and ecx, 1
cmp edi, ecx
jb 0x525310
jmp 0x525388
mov esi, 0x700002bb
movzx eax, bl
cmp eax, 2
jne 0x525649
mov eax, dword [esp + 0x1d0]
test eax, eax
jne 0x525661
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x525669
jmp 0x525661
xor ebx, 0x75fcc755
mov dword [esp + 0x90], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x12c], edx
mov dword [esp + 0x144], edi
mov dword [esp + 0x100], eax
mov dword [esp + 0x138], esi
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x1ac]
mov esi, dword [esp + 0x19c]
cmp ebx, 0xb
jne 0x5256e1
mov eax, 3
sub eax, ebx
xor eax, ebx
je 0x5256e1
mov eax, dword [esp + 0x1f4]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x1f4], 0
mov eax, dword [esp + 0x1b0]
mov edx, dword [esp + 0x168]
mov ecx, dword [esp + 0x190]
mov ebx, edi
mov edi, eax
mov eax, ecx
mov ecx, dword [esp + 0x17c]
jmp 0x52942a
mov eax, dword [esp + 0x1d0]
test eax, eax
je 0x525669
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x525669
mov dword [esp], eax
call fcn.0063bfd0
mov eax, dword [esp + 0x1cc]
test eax, eax
jne 0x525681
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x525689
mov dword [esp], eax
call fcn.0063bfd0
mov bl, 1
mov eax, dword [esp + 0x1d8]
test eax, eax
je 0x5256ac
xor ecx, ecx
test cl, cl
jne 0x5256ac
mov cl, 0x3f
movzx ecx, cl
cmp ecx, 0x3f
mov dword [esp], eax
call fcn.004936c0
test bl, bl
je 0x5256c7
mov eax, dword [esp + 0x1dc]
test eax, eax
je 0x5256da
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x5256d2
jmp 0x5256da
mov eax, dword [esp + 0x1dc]
test eax, eax
je 0x5256da
mov dword [esp], eax
call fcn.004936c0
mov eax, esi
jmp 0x529eb7
mov dword [esp], str.Failed_to_lock_certificate_handler_n
call fcn.00441610
call fcn.0044c0e0
mov eax, dword [ebp + 0x10]
add eax, 0x3ec
mov dword [esp + 4], eax
mov esi, dword [esp + 0x110]
mov dword [esp], esi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0xd4]
mov dword [eax + ecx*8 + 0x14], esi
call fcn.0044c050
mov esi, eax
mov dword [esp + 0x160], edx
mov dword [esp + 0x2dc], edx
mov dword [esp + 0x2d8], esi
mov eax, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2c0]
lea ebx, [edi + edi*2]
lea ecx, [ebx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x525884
mov dword [esp + 0x194], 0x18
mov dword [esp + 0x2bc], eax
inc dword [esp + 0x2c0]
shl edi, 3
lea ecx, [edi + edi*2]
mov dword [eax + ecx], 4
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x2bc]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov edi, eax
test edi, edi
je 0x5258ab
mov dword [esp + 0x164], esi
lea eax, [esp + 0x2d8]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ebx*8 + 0x14], edi
mov ecx, dword [esp + 0x16c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], 0x80dc4c
call fcn.0043aa50
test eax, eax
je 0x5258bb
lea ecx, [esp + 0x2e0]
mov dword [esp + 0xcc], ecx
lea ecx, [esp + 0x2e8]
mov dword [esp + 0xf8], ecx
movsd xmm0, qword [eax + 8]
movsd qword [esp + 0x2e8], xmm0
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x194], 0x70000003
jmp 0x525b7c
mov dword [esp + 0x164], esi
mov esi, 0x19
mov dword [esp + 0x194], 0x70000003
mov edx, dword [esp + 0x17c]
mov edi, dword [esp + 0x190]
jmp 0x5258f4
mov dword [esp + 0x164], esi
mov edi, dword [esp + 0x190]
jmp 0x525914
mov esi, 0x13
lea eax, [esp + 0x2e8]
mov dword [esp + 0xf8], eax
lea eax, [esp + 0x2e0]
mov dword [esp + 0xcc], eax
mov ecx, 0x70000003
mov edi, dword [esp + 0x190]
mov eax, dword [esp + 0x144]
jmp 0x525b04
mov dword [esp + 0x17c], edx
cmp esi, 0x10
je 0x526cf0
mov dword [esp + 0x194], 0x70000003
jmp 0x526cf0
cmp dword [esp + 0x194], 8
jne 0x525904
mov esi, 0x12
cmp dword [esp + 0xfc], 0
jne 0x525faf
mov esi, 0x12
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0xf0]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x19c]
mov dword [eax + ecx*8 + 0x14], edx
cmp esi, 2
jne 0x525ecd
mov ebx, 0x1c
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x2bc], ecx
inc dword [esp + 0x2c0]
mov eax, dword [esp + 0x10c]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0xc
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0x2bc]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x10], 2
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 2
call fcn.00492770
mov dword [esp + 0xec], eax
mov dword [esp + 0x194], 0x70000003
test eax, eax
je 0x526cf0
cmp ebx, 0x10
jne 0x525a0e
mov esi, edi
mov edx, dword [esp + 0x15c]
jmp 0x525aa2
mov ebx, 0x10
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
mov esi, dword [esp + 0xec]
mov dword [esp], esi
mov dword [esp + 8], 2
call fcn.007c51d0
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x10c]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
lea eax, [esp + 0x2ca]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2c0]
mov dword [esp + 0x134], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x100], eax
mov dword [esp + 0x194], 0x70000003
test eax, eax
jne 0x5266ab
jmp 0x526cf0
mov dword [esp + 0x15c], edx
mov eax, 2
mov ecx, dword [esp + 0x148]
inc ecx
mov dword [esp + 0x150], ecx
cmp ecx, edx
mov edi, esi
mov dword [esp + 0x14c], edx
jb 0x526344
mov esi, 0xa
mov eax, dword [esp + 0x2bc]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x11c], eax
test eax, eax
jne 0x525ca9
mov eax, dword [esp + 0x144]
jmp 0x529eb7
cmp esi, 3
jne 0x525b3a
mov dword [esp + 0x194], ecx
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], 0
test eax, eax
jne 0x52634b
jmp 0x525ace
mov dword [esp + 0x194], ecx
mov dword [esp + 0x144], eax
mov eax, 0xffffffff
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0x160]
jmp 0x525b6e
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x2ec], edx
add eax, 1
jb 0x525b60
mov dword [esp + 0x190], edi
mov eax, edx
mov esi, 0x15
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x2e4], eax
mov eax, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2c0]
lea ebx, [edi + edi*2]
lea ecx, [ebx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x525ca2
mov dword [esp + 0x2bc], eax
inc dword [esp + 0x2c0]
shl edi, 3
lea ecx, [edi + edi*2]
mov dword [eax + ecx], 0x3d
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x2bc]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov esi, eax
test esi, esi
je 0x525ccc
mov eax, dword [esp + 0xcc]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ebx*8 + 0x14], esi
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2c0]
mov dword [esp + 0x108], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov edx, 0xf
mov dword [esp + 0xc8], eax
test eax, eax
mov edi, dword [esp + 0x190]
jne 0x526995
jmp 0x525cf1
mov edi, dword [esp + 0x190]
cmp esi, 0xa
jne 0x525cf1
mov esi, 1
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
jmp 0x525ce3
mov edi, dword [esp + 0x190]
mov dword [esp + 0x194], 0x70000003
jmp 0x526cf0
cmp esi, 1
je 0x525af8
jmp 0x526cf0
mov dword [esp + 0x194], 0x70000003
jmp 0x526cf0
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
mov esi, dword [esp + 0xe8]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x108]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov edx, dword [esp + 0x16c]
lea eax, [edx + 0x1a0]
mov dword [esp + 0xe4], eax
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0x1a0]
lea edx, [edx + 8]
mov dword [esp + 0x124], edx
mov dword [esp + 0x308], 0
mov dword [esp + 0x304], 0
mov dword [esp + 0x2f0], 4
mov dword [esp + 0x2f4], 2
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2fc], ecx
mov dword [esp + 0x300], 0xfffffffc
test ecx, ecx
je 0x525eb6
lea eax, [esp + 0x304]
mov dword [esp + 8], eax
lea eax, [esp + 0x308]
mov dword [esp + 4], eax
lea eax, [esp + 0x2f0]
mov dword [esp], eax
call fcn.00593400
test eax, eax
mov edi, dword [esp + 0x190]
jne 0x525ecd
mov ebx, dword [esp + 0x304]
mov eax, dword [esp + 0x308]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x2bc]
mov esi, dword [esp + 0x2c0]
lea ecx, [esi + esi*2]
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x525ebf
mov dword [esp + 0x194], 8
mov dword [esp + 0x2bc], eax
inc dword [esp + 0x2c0]
lea ecx, [esi*8]
mov dword [esp + 0xf0], esi
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 3
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 4], 0xfffffffc
mov eax, dword [esp + 0x2bc]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x10], ebx
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], ebx
mov dword [esp + 0xfc], ebx
call fcn.00492770
mov dword [esp + 0x19c], eax
test eax, eax
jne 0x525914
jmp 0x525ecd
mov edi, dword [esp + 0x190]
jmp 0x525ecd
mov dword [esp + 0xf0], esi
mov dword [esp + 0xfc], ebx
mov eax, dword [esp + 0x308]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x2c0]
lea ecx, [ebx + ebx*2]
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x5262c7
lea ecx, [esp + 0x2d0]
mov dword [esp + 0x13c], ecx
mov esi, 5
mov dword [esp + 0x2bc], eax
inc dword [esp + 0x2c0]
lea ecx, [ebx*8]
mov dword [esp + 0x140], ebx
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x1e
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x2bc]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov dword [esp + 0x120], eax
test eax, eax
mov dword [esp + 0x194], 0x70000003
je 0x526cf0
cmp esi, 5
jne 0x5261ae
mov dword [esp + 0x190], edi
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x120]
mov dword [esp], esi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x140]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [esp + 0x2bc]
mov edi, dword [esp + 0x2c0]
lea esi, [edi + edi*2]
lea ecx, [esi*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x5262ec
mov dword [esp + 0x2bc], eax
inc dword [esp + 0x2c0]
shl edi, 3
lea ecx, [edi + edi*2]
mov dword [eax + ecx], 0x1f
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x2bc]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov edi, eax
test edi, edi
je 0x526318
lea eax, [esp + 0x2d4]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x2bc]
mov dword [eax + esi*8 + 0x14], edi
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2c0]
mov dword [esp + 0x138], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x52638e
mov esi, 9
mov edi, dword [esp + 0x190]
cmp esi, 6
jne 0x5261e8
mov ebx, 0x13
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x2bc], ecx
inc dword [esp + 0x2c0]
mov eax, dword [esp + 0xdc]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0x2bc]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x10], 4
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov dword [esp + 0x110], eax
test eax, eax
mov dword [esp + 0x194], 0x70000003
jne 0x526410
jmp 0x526cf0
mov esi, 0xffffffff
mov ebx, dword [esp + 0xfc]
jmp 0x5261de
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x198]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x19c]
mov dword [esp], eax
call fcn.007c51d0
add esi, 1
jb 0x5261c0
jmp 0x525931
mov dword [esp + 0x2bc], eax
inc dword [esp + 0x2c0]
mov ecx, dword [esp + 0x138]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 8
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x2bc]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x2bc]
mov esi, dword [ebp + 0x18]
mov dword [eax + ecx + 0x10], esi
mov eax, dword [esp + 0x2bc]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], esi
call fcn.00492770
mov dword [esp + 0x180], eax
test eax, eax
je 0x526308
test esi, esi
je 0x526334
mov esi, 0xffffffff
jmp 0x5262a2
mov ebx, 0x10
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x180]
mov dword [esp], eax
call fcn.007c51d0
add esi, 1
jb 0x526280
mov dword [esp + 0x194], 0x70000003
mov esi, edi
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x170]
jmp 0x526b28
mov dword [esp + 0x140], ebx
lea eax, [esp + 0x2d0]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x194], 0x70000003
jmp 0x526cf0
mov esi, 3
mov dword [esp + 0x194], 0x70000003
mov edi, dword [esp + 0x190]
jmp 0x525ce3
mov dword [esp + 0x194], 0x70000003
jmp 0x526cf0
mov ebx, 0x10
mov dword [esp + 0x194], 0x70000003
mov edi, dword [esp + 0x190]
jmp 0x526ad2
mov eax, 0xc
mov dword [esp + 0x194], 0x70000003
cmp eax, 2
mov esi, edi
jne 0x5263a5
mov eax, 0x10
mov ecx, 8
mov edx, dword [esp + 0x2bc]
mov ebx, dword [esp + 0x150]
lea esi, [ebx + ebx*2]
mov edx, dword [edx + esi*8 + 0x14]
mov dword [esp + 0x18c], edx
test edx, edx
mov esi, edi
mov edx, dword [esp + 0x14c]
mov dword [esp + 0x148], ebx
jne 0x526c53
jmp 0x526b8a
mov dword [esp + 0x194], 0x70000003
mov edi, dword [esp + 0x190]
jmp 0x526cf0
mov ebx, 0xe
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x138]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x180]
mov dword [eax + ecx*8 + 0x14], edx
lea eax, [esp + 0x2cc]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2c0]
mov dword [esp + 0x12c], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x128], eax
test eax, eax
je 0x526538
mov edi, esi
mov dword [esp + 0x190], edi
cmp ebx, 0xe
jne 0x5256f2
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x2bc], ecx
inc dword [esp + 0x2c0]
mov ebx, dword [esp + 0x12c]
lea eax, [ebx*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0xb
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0x2bc]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x10], 4
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov edi, eax
test edi, edi
je 0x52638e
mov esi, 2
mov eax, dword [esp + 0x114]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x2bc]
lea ecx, [ebx + ebx*2]
mov dword [eax + ecx*8 + 0x14], edi
lea eax, [esp + 0x2c8]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x2c0]
mov dword [esp + 0x10c], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0xf4], eax
test eax, eax
mov dword [esp + 0x194], 0x70000003
mov edi, dword [esp + 0x190]
jne 0x525952
jmp 0x526cf0
mov ebx, 0x12
mov dword [esp + 0x194], 0x70000003
jmp 0x526c47
mov esi, dword [esp + 0x2b4]
xor ecx, ecx
cmp dword [esi + 4], 0
je 0x52659c
mov dword [esp + 0x17c], edx
mov eax, dword [esp + 0x16c]
lea eax, [eax + 0x9c]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x178], 0
mov dword [esp + 0x174], 0
xor ecx, ecx
mov dword [esp + 0x154], 0
jmp 0x5265a3
xor eax, eax
jmp 0x526cdd
mov dword [esp + 0x190], esi
mov ebx, 1
mov eax, dword [esi + 8]
mov dword [esp + 0x1a4], eax
imul esi, ecx, 0x1c
mov edx, dword [eax + esi + 4]
cmp edx, 1
je 0x52665a
cmp edx, 0x3e
jne 0x5267e6
mov dword [esp + 0x130], edx
mov eax, dword [esp + 0x1a4]
cmp dword [eax + esi + 0x14], 8
jne 0x52693b
mov eax, dword [eax + esi + 0x18]
mov edx, ecx
mov ecx, dword [eax]
mov dword [esp + 0x17c], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x184], eax
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x1b0], ecx
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x168], edx
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x194], 0x30000003
mov esi, dword [esp + 0x190]
mov dword [esp + 0x1a8], esi
jmp 0x526c63
mov dword [esp + 0x130], edx
mov eax, dword [esp + 0x190]
mov dword [esp + 0x158], eax
mov edi, eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x1ac], eax
mov eax, ecx
mov dword [esp + 0x168], eax
mov dword [esp + 0x170], ecx
mov eax, dword [esp + 0x154]
mov dword [esp + 0x1a0], eax
cmp ebx, 1
jne 0x526741
imul ecx, dword [esp + 0x168], 0x1c
mov eax, 0x30000003
mov esi, dword [esp + 0x1a4]
cmp dword [esi + ecx + 0x14], 4
jne 0x526928
mov dword [esp + 0x190], edi
mov eax, 0xffffffff
mov edx, dword [esp + 0x17c]
mov ebx, dword [esp + 0x1a8]
mov edi, dword [esp + 0x1ac]
jmp 0x526722
mov edx, dword [esi + ecx + 0x18]
mov edx, dword [edx]
mov dword [esp + 0x184], edx
mov ebx, dword [esp + 0x190]
mov edx, dword [esp + 0x1b0]
mov dword [esp + 0x188], edi
add eax, 1
jb 0x526700
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x17c], edx
mov esi, dword [esp + 0x190]
jmp 0x526c63
mov esi, 0xf
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x2bc], ecx
inc dword [esp + 0x2c0]
mov eax, dword [esp + 0x134]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0xd
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0x2bc]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x10], 2
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 2
call fcn.00492770
mov dword [esp + 0x118], eax
test eax, eax
mov dword [esp + 0x194], 0x70000003
jne 0x526a38
jmp 0x526cf0
mov dword [esp + 0x170], ecx
mov ebx, 0xb
mov ecx, dword [esp + 0x1a4]
mov eax, dword [ecx + esi]
dec eax
cmp eax, 1
ja 0x526ae0
cmp edx, 3
mov dword [esp + 0x130], edx
mov eax, ecx
jne 0x52688b
mov edi, 0xffffffff
mov eax, dword [esp + 0x1a4]
jmp 0x526886
mov ecx, dword [esp + 0x16c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x160]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x164]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x174]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x178]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], 0x80dc4c
call fcn.0043ab10
mov eax, dword [esp + 0x2b4]
mov eax, dword [eax + 8]
add edi, 1
jb 0x526830
add eax, esi
mov ecx, dword [esp + 0xe4]
mov esi, dword [ecx]
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x124]
mov ecx, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp + 0x10], 0x22
mov dword [esp + 0xc], 0
mov dword [esp], 0
call fcn.00579030
mov dword [esp + 0x194], eax
test eax, eax
je 0x526d7f
mov eax, dword [esp + 0x190]
mov dword [esp + 0x158], eax
mov edi, eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x1a0], eax
jmp 0x526cf0
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x17c]
jmp 0x526cdd
mov edx, 0xc
mov dword [esp + 0x194], 0x30000003
mov eax, dword [esp + 0x190]
mov dword [esp + 0x158], eax
mov edi, eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x1ac], eax
mov eax, ecx
mov dword [esp + 0x168], eax
mov dword [esp + 0x170], ecx
mov eax, dword [esp + 0x154]
mov dword [esp + 0x1a0], eax
cmp edx, 0xc
je 0x526cf0
mov esi, 0x15
mov ebx, 0xf
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x2bc], ecx
inc dword [esp + 0x2c0]
mov eax, dword [esp + 0x108]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0x47
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0x2bc]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0xe8], eax
test eax, eax
je 0x526ad2
mov dword [esp + 0x190], edi
cmp esi, 0xf
jne 0x525d01
mov ebx, 0xd
mov esi, 0x10
mov eax, dword [esp + 0x104]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x118]
mov dword [esp], edi
mov dword [esp + 8], 2
call fcn.007c51d0
mov eax, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x134]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x124]
mov eax, dword [eax]
lea ecx, [esp + 0x2b4]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x2b8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
mov dword [esp + 0x194], eax
test eax, eax
mov edx, dword [esp + 0x17c]
mov edi, dword [esp + 0x190]
jne 0x5258f4
jmp 0x526cba
cmp ebx, 0xf
je 0x525cf1
jmp 0x526cf0
mov esi, dword [esp + 0x190]
mov dword [esp + 0x158], esi
mov eax, dword [esp + 0x178]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x170]
mov ecx, eax
mov dword [esp + 0x168], ecx
mov ecx, dword [esp + 0x154]
mov dword [esp + 0x1a0], ecx
cmp ebx, 0xb
jne 0x526d6c
mov dword [esp + 0x170], eax
mov eax, 8
mov ecx, 0x16
cmp edx, 8
mov dword [esp + 0x130], edx
mov dword [esp + 0x1a8], esi
mov edx, dword [esp + 0x1a0]
mov dword [esp + 0x184], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 0x17c], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0x15c]
jne 0x526c53
cmp ecx, 8
je 0x525aa2
mov dword [esp + 0x190], esi
mov dword [esp + 0x15c], edx
mov esi, 0xffffffff
imul edi, dword [esp + 0x168], 0x1c
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x184]
jmp 0x526c26
mov ebx, 3
mov ecx, dword [esp + 0x1a4]
mov eax, dword [ecx + edi + 0x14]
mov ecx, dword [ecx + edi + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call fcn.007c51d0
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x1a8], eax
mov eax, dword [eax + 8]
mov eax, dword [eax + edi + 0x14]
mov ecx, dword [ebp + 0x24]
mov dword [ecx], eax
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1ac]
add esi, 1
jb 0x526bd0
mov dword [esp + 0x184], edx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x17c], eax
mov esi, dword [esp + 0x190]
cmp ebx, 3
mov edi, esi
je 0x526c63
jmp 0x526cf0
cmp eax, 8
jne 0x526d29
mov dword [esp + 0x15c], edx
mov ebx, 0x12
mov eax, dword [esp + 0x168]
lea edx, [eax + 1]
mov dword [esp + 0x170], edx
xor eax, eax
mov ecx, dword [esp + 0x1a8]
cmp edx, dword [ecx + 4]
mov dword [esp + 0x158], ecx
mov edx, dword [esp + 0x17c]
mov dword [esp + 0x178], edx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x174], ecx
mov edi, esi
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x154], ecx
jae 0x526cdd
cmp ebx, 0xd
je 0x52654d
mov dword [esp + 0x17c], edx
mov esi, dword [esp + 0x158]
mov ecx, dword [esp + 0x170]
jmp 0x5265a3
mov dword [esp + 0x17c], edx
test ecx, ecx
cmovne eax, ecx
mov dword [esp + 0x194], eax
mov esi, 3
call fcn.00597bd0
mov eax, dword [0x80dc34]
mov dword [esp], eax
call fcn.007c74e0
test eax, eax
mov ecx, dword [esp + 0x194]
mov eax, ecx
je 0x525b04
mov dword [esp], str.Failed_to_unlock_certificate_handler_n
call fcn.00441610
call fcn.0044c0d0
mov edi, esi
mov esi, 0xffffffff
jmp 0x526d5b
mov ebx, 0x10
mov eax, dword [esp + 0x18c]
mov dword [esp], eax
call fcn.004936c0
mov edx, dword [esp + 0x2c0]
add esi, 1
jb 0x526d40
mov dword [esp + 0x15c], edx
jmp 0x5259fb
mov dword [esp + 0x170], eax
mov dword [esp + 0x130], edx
jmp 0x5263a5
mov edx, dword [esp + 0x154]
mov dword [esp + 0x184], edx
mov eax, dword [esp + 0x178]
mov dword [esp + 0x17c], eax
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1ac], ecx
mov eax, dword [esp + 0x170]
mov dword [esp + 0x168], eax
mov dword [esp + 0x1a0], edx
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x1a8], eax
mov esi, dword [esp + 0x190]
jmp 0x526c63
mov dword [esp + 0x100], ecx
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x5290c2
lea eax, [esp + 0x270]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x270], 0x2b
mov ecx, dword [esp + 0x170]
cmp dword [ecx + 0x9c], 0
jne 0x526f09
mov eax, dword [ecx + 0x1a8]
cmp eax, 2
je 0x526f32
imul eax, eax
and eax, 3
cmp eax, 3
je 0x526f32
mov dword [esp + 0x18c], edi
mov eax, dword [ecx]
mov dword [esp + 0x78], eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x284], ecx
mov dword [esp + 0x280], eax
lea eax, [esp + 0x280]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00419d10
mov dword [esp + 0x1a0], 0
xor edx, edx
div dword [0x80dc30]
mov eax, dword [0x80dc2c]
mov ecx, dword [eax + edx*8]
test ecx, ecx
mov dword [esp + 0x1a4], 0x70000012
je 0x526f5b
mov dword [esp + 0x1ac], ebx
mov eax, ecx
mov dword [esp + 0xa4], ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x194], 0
mov edi, 0
jne 0x526fea
jmp 0x529ae4
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x18c], edi
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x70000010
jmp 0x5286fb
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x70000042
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x18c], edi
jmp 0x5286fb
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0xa4], ecx
jmp 0x5286fb
mov ebx, 0xf
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 4]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x1a0], 0
test eax, eax
mov dword [esp + 0x1a4], 0x70000012
je 0x526fd8
mov esi, 0x18
xor eax, eax
test al, al
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x194], 0
mov edi, 0
je 0x527aa9
jmp 0x529208
mov dword [esp + 0x194], 0
xor edi, edi
jmp 0x529208
mov esi, dword [esp + 0xa4]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x90], eax
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
xor eax, dword [esp + 0x74]
mov ecx, edx
xor ecx, dword [esp + 0x78]
or ecx, eax
mov ecx, 0x17
je 0x527034
mov eax, 0x13
imul edx, edx
and edx, 3
cmp edx, 3
mov dword [esp + 0x8c], esi
jne 0x529ab3
jmp 0x529488
mov dword [esp + 0x8c], esi
jmp 0x529488
xor eax, eax
test al, al
jne 0x529491
mov eax, 9
mov edx, dword [esp + 0x90]
test edx, edx
jne 0x527085
mov esi, 3
mov ecx, 3
sub ecx, edx
xor ecx, edx
mov dword [esp + 0x1a4], 0x70000012
mov dword [esp + 0x84], edx
jne 0x5277f0
jmp 0x529a1d
mov dword [esp + 0x84], edx
jmp 0x529a1d
mov ebx, 6
mov eax, dword [esp + 0x84]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x700002bb
test ecx, ecx
jne 0x5270f9
mov eax, ecx
or eax, 2
mov dword [esp + 0x64], ecx
xor ecx, 2
add ecx, eax
mov dword [esp + 0x194], 0
mov edi, 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
jne 0x529ae4
jmp 0x527a4b
mov dword [esp + 0x64], ecx
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
jmp 0x527a4b
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
test ecx, ecx
je 0x5271b9
xor eax, eax
test al, al
jne 0x5271b9
xor edx, edx
lea esi, [esp + 0x278]
lea edi, [esp + 0x274]
jmp 0x527182
mov eax, 0xe
mov ebx, 3
sub ebx, edx
xor ebx, edx
setne bl
movzx ebx, bl
add edx, ebx
mov dword [esp + 0x158], ecx
mov dword [esp + 0x14c], esi
mov dword [esp + 0x140], edi
mov dword [esp + 0x13c], edi
mov ebx, edx
imul ebx, ebx
and ebx, 3
cmp ebx, 2
sbb ebx, ebx
and ebx, 1
cmp edx, ebx
jb 0x527150
mov ebx, eax
mov esi, dword [esp + 0x1b0]
mov edx, dword [esp + 0x190]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x178]
jmp 0x528efa
mov ecx, dword [esp + 0x170]
mov ebx, dword [esp + 0x1ac]
lea eax, [ecx + 0x1a0]
mov dword [esp + 0xac], eax
mov eax, dword [ecx + 0x1a0]
test eax, eax
jne 0x5271ed
mov dword [esp + 0x1ac], ebx
lea ebx, [ecx + 8]
jmp 0x527285
mov esi, 4
mov edi, 0xf
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1e0], 0
lea edx, [ecx + 8]
mov dword [esp + 0x130], edx
mov dword [esp + 0x170], ecx
mov ecx, dword [ecx + 8]
mov dword [esp + 0x200], ecx
mov dword [esp + 0x204], eax
lea ecx, [esp + 0x1f8]
mov dword [esp + 0x94], ecx
lea eax, [esp + 0x1f4]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00594ba0
mov dword [esp + 0x12c], 0x7000002b
test eax, eax
mov eax, dword [esp + 0x190]
jne 0x5292ed
jmp 0x529007
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x170], ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ebx]
lea esi, [esp + 0x20c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 4], edx
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 + 0x20c]
mov ecx, dword [ebx]
mov dword [esp + 0x2a4], 0
mov dword [esp + 0x2a0], 0
mov dword [esp + 0x29c], 0
lea ebx, [esp + 0x288]
mov dword [esp + 0x288], 4
lea esi, [esp + 0x28c]
mov dword [esp + 0x28c], 2
lea edx, [esp + 0x290]
mov dword [esp + 0xec], edx
mov dword [esp + 0x290], ecx
lea ecx, [esp + 0x294]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x294], eax
lea eax, [esp + 0x298]
mov dword [esp + 0xe4], eax
mov dword [esp + 0x298], 0xfffffffe
lea eax, [esp + 0x2a0]
mov dword [esp + 8], eax
lea eax, [esp + 0x2a4]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x52751f
mov dword [esp + 0xfc], ebx
mov dword [esp + 0xd4], esi
mov dword [esp + 0x130], edi
mov eax, dword [esp + 0x2a4]
add eax, 0xc
mov dword [esp + 4], eax
lea ebx, [esp + 0x29c]
mov dword [esp], ebx
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x274]
mov edi, dword [esp + 0x278]
lea esi, [edi + edi*2]
lea ecx, [esi*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x527540
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x527550
lea ecx, [esp + 0x288]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x274], eax
mov ecx, dword [esp + 0x278]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [esp + 0x278], ecx
shl edi, 3
lea ecx, [edi + edi*2]
mov dword [eax + ecx], 0x3c
mov eax, dword [esp + 0x274]
mov dword [eax + ecx + 4], 0xfffffffe
mov eax, dword [esp + 0x274]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x274]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x274]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esp + 0x274]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov edi, eax
test edi, edi
je 0x527560
mov eax, edi
and eax, 1
inc eax
xor eax, edi
mov edx, dword [esp + 0x1a4]
je 0x527582
lea eax, [esp + 0x288]
mov dword [esp + 0xfc], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov ecx, 7
mov eax, dword [esp + 0x274]
mov dword [eax + esi*8 + 0x14], edi
mov dword [esp + 0x118], 0
jmp 0x529632
mov dword [esp + 0x118], eax
mov dword [esp + 0xfc], ebx
mov dword [esp + 0xd4], esi
mov dword [esp + 0x130], edi
jmp 0x529649
mov dword [esp + 0x118], 0x70000003
jmp 0x529649
mov dword [esp + 0x118], 0x70000003
jmp 0x529649
mov dword [esp + 0x118], 0x70000003
mov esi, dword [esp + 0x164]
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x1a4]
jmp 0x52759b
mov dword [esp + 0x118], 0x70000003
mov esi, dword [esp + 0x164]
mov ecx, dword [esp + 0x178]
mov edi, 0x10
jmp 0x52806e
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x178], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x1a4], eax
mov dword [esp], esi
call fcn.0068e2e0
mov dword [esp + 0x194], eax
mov edi, dword [esp + 0x14c]
mov eax, dword [edi]
mov dword [esp + 0xc4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ebx, dword [esp + 0x13c]
mov ecx, dword [ebx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x1a0], 0
test eax, eax
mov edx, 0x70000003
je 0x52771a
xor ecx, ecx
test cl, cl
jne 0x52771a
mov ecx, esi
shr ecx, 0x18
mov edx, esi
and edx, 0xffffff
cmp esi, 0xfeffffff
cmova edx, esi
mov dword [ebx], eax
mov edi, dword [edi]
mov esi, edi
not esi
and esi, 1
add esi, edi
setne bl
movzx esi, bl
mov ebx, dword [esp + 0x14c]
add esi, edi
mov dword [ebx], esi
mov esi, dword [esp + 0xc4]
lea esi, [esi*8]
lea esi, [esi + esi*2]
mov edi, dword [esp + 0x194]
mov dword [eax + esi], edi
mov edi, dword [esp + 0x140]
mov eax, dword [edi]
mov dword [eax + esi + 4], edx
mov eax, dword [edi]
mov byte [eax + esi + 8], cl
mov eax, dword [edi]
mov dword [eax + esi + 0xc], 0
mov eax, dword [edi]
mov ecx, dword [esp + 0x1a4]
mov dword [eax + esi + 0x10], ecx
mov eax, dword [edi]
mov dword [eax + esi + 0x14], 0
mov esi, ecx
mov dword [esp], esi
call fcn.00492770
test eax, eax
jne 0x527781
mov edi, 0xe
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x527781
mov dword [esp + 0x7c], eax
mov dword [esp + 0x14c], ebx
cmp edi, 0xe
mov ebx, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x158]
jne 0x527736
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
je 0x527736
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x100], ecx
jmp 0x5286fb
xor esi, esi
xor ecx, ecx
mov eax, dword [esp + 0x158]
mov dword [esp + 0x100], eax
mov ebx, 2
jmp 0x5293dd
mov eax, 0x19
mov byte [0x80dc38], 1
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x100], ecx
mov edi, dword [esp + 0x18c]
jmp 0x527c41
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp esi, ecx
jne 0x5277b5
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x100], eax
jmp 0x52781f
mov ecx, esi
mov esi, 0xa
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x178]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x7c], eax
call fcn.007c51d0
mov dword [esp + 0x1a4], 0x70000003
mov eax, dword [esp + 0x158]
mov dword [esp + 0x100], eax
cmp esi, 3
jne 0x52781f
mov eax, esi
not eax
and eax, 1
mov dword [esp + 0x1a0], 0
add eax, esi
mov dword [esp + 0x194], 0
mov edi, 0
jne 0x529ae4
mov esi, 0xe
mov eax, dword [esp + 0x140]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc4]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x7c]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x100]
mov eax, dword [eax + 4]
mov dword [esp + 0x158], eax
mov dword [esp + 0x1a0], 0
test eax, eax
je 0x527884
xor eax, eax
test al, al
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
je 0x5275a5
jmp 0x527f82
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
jmp 0x527f82
mov esi, eax
mov edx, dword [esp + 0x94]
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 + 0x1f4]
lea ecx, [esp + 0x1f0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov edx, dword [esp + 0x1f0]
cmp eax, ecx
jne 0x527917
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x190], esi
mov eax, 0xd
test edx, edx
mov dword [esp + 0x174], edx
jne 0x527a0e
jmp 0x527c80
mov dword [esp + 0x174], edx
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x190], esi
jmp 0x527c80
mov esi, 2
inc ecx
lea edx, [esp + 0x208]
lea eax, [esp + 0x278]
mov dword [esp + 0x180], eax
lea eax, [esp + 0x274]
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x184], eax
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
cmp ecx, eax
jb 0x527940
mov dword [esp + 0x9c], edx
jmp 0x529d99
mov eax, dword [esp + 0x184]
mov eax, dword [eax]
lea ecx, [eax + 8]
cmp ecx, 6
ja 0x527a6f
mov edx, 0x47
bt edx, ecx
jae 0x527a6f
mov dword [esp + 0x1ac], ebx
mov ebx, 0x13
mov eax, dword [esp + 0x1f4]
lea ecx, [esp + 0x1f0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov edx, dword [esp + 0x1f0]
test eax, eax
jne 0x527a3d
test edx, edx
je 0x527a3d
mov dword [esp + 0x18c], edi
mov eax, 0x1a
mov ecx, edx
mov dword [esp + 0x184], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x527a4b
xor ecx, ecx
cmp eax, 0xd
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x18c]
mov ebx, dword [esp + 0x1ac]
je 0x527977
xor eax, eax
test al, al
je 0x527996
jmp 0x527977
mov dword [esp + 0x184], edx
mov dword [esp + 0x18c], edi
cmp ebx, 6
mov edi, dword [esp + 0x130]
jne 0x527c80
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jb 0x527118
jmp 0x527c80
mov dword [esp + 0x18c], edi
mov esi, 0xf
mov ecx, dword [esp + 0x9c]
mov dword [ecx], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x94]
mov dword [esp], edi
call fcn.005953b0
test eax, eax
je 0x527ac8
mov dword [esp + 0x1ac], ebx
cmp esi, 0xf
jne 0x526fea
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
jne 0x527bd8
jmp 0x526fea
lea eax, [esp + 0x1e4]
mov dword [esp + 8], eax
lea eax, [esp + 0x1e0]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00593400
test eax, eax
jne 0x527b93
mov esi, 0x1f
mov eax, dword [esp + 0x1f0]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x1e4]
mov dword [esp + 0x154], ecx
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0x148], ecx
mov dword [esp], eax
call fcn.0068e2e0
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov dword [esp + 0x168], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x19c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x527bc4
mov dword [esp + 0x11c], 0x70000003
mov edx, 0xd
mov dword [esp + 0x4c], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0xd0]
mov edi, dword [esp + 0xf0]
jne 0x529e4a
jmp 0x527cf2
mov dword [esp + 0x1ac], ebx
mov ebx, 0xb
mov dword [esp + 0x12c], eax
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x138]
mov eax, dword [esp + 0x100]
mov edi, dword [esp + 0x144]
jmp 0x5255c9
mov dword [esp + 0x11c], 0x70000003
mov dword [esp + 0x4c], eax
jmp 0x527ce4
mov esi, 0xd
mov eax, dword [esp + 0x1f4]
lea ecx, [esp + 0x1f0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx edi, cl
mov ebx, dword [esp + 0x1f0]
mov dword [esp + 0x184], ebx
test ebx, ebx
setne cl
mov edx, ebx
and edx, 1
inc edx
xor edx, ebx
sete dl
cmp eax, edi
mov edi, dword [esp + 0x18c]
mov ebx, dword [esp + 0x1ac]
jne 0x527c5e
mov eax, 0xe
or cl, dl
je 0x527c5e
cmp eax, 0xe
jne 0x526dfc
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x527996
jmp 0x526dfc
cmp esi, 0xd
jne 0x527cd1
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x18c], edi
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x527ede
xor esi, esi
mov edi, dword [esp + 0x130]
jmp 0x527cb1
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x1f4]
mov dword [esp], eax
call fcn.00595380
test esi, esi
jne 0x527cc3
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
jne 0x527c90
mov ebx, edi
mov ecx, dword [esp + 0x170]
jmp 0x527285
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x18c], edi
jmp 0x527ede
mov eax, dword [esp + 0xd0]
mov edi, dword [esp + 0xf0]
mov dword [esp + 0xf0], edi
cmp esi, 0xf
jne 0x527d3d
mov dword [esp + 0xd0], eax
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov edx, dword [esp + 0x168]
mov esi, dword [esp + 0x19c]
mov eax, dword [esp + 0x190]
mov edi, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x17c]
jne 0x528455
jmp 0x527f23
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0x168]
mov esi, dword [esp + 0x19c]
mov eax, dword [esp + 0x190]
mov edi, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x17c]
jmp 0x527f23
mov dword [esp + 0x1ac], ebx
mov edx, dword [esp + 0x54]
mov eax, edx
shr eax, 0x18
mov ecx, edx
and ecx, 0xffffff
cmp edx, 0xfeffffff
cmova ecx, edx
mov edi, dword [esp + 0x19c]
mov ebx, dword [esp + 0x4c]
mov dword [edi], ebx
mov edx, dword [esp + 0x180]
mov edx, dword [edx]
mov esi, edx
imul esi, esi
and esi, 3
cmp esi, 2
adc edx, 0
mov esi, dword [esp + 0x180]
mov dword [esi], edx
mov edx, dword [esp + 0x168]
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x50]
mov dword [ebx + edx], esi
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 ecx, dword [esp + 0x154]
mov dword [eax + edx + 0x10], ecx
mov eax, dword [edi]
mov dword [eax + edx + 0x14], 0
mov esi, 4
mov dword [esp], ecx
call fcn.00492770
test eax, eax
mov dword [esp + 0x11c], 0x70000003
je 0x527e3a
mov ebx, 0x12
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x160], eax
jne 0x529dc4
jmp 0x527ffd
mov dword [esp + 0x160], eax
jmp 0x527ffd
mov esi, 0x1a
mov ecx, dword [esp + 0x154]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x527e7a
mov edi, dword [esp + 0x18c]
mov ebx, dword [esp + 0x1ac]
jmp 0x527c5e
xor edi, edi
mov ebx, dword [esp + 0x1b0]
jmp 0x527ec4
mov esi, 0x11
add eax, edi
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x154]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x160]
mov dword [esp], eax
call fcn.007c51d0
mov eax, edi
not eax
and eax, 1
mov ecx, edi
add ecx, eax
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x527e90
jmp 0x528c12
mov esi, dword [esp + 0x19c]
mov eax, dword [esi]
mov edx, dword [esp + 0x168]
lea ecx, [edx + edx*2]
mov edi, dword [esp + 0x160]
mov dword [eax + ecx*8 + 0x14], edi
mov dword [esp + 0x11c], 0
mov ecx, dword [esp + 0x17c]
mov edi, dword [esp + 0x1b0]
mov eax, dword [esp + 0x190]
mov ebx, dword [esp + 0x1ac]
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x190], eax
mov dword [esp + 0x19c], esi
mov dword [esp + 0x168], edx
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x17c], ecx
mov esi, 0x1e
mov eax, dword [esp + 0x1e0]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x1e0], 0
mov eax, dword [esp + 0x11c]
test eax, eax
mov dword [esp + 0x198], eax
je 0x527bd8
cmp esi, 0xe
mov edi, dword [esp + 0x130]
mov ebx, dword [esp + 0x1ac]
je 0x528043
xor eax, eax
test al, al
jne 0x52804f
xor edi, edi
mov ebx, 3
mov ecx, dword [esp + 0x12c]
jmp 0x527fe8
mov esi, 0xc
inc edi
mov eax, dword [esp + 0x1f4]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x1f4], 0
dec ebx
mov ecx, dword [esp + 0x198]
mov eax, edi
xor eax, ebx
setne al
movzx eax, al
cmp edi, eax
jb 0x527fc0
mov dword [esp + 0x12c], ecx
cmp esi, 4
mov ecx, dword [esp + 0x17c]
mov edi, dword [esp + 0x1b0]
mov eax, dword [esp + 0x190]
mov ebx, dword [esp + 0x1ac]
je 0x52805b
mov edx, ecx
mov ecx, eax
xor eax, eax
test al, al
mov eax, ecx
mov ecx, edx
mov edx, dword [esp + 0x168]
mov esi, dword [esp + 0x19c]
je 0x52942a
jmp 0x527f23
mov ecx, dword [esp + 0x170]
jmp 0x5271c7
mov ecx, dword [esp + 0x170]
jmp 0x5271c7
mov edx, dword [esp + 0x168]
mov esi, dword [esp + 0x19c]
jmp 0x527f23
mov dword [esp + 0x194], esi
mov dword [esp + 0x1a4], edx
cmp edi, 0x10
jne 0x528099
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
mov edi, ecx
jne 0x529649
jmp 0x529ae4
mov edi, ecx
jmp 0x529ae4
lea ebx, [esp + 0x278]
mov eax, dword [esp + 0x274]
mov edi, dword [esp + 0x278]
lea esi, [edi + edi*2]
lea ecx, [esi*8 + 0x18]
lea edx, [esp + 0x274]
mov dword [esp + 0x134], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x1a4], 0x70000003
test eax, eax
je 0x528270
mov dword [esp + 0x274], eax
inc dword [esp + 0x278]
shl edi, 3
lea ecx, [edi + edi*2]
mov dword [eax + ecx], 0xf
mov eax, dword [esp + 0x274]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x274]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x274]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x274]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esp + 0x274]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov edi, eax
test edi, edi
je 0x528287
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
je 0x528287
mov dword [esp + 0xf4], ebx
mov ebx, 0xf
mov eax, dword [esp + 0x15c]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x274]
mov dword [eax + esi*8 + 0x14], edi
lea eax, [esp + 0x260]
mov dword [esp + 8], eax
lea eax, [esp + 0x264]
mov dword [esp + 4], eax
lea eax, [esp + 0x268]
mov dword [esp], eax
call fcn.0066c0e0
mov eax, dword [esp + 0x260]
mov ecx, dword [esp + 0x264]
mov edx, dword [esp + 0x268]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
lea esi, [esp + 0x220]
mov dword [esp], esi
mov dword [esp + 8], str._d._d._d
mov dword [esp + 4], 0x40
call fcn.0064a2d0
mov dword [esp], esi
call fcn.007c3e70
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 + 0xc0], ecx
mov eax, dword [esp + 0x274]
mov esi, dword [esp + 0x278]
lea ecx, [esi + esi*2]
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x58], eax
xor edx, edx
mov ecx, 0x70000003
test eax, eax
je 0x52829e
mov dword [esp + 0x60], esi
xor eax, eax
xor edi, edi
jmp 0x5296d2
mov dword [esp + 0xf4], ebx
mov dword [esp + 0x1a0], 0
jmp 0x5286fb
mov dword [esp + 0x1a0], 0
mov dword [esp + 0xf4], ebx
jmp 0x5286fb
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x60], esi
jmp 0x5286fb
mov esi, dword [esp + 0x134]
mov edi, dword [esp + 0x58]
mov dword [esi], edi
mov edx, dword [esp + 0xf4]
mov eax, dword [edx]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x60]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 2
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 ebx, dword [esp + 0xc0]
mov dword [ecx + eax + 0x10], ebx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], ebx
call fcn.00492770
test eax, eax
jne 0x528378
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x528378
mov dword [esp + 0xb4], eax
mov ebx, 2
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x194], 0
xor edi, edi
jmp 0x528ade
mov ecx, ebx
and ecx, 1
inc ecx
xor ecx, ebx
sete cl
movzx ecx, cl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x17c]
mov edi, dword [esp + 0x1b0]
mov esi, dword [esp + 0x190]
mov ebx, dword [esp + 0x1ac]
jne 0x5283e5
mov dword [esp + 0x1a0], 0
mov dword [esp + 0xb4], eax
mov esi, 0xf
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
jmp 0x527ce4
mov dword [esp + 0xb4], eax
mov eax, esi
jmp 0x528443
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add edx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
lea eax, [esp + 0x220]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov esi, edi
mov edi, ebx
mov ebx, edx
call fcn.007c51d0
mov ecx, dword [esp + 0x17c]
mov eax, dword [esp + 0x190]
mov edx, ebx
mov ebx, edi
mov edi, esi
test edx, edx
je 0x5283f0
mov edx, dword [esp + 0x168]
mov esi, dword [esp + 0x19c]
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x190], eax
mov dword [esp + 0x19c], esi
mov dword [esp + 0x168], edx
mov dword [esp + 0x17c], ecx
mov esi, dword [esp + 0x134]
mov eax, dword [esi]
mov ecx, dword [esp + 0x60]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0xb4]
mov dword [eax + ecx*8 + 0x14], edx
mov dword [esp + 0x21c], 2
mov eax, dword [esp + 0xf4]
mov edi, dword [eax]
lea eax, [edi + edi*2]
mov dword [esp + 0x1a4], eax
lea eax, [eax*8 + 0x18]
mov ecx, dword [esi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x52868a
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x52868a
mov dword [esp + 0x1ac], ebx
mov dword [esi], eax
mov esi, dword [esp + 0xf4]
mov ecx, dword [esi]
mov edx, ecx
or edx, 2
mov ebx, ecx
xor ebx, 2
add ebx, edx
mov ebx, esi
mov esi, dword [esp + 0x134]
setne dl
movzx edx, dl
add edx, ecx
mov dword [ebx], edx
shl edi, 3
lea ecx, [edi + edi*2]
mov dword [eax + ecx], 0x30
mov eax, dword [esi]
mov dword [eax + ecx + 4], 0
mov eax, dword [esi]
mov byte [eax + ecx + 8], 0
mov eax, dword [esi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esi]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov edi, eax
test edi, edi
je 0x5286a9
lea eax, [esp + 0x21c]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esi]
mov ecx, dword [esp + 0x1a4]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x170]
lea edi, [eax + 0x1ac]
mov eax, dword [ebx]
mov dword [esp + 0xb8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x194], 0
test eax, eax
je 0x5286d6
mov dword [esp + 0x1a4], 0x70000003
xor ecx, ecx
test cl, cl
jne 0x5286e1
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x6c], edi
mov dword [esi], eax
mov ecx, dword [ebx]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [ebx], edx
mov ecx, dword [esp + 0xb8]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x33
mov eax, dword [esi]
mov dword [eax + ecx + 4], 0
mov eax, dword [esi]
mov byte [eax + ecx + 8], 0
mov eax, dword [esi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esi]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
test eax, eax
je 0x5286f7
mov esi, 0x12
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x194], 0
mov edi, 0
jne 0x529cc3
jmp 0x529ae4
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x1ac], ebx
jmp 0x5286fb
mov esi, 7
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x194], 0
xor edi, edi
jmp 0x5295a7
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x6c], edi
mov dword [esp + 0x1a0], 0
xor edi, edi
jmp 0x529ae4
mov dword [esp + 0x68], eax
mov dword [esp + 0x194], 0
xor edi, edi
jmp 0x529ae4
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov dword [esp + 0x98], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x134]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x52880a
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x52880a
mov ebx, dword [esp + 0x134]
mov dword [ebx], eax
mov edi, dword [esp + 0xf4]
mov ecx, dword [edi]
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add edx, ecx
mov dword [edi], edx
mov ecx, dword [esp + 0x98]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x43
mov eax, dword [ebx]
mov dword [eax + ecx + 4], 0
mov eax, dword [ebx]
mov byte [eax + ecx + 8], 0
mov eax, dword [ebx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [ebx]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [ebx]
mov dword [eax + ecx + 0x14], 0
lea edi, [esp + 0x2a8]
mov esi, 0x1f
mov dword [esp], 4
call fcn.00492770
test eax, eax
jne 0x52883a
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x80], eax
mov ebx, dword [esp + 0x1ac]
je 0x528851
mov dword [esp + 0x1ac], ebx
lea eax, [esp + 0x2a8]
mov dword [esp + 0x88], eax
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x70000003
jmp 0x5286fb
mov dword [esp + 0x88], edi
mov dword [esp + 0x80], eax
mov ebx, dword [esp + 0x1ac]
jmp 0x528858
mov dword [esp + 0x88], edi
mov eax, dword [esp + 0xd0]
mov edi, dword [esp + 0xf0]
mov dword [esp + 0xf0], edi
mov dword [esp + 0xd0], eax
xor edi, edi
cmp esi, 0xf
mov ecx, dword [esp + 0x114]
je 0x528928
mov eax, esi
and eax, 1
inc eax
xor eax, esi
mov esi, dword [esp + 0x104]
je 0x52895f
mov dword [esp + 0x1ac], ebx
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x80]
mov dword [esp], esi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
mov ecx, dword [esp + 0x98]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov ecx, dword [esp + 0x170]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00432440
mov esi, eax
mov dword [esp], esi
call fcn.007ca940
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x52898d
mov dword [esp + 0xa8], esi
mov dword [esp + 0x150], 0
xor edi, edi
jmp 0x528a4f
mov esi, dword [esp + 0x104]
jmp 0x52895f
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
adc edi, 0
mov dword [esp], esi
call fcn.004936c0
mov eax, dword [esp + 0x1a8]
mov ecx, dword [eax]
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jb 0x528940
mov dword [esp + 0x114], ecx
mov dword [esp + 0x104], esi
mov eax, dword [esp + 0xd0]
jmp 0x529e21
mov ebx, 6
mov dword [esp], esi
call fcn.007ca940
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00493a50
mov dword [esp + 0x150], eax
mov dword [esp], esi
mov dword [esp + 0xa8], esi
call fcn.00430350
test eax, eax
jne 0x528a2f
imul eax, eax
and eax, 3
cmp eax, 1
ja 0x528a3f
xor edi, edi
mov ebx, dword [esp + 0xa8]
nop dword [eax + eax]
mov esi, edi
mov dword [esp], ebx
call fcn.00430370
mov eax, dword [eax + 8]
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 + 0x150]
mov dword [ecx + esi*4], eax
mov dword [esp], ebx
call fcn.004303a0
mov dword [esp], ebx
call fcn.00430350
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x5289e0
jmp 0x528a4f
mov dword [esp + 0xa0], 0
jmp 0x52996d
mov dword [esp + 0xa0], 0
jmp 0x52996d
mov dword [esp + 0xa0], edi
mov esi, 6
mov ebx, 0x12
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
call fcn.004303e0
mov ecx, dword [esp + 0x170]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004258a0
mov dword [esp + 0x188], eax
mov dword [esp], eax
call fcn.007ca940
mov dword [esp + 0x124], 0
test eax, eax
mov dword [esp + 0x120], 0
mov eax, dword [esp + 0x150]
mov dword [esp + 0x16c], eax
mov dword [esp + 0x10c], edi
mov eax, dword [esp + 0x164]
mov dword [esp + 0x194], eax
mov edi, dword [esp + 0x178]
je 0x529bfb
cmp ebx, 2
jne 0x528af3
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
jne 0x529ae4
mov esi, dword [esp + 0x188]
mov dword [esp], esi
call fcn.007ca940
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00493840
mov edi, eax
mov dword [esp + 0x178], edi
test edi, edi
jne 0x528b52
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
je 0x528b52
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x1a0], esi
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x194], eax
jmp 0x529ae4
mov dword [esp], esi
call fcn.00423550
test eax, eax
jne 0x528c3f
xor esi, esi
nop word cs:[eax + eax]
mov edi, esi
mov ebx, dword [esp + 0x188]
mov dword [esp], ebx
call fcn.00430370
mov eax, dword [eax]
mov ecx, edi
not ecx
and ecx, 1
add ecx, edi
setne cl
movzx esi, cl
add esi, edi
mov ecx, dword [esp + 0x178]
mov dword [ecx + edi*4], eax
mov edi, dword [esp + 0x178]
mov dword [esp], ebx
call fcn.00423570
mov dword [esp], ebx
call fcn.00423550
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x528b70
mov dword [esp + 0x120], esi
mov esi, 2
mov dword [esp + 0x1a4], 0x70000003
mov dword [esp + 0x124], edi
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x164], eax
mov dword [esp + 0x178], edi
mov ebx, dword [esp + 0x1b0]
cmp esi, 2
jne 0x528c33
mov dword [esp + 0x1b0], ebx
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x528cc0
jmp 0x527ede
mov dword [esp + 0x1b0], ebx
jmp 0x527ede
mov dword [esp + 0x120], 0
mov esi, 9
mov dword [esp + 0x124], edi
mov ecx, dword [esp + 0x1b0]
mov edx, dword [esp + 0x180]
mov eax, dword [esp + 0x190]
mov ebx, dword [esp + 0x1ac]
cmp esi, 9
je 0x528ca4
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x190], eax
mov dword [esp + 0x180], edx
mov dword [esp + 0x1b0], ecx
imul esi, esi
and esi, 3
cmp esi, 3
jne 0x529eb0
jmp 0x528cc0
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x190], eax
mov dword [esp + 0x180], edx
mov dword [esp + 0x1b0], ecx
mov eax, dword [esp + 0x170]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x15c]
mov ecx, dword [ecx]
lea esi, [esp + 0x218]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x120]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x124]
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x10c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x16c]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0x26
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call fcn.00529ee0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x528ebe
mov ecx, dword [esp + 0x218]
test ecx, ecx
je 0x528ec7
lea eax, [esp + 0x210]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x214]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0x2e
call fcn.0064bea0
test eax, eax
jne 0x528f1f
mov edi, dword [esp + 0x210]
mov ebx, dword [esp + 0x214]
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov esi, dword [esp + 0x134]
mov ecx, dword [esi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x528f4b
mov dword [esp + 0x18c], edi
xor ecx, ecx
test cl, cl
jne 0x528f66
mov dword [esi], eax
mov edi, esi
mov esi, dword [esp + 0xf4]
mov ecx, dword [esi]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [esi], edx
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x2f
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x18c]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi]
mov edi, edx
mov dword [eax + ecx + 0x14], 0
mov esi, 0x11
mov dword [esp], edi
call fcn.00492770
test eax, eax
je 0x528f8b
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x528f8b
mov dword [esp + 0x138], eax
mov eax, edi
and eax, 1
inc eax
xor eax, edi
sete al
movzx eax, al
cmp edi, eax
jne 0x528fb4
mov eax, dword [esp + 0x124]
mov dword [esp + 0x144], eax
jmp 0x5290c2
mov dword [esp + 0x1a4], eax
jmp 0x528f2a
mov ebx, 0x13
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov eax, esi
mov ecx, edi
mov dword [esp + 0x144], edi
mov edx, dword [esp + 0x190]
mov esi, dword [esp + 0x1b0]
mov dword [esp + 0x190], edx
mov dword [esp + 0x1b0], esi
cmp ebx, 0xe
mov dword [esp + 0x194], eax
mov edi, ecx
je 0x5275a5
jmp 0x5290fb
mov dword [esp + 0x1a4], 0x700002bb
mov dword [esp + 0x144], edi
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x194], esi
jmp 0x529ae4
mov dword [esp + 0xbc], 0x70000003
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x18c], edi
jmp 0x528f78
mov dword [esp + 0xbc], 0x70000003
mov dword [esp + 0x1ac], ebx
mov eax, dword [esp + 0x124]
mov dword [esp + 0x144], eax
jmp 0x52954f
mov dword [esp + 0x1a4], 0x700002bb
mov dword [esp + 0xbc], 0x70000003
mov dword [esp + 0x138], eax
mov ecx, dword [esp + 0x124]
jmp 0x5294fe
mov edi, 5
mov dword [esp + 0x1a4], 0x700002bb
mov dword [esp + 0xbc], 0x70000003
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x178], eax
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x190]
cmp edi, 5
jne 0x52789f
mov ecx, eax
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
mov eax, ecx
je 0x52789f
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x190], eax
xor edi, edi
mov ebx, dword [esp + 0x14c]
jmp 0x52907b
mov esi, 0x16
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x138]
mov dword [esp], eax
call fcn.007c51d0
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x529040
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x14c], ebx
cmp esi, 0xb
mov edi, dword [esp + 0x18c]
mov ebx, dword [esp + 0x1ac]
je 0x526de6
mov dword [esp + 0x100], ecx
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x18c], edi
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x138]
mov dword [eax + ecx*8 + 0x14], edx
mov dword [esp + 0xbc], 0
jmp 0x52954f
mov eax, dword [esp + 0xac]
mov eax, dword [eax]
mov ecx, dword [esp + 0x15c]
mov ecx, dword [ecx]
mov dword [esp + 0x2b0], 0
mov dword [esp + 0x2ac], 0
mov esi, dword [esp + 0xfc]
mov dword [esi], 4
mov edx, dword [esp + 0xd4]
mov dword [edx], 2
mov edx, dword [esp + 0xec]
mov dword [edx], ecx
mov ecx, dword [esp + 0xe8]
mov dword [ecx], eax
test eax, eax
mov eax, dword [esp + 0xe4]
mov dword [eax], 0xfffffffc
je 0x52937e
lea eax, [esp + 0x2ac]
mov dword [esp + 8], eax
lea eax, [esp + 0x2b0]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x52937e
mov ebx, 0x11
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov dword [esp + 0xb0], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x134]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x529204
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x70], eax
jne 0x52937e
jmp 0x529208
mov dword [esp + 0x70], eax
cmp ebx, 0xf
mov edx, dword [esp + 0x70]
jne 0x529222
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
jne 0x529ae4
mov edi, dword [esp + 0x134]
mov dword [edi], edx
mov esi, dword [esp + 0xf4]
mov eax, dword [esi]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esi], eax
mov esi, edi
mov eax, dword [esp + 0xb0]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 3
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0xfffffffc
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 edi, dword [esp + 0x17c]
mov dword [ecx + eax + 0x10], edi
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], edi
call fcn.00492770
test eax, eax
je 0x5292cc
mov ecx, eax
imul eax, eax
and eax, 3
cmp eax, 2
je 0x5292d8
mov esi, 0x12
test edi, edi
jne 0x5292e4
mov eax, edi
not eax
and eax, 1
add eax, edi
mov ebx, dword [esp + 0x1ac]
mov eax, ecx
jne 0x529355
jmp 0x5292ed
mov dword [esp + 0x190], eax
jmp 0x52937e
mov dword [esp + 0x190], ecx
jmp 0x52937e
mov ebx, dword [esp + 0x1ac]
mov eax, ecx
mov dword [esp + 0x1ac], ebx
mov ebx, eax
cmp esi, 4
mov edx, dword [esp + 0x168]
mov esi, dword [esp + 0x19c]
je 0x529413
xor eax, eax
test al, al
jne 0x529413
mov esi, 0xffffffff
mov edi, dword [esp + 0x17c]
jmp 0x529347
mov dword [esp + 8], edi
mov eax, dword [esp + 0x1b0]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.007c51d0
add esi, 1
jb 0x529330
mov eax, ebx
mov ebx, dword [esp + 0x1ac]
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x190], eax
mov ecx, eax
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
mov edx, ecx
mov ecx, dword [esp + 0xb0]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edx
mov edi, 0x18
mov ebx, 3
mov eax, dword [esp + 0x2b0]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x15c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0059ab80
mov edx, eax
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp edx, eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov esi, dword [esp + 0x16c]
mov ecx, dword [esp + 0x144]
jne 0x52806e
cmp ebx, 2
mov edi, dword [esp + 0x1ac]
jne 0x5294ab
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
je 0x5294ab
mov dword [esp + 0x194], esi
mov dword [esp + 0x1a4], edx
mov edi, ecx
jmp 0x529ae4
mov ecx, dword [esp + 0x17c]
mov edi, dword [esp + 0x1b0]
mov eax, ebx
mov ebx, dword [esp + 0x1ac]
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x190], eax
mov dword [esp + 0x19c], esi
mov dword [esp + 0x168], edx
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x1a0], 0
mov ecx, 9
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
cmp ecx, 9
jne 0x527040
mov eax, dword [esp + 0x164]
mov dword [esp + 0x194], eax
mov edi, dword [esp + 0x178]
jmp 0x529ae4
mov esi, 0xf
mov eax, dword [esp + 0x15c]
mov eax, dword [eax]
lea ecx, [esp + 0x26c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x270]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
test eax, eax
je 0x52969f
xor ecx, ecx
test cl, cl
jne 0x52969f
mov dword [esp + 0x1a4], eax
mov esi, 6
mov ecx, dword [esp + 0x144]
mov ebx, edi
mov eax, dword [esp + 0x1b0]
cmp esi, 6
je 0x5295c4
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], eax
mov eax, esi
and eax, 1
inc eax
xor eax, esi
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x194], eax
mov edi, ecx
mov dword [esp + 0x144], ecx
je 0x529ae4
mov esi, 0x16
mov eax, dword [esp + 0x214]
mov dword [esp], eax
call fcn.00689a80
mov dword [esp + 0x214], 0
mov eax, dword [esp + 0xbc]
test eax, eax
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x194], eax
mov edi, dword [esp + 0x144]
jne 0x529ae4
cmp esi, 7
je 0x529ae4
imul esi, esi
and esi, 3
cmp esi, 3
jne 0x5290fb
jmp 0x529ae4
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x194], eax
mov edi, ecx
mov dword [esp + 0x144], ecx
jmp 0x529ae4
mov ebx, 0x1a
mov ecx, 1
mov eax, dword [ebp + 0x40]
mov dword [eax], 0
mov eax, dword [esp + 0x26c]
mov dword [esp + 0xf8], eax
mov dword [esp + 0x110], 0
cmp dword [eax + 4], 0
je 0x5296bb
mov eax, 3
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
cmp ecx, eax
je 0x52975d
mov esi, 8
mov eax, dword [esp + 0x2a4]
mov dword [esp], eax
call fcn.004936c0
mov ecx, dword [esp + 0x118]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
mov dword [esp + 0x1a0], 0
cmp ecx, eax
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x194], 0
mov edi, 0
jne 0x529ae4
cmp esi, 8
je 0x5280a0
mov eax, esi
and eax, 1
inc eax
xor eax, esi
jne 0x5295fc
jmp 0x5280a0
xor ecx, ecx
mov edx, dword [esp + 0x188]
mov eax, dword [esp + 0x16c]
mov edi, dword [esp + 0x144]
cmp ebx, 0xf
je 0x5282bd
imul ebx, ebx
and ebx, 3
cmp ebx, 2
je 0x5282bd
mov dword [esp + 0x194], eax
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1a4], ecx
jmp 0x529ae4
mov ecx, edx
mov dword [esp + 0x110], edx
not ecx
and ecx, 1
lea ecx, [esi + ecx + 1]
mov dword [esp + 0xcc], esi
test ecx, ecx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xf8], ebx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x164], ecx
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x178], ecx
je 0x529ab3
mov ebx, dword [esp + 0xf8]
mov ecx, dword [ebx + 8]
mov esi, dword [esp + 0x110]
imul edx, esi, 0x1c
mov eax, dword [ecx + edx + 4]
cmp eax, 8
mov edi, dword [esp + 0xe0]
je 0x529805
cmp eax, 1
jne 0x529a4a
cmp dword [ecx + edx + 0x14], 4
je 0x5298b7
mov al, 1
test al, al
je 0x5298b7
mov esi, 3
mov dword [esp + 0x1a4], 0x30000003
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x194], eax
mov edi, dword [esp + 0x144]
mov dword [esp + 0xc8], ebx
mov eax, dword [esp + 0x110]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xd8]
jmp 0x529bad
mov ebx, 0xc
mov eax, dword [ecx + edx + 0x14]
mov ecx, dword [ebp + 0x24]
mov esi, ecx
mov dword [esi], eax
mov eax, dword [ebp + 0x40]
mov edi, eax
mov eax, dword [edi]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esi]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00493840
mov dword [edi], eax
mov ecx, eax
mov dword [esp + 0x1a4], 0x70000003
test ecx, ecx
jne 0x529920
mov eax, ecx
not eax
and eax, 1
add eax, ecx
mov dword [esp + 0xe0], ecx
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x194], eax
mov ecx, dword [esp + 0x144]
mov edi, ecx
mov dword [esp + 0x164], eax
mov dword [esp + 0x178], ecx
jne 0x529ae4
jmp 0x52996d
mov eax, 0x19
mov ecx, dword [ecx + edx + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je 0x529a08
mov edx, ecx
and edx, 1
inc edx
mov dword [esp + 0x1a4], 0
xor edx, ecx
mov dword [esp + 0xc8], ebx
mov ecx, dword [esp + 0x110]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x194], ecx
mov edi, dword [esp + 0x144]
jne 0x529ae4
jmp 0x529a1d
mov dword [esp + 0xe0], ecx
mov eax, dword [esp + 0x188]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0xcc], eax
xor esi, esi
cmp ebx, 6
mov edi, dword [esp + 0xa0]
jne 0x52998a
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jb 0x528a4f
mov edi, dword [esp + 0xe0]
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
jmp 0x5299ee
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0x26c]
mov ecx, dword [ecx + 8]
imul edx, ebx, 0x1c
mov ecx, dword [ecx + edx + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.007c51d0
mov ecx, dword [esp + 0x26c]
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x5299b0
mov esi, ebx
mov ebx, ecx
jmp 0x529a4a
mov dword [esp + 0xc8], ebx
mov ecx, dword [esp + 0x110]
mov dword [esp + 0xcc], ecx
cmp eax, 9
je 0x527091
imul eax, eax
and eax, 3
cmp eax, 2
je 0x527091
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0xcc]
mov dword [esp + 0xe0], edi
mov eax, 0xe
lea edx, [esi + 1]
mov dword [esp + 0x1a4], 0
cmp edx, dword [ebx + 4]
jb 0x529704
mov dword [esp + 0xcc], esi
mov dword [esp + 0x110], edx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xf8], ebx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x164], ecx
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x178], ecx
cmp eax, 0xe
mov edx, dword [esp + 0x164]
mov esi, dword [esp + 0x178]
jne 0x526f6e
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x526f6e
mov dword [esp + 0x194], edx
mov edi, esi
mov esi, 9
call fcn.00597bd0
mov eax, dword [0x80dc34]
mov dword [esp], eax
call fcn.007c74e0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x529bd8
mov eax, dword [esp + 0x1a0]
mov dword [esp], eax
call fcn.004235e0
mov ebx, dword [esp + 0x218]
test ebx, ebx
je 0x529c18
xor eax, eax
test al, al
jne 0x529c18
mov esi, 0x11
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], 0x39
mov dword [esp + 0x20], 0
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 + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.005859d0
mov dword [esp], ebx
call fcn.004936c0
mov eax, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x194]
mov edx, edi
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x108], eax
cmp esi, 3
jne 0x529c3b
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x529ae4
jmp 0x529c3b
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], edi
cmp esi, 6
je 0x528cc0
imul esi, esi
and esi, 3
cmp esi, 3
je 0x528cc0
jmp 0x526d18
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], edi
mov esi, 8
mov ebx, 0x10
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call fcn.004936c0
lea eax, [esp + 0x278]
mov dword [esp + 0x1a8], eax
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x114], ecx
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
mov dword [esp + 0xf0], 0
cmp ecx, eax
lea eax, [esp + 0x274]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 0x164], eax
mov dword [esp + 0x178], edi
jne 0x529dc4
cmp esi, 8
mov edi, dword [esp + 0xb8]
mov ebx, dword [esp + 0x1ac]
jne 0x529ce5
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x529e72
mov esi, 0xc
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x68]
mov dword [esp], ebx
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
lea ecx, [edi + edi*2]
mov dword [eax + ecx*8 + 0x14], ebx
lea eax, [esp + 0x270]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 3
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 0x1a0], 0
xor ecx, ecx
xor edx, edx
call fcn.00572ee0
mov dword [esp + 0x1a4], eax
test eax, eax
mov dword [esp + 0x194], 0
mov edi, 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x178], 0
jne 0x529ae4
cmp esi, 2
mov edi, dword [esp + 0x18c]
mov ebx, dword [esp + 0x1ac]
jne 0x52870d
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x527996
jmp 0x52870d
cmp ebx, 0x10
jne 0x527e46
mov eax, ebx
not eax
and eax, 1
add eax, ebx
je 0x527e46
mov ebx, dword [esp + 0x1ac]
mov edi, dword [esp + 0xf0]
mov eax, dword [esp + 0x128]
mov eax, dword [eax]
lea ecx, [edi + edi*2]
mov eax, dword [eax + ecx*8 + 0x14]
test eax, eax
je 0x529e18
mov dword [esp + 0x104], eax
mov esi, 0xf
xor eax, eax
test al, al
mov eax, edi
je 0x528866
jmp 0x529e21
mov dword [esp + 0x104], eax
mov eax, edi
mov edx, 0xe
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov edi, eax
adc edi, 0
cmp edi, dword [esp + 0x114]
jae 0x529e4a
mov ecx, edi
not ecx
and ecx, 1
add ecx, edi
jne 0x529dea
mov dword [esp + 0xf0], edi
mov dword [esp + 0xd0], eax
cmp edx, 0xd
je 0x527d6c
xor eax, eax
test al, al
jne 0x527d6c
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x128]
mov dword [esp + 0x128], eax
mov esi, 0x10
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x26c]
test eax, eax
je 0x529ebf
xor ecx, ecx
test cl, cl
jne 0x529ebf
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, dword [esp + 0x108]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0xb8], edi
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x1b0]
mov edx, dword [esp + 0x180]
jmp 0x528c72