Function at 0x4fdf80
Capabilities:
Encode data using base64
Encrypt data using speck
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x460
mov edi, dword [ebp + 0x1c]
mov al, 0x23
mov dword [esp + 0x3e4], 0
mov dword [esp + 0x3e0], 0
mov dword [esp + 0x3e8], 0
mov dword [esp + 0x3dc], 0
mov dword [esp + 0x3d8], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x3b0], xmm0
movaps xmmword [esp + 0x3a0], xmm0
mov dword [esp + 0x3c4], 0
mov dword [esp + 0x3c0], 0
mov byte [esp + 0x3c8], 0
mov dword [esp + 0x39c], 0
mov dword [esp + 0x398], 0
mov dword [esp + 0x394], 0
mov dword [esp + 0x390], 0
mov dword [esp + 0x38c], 0
movaps xmmword [esp + 0x370], xmm0
movaps xmmword [esp + 0x360], xmm0
movaps xmmword [esp + 0x350], xmm0
movaps xmmword [esp + 0x340], xmm0
mov dword [esp + 0x33c], 0
mov esi, dword [0x7dc5e8]
mov dword [esp + 0x338], esi
movsd xmm0, qword [0x7dc5e0]
movsd qword [esp + 0x330], xmm0
movsd xmm0, qword [0x7dc5d8]
movsd qword [esp + 0x328], xmm0
test edi, edi
je 0x4fe09e
mov dword [edi + 4], 0
mov dword [edi], 0
mov esi, dword [ebp + 0x20]
movzx eax, al
cmp eax, 0x23
jne 0x4fe0d7
test esi, esi
setne al
mov edi, esi
and esi, 1
inc esi
xor esi, edi
sete ah
or ah, al
mov byte [esp + 0xcb], ah
je 0x4fe104
mov dword [esp + 0x250], ecx
mov dword [esp + 0x218], edx
mov esi, dword [ebp + 0x20]
jmp 0x4fe0f5
test esi, esi
setne byte [esp + 0xcb]
je 0x4fe598
mov dword [esp + 0x250], ecx
mov dword [esp + 0x218], edx
mov dword [esi + 4], 0
mov dword [esi], 0
jmp 0x4fe112
mov dword [esp + 0x250], ecx
mov dword [esp + 0x218], edx
mov byte [esp + 0x273], al
mov byte [esp + 0x283], al
mov byte [esp + 0x6f], al
mov byte [esp + 0x18b], al
mov byte [esp + 0x8b], al
mov byte [esp + 0x15f], al
mov byte [esp + 0x6d], al
mov byte [esp + 0x6e], al
mov byte [esp + 0xa3], al
mov byte [esp + 0x29b], al
mov byte [esp + 0x28f], al
mov byte [esp + 0x2c3], al
mov byte [esp + 0x27b], al
mov byte [esp + 0x93], al
mov dword [esp + 0x260], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x2bc], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x268], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x174], eax
mov byte [esp + 0x18a], al
mov byte [esp + 0x117], al
mov byte [esp + 0xbb], al
mov byte [esp + 0xff], al
mov byte [esp + 0xef], al
mov byte [esp + 0x16f], al
mov byte [esp + 0x23f], al
mov byte [esp + 0x25b], al
mov byte [esp + 0x2ab], al
mov byte [esp + 0x19a], al
mov byte [esp + 0x1af], al
mov byte [esp + 0x28e], al
mov byte [esp + 0x1cf], al
mov byte [esp + 0x1e7], al
mov byte [esp + 0xd3], al
mov byte [esp + 0x19b], al
mov byte [esp + 0x1ef], al
mov byte [esp + 0xb3], al
mov byte [esp + 0x22f], al
mov byte [esp + 0x24f], al
mov byte [esp + 0x1c3], al
mov byte [esp + 0x153], al
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x20c], eax
jmp 0x4fea31
mov dword [esp + 0x250], ecx
mov dword [esp + 0x218], edx
mov byte [esp + 0x273], al
mov byte [esp + 0x283], al
mov byte [esp + 0x6f], al
mov byte [esp + 0x18b], al
mov byte [esp + 0x8b], al
mov byte [esp + 0x15f], al
mov byte [esp + 0x6d], al
mov byte [esp + 0x6e], al
mov byte [esp + 0xa3], al
mov byte [esp + 0x29b], al
mov byte [esp + 0x28f], al
mov byte [esp + 0x2c3], al
mov byte [esp + 0x27b], al
mov byte [esp + 0x83], al
mov ecx, 0x18
mov dword [esp + 0x260], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x2bc], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x268], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x174], eax
mov byte [esp + 0x93], al
mov byte [esp + 0x18a], al
mov byte [esp + 0x117], al
mov byte [esp + 0xbb], al
mov byte [esp + 0xff], al
mov byte [esp + 0xef], al
mov byte [esp + 0x16f], al
mov byte [esp + 0x23f], al
mov byte [esp + 0x2ab], al
mov byte [esp + 0x19a], al
mov byte [esp + 0x1af], al
mov byte [esp + 0x28e], al
mov byte [esp + 0x1cf], al
mov byte [esp + 0x1e7], al
mov byte [esp + 0xd3], al
mov byte [esp + 0x19b], al
mov byte [esp + 0x1ef], al
mov byte [esp + 0xb3], al
mov byte [esp + 0x22f], al
mov byte [esp + 0x1c3], al
mov byte [esp + 0x153], al
mov byte [esp + 0x24f], al
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x20c], eax
jmp 0x5016cf
mov eax, 0x16
mov edx, 0xd
mov bl, 0x77
mov ecx, dword [ebp + 8]
mov edi, ecx
test edi, edi
sete cl
mov esi, edi
and esi, 1
xor esi, edi
cmp esi, 0xffffffff
setne ch
xor esi, esi
and ch, cl
mov byte [esp + 0x83], ch
mov ecx, dword [esp + 0x264]
mov dword [esp + 0x310], ecx
mov edi, dword [esp + 0x248]
mov dword [esp + 0x2dc], edi
mov ecx, dword [esp + 0x2f4]
je 0x500e51
cmp edx, 0xd
mov edi, dword [esp + 0x314]
jne 0x4feabd
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x194], esi
mov eax, edx
not eax
and eax, 1
add eax, edx
jne 0x4feb37
jmp 0x503b7d
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x194], esi
jmp 0x503b7d
mov ebx, 0x49
add bl, 0x10
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x4feae0
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x194], edx
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
mov dword [esp + 0x2dc], edi
mov edi, 0x12
call fcn.0044c050
mov dword [esp + 0x110], eax
mov dword [esp + 0x10c], edx
lea eax, [esp + 0x3e0]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x3e0], 0x28
lea eax, [esp + 0x3e8]
mov dword [esp + 0x2f4], eax
mov eax, dword [esp + 0x3e4]
mov esi, dword [esp + 0x3e8]
lea ebx, [esi + esi*2]
lea ecx, [ebx*8 + 0x18]
lea edx, [esp + 0x3e4]
mov dword [esp + 0x314], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
mov ecx, 0x70000003
je 0x4fecfa
xor ecx, ecx
test cl, cl
jne 0x4fed30
mov edi, 0xe
mov dword [esp + 0x3e4], eax
mov ecx, dword [esp + 0x3e8]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [esp + 0x3e8], edx
shl esi, 3
lea ecx, [esi + esi*2]
mov dword [eax + ecx], 0x10
mov eax, dword [esp + 0x3e4]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x3e4]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x3e4]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x3e4]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [esp + 0x3e4]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov esi, eax
test esi, esi
je 0x4fed6b
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x4fed6b
mov al, 0x31
movzx eax, al
cmp eax, 3
jne 0x4fedac
mov eax, dword [esp + 0x218]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x3e4]
mov dword [eax + ebx*8 + 0x14], esi
mov edi, dword [esp + 0x194]
test edi, edi
sete al
mov ecx, edi
or ecx, 2
mov edx, edi
xor edx, 2
add edx, ecx
setne cl
and cl, al
mov byte [esp + 0x6f], cl
movzx eax, cl
cmp eax, 1
jne 0x4feeaf
mov al, 0x36
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
mov esi, dword [esp + 0x1d8]
mov edx, dword [esp + 0x2dc]
je 0x4fee1d
jmp 0x4feeec
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 0x300], eax
mov dword [esp + 0x160], eax
jmp 0x4fef88
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 0x300], eax
mov dword [esp + 0x160], eax
mov ecx, 0x70000003
jmp 0x4fef88
mov dword [esp + 0x2f8], 0x70000003
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 0x300], eax
mov dword [esp + 0x160], eax
jmp 0x4fefa6
mov eax, dword [esp + 0x218]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x3e4]
mov dword [eax + ebx*8 + 0x14], esi
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
sete cl
mov edi, dword [esp + 0x194]
test edi, edi
sete al
mov edx, edi
not edx
and edx, 1
add edx, edi
setne dl
and dl, al
mov byte [esp + 0x6f], dl
movzx eax, dl
cmp eax, 1
jne 0x4feeaf
mov al, 0x36
test cl, cl
mov esi, dword [esp + 0x1d8]
mov edx, dword [esp + 0x2dc]
je 0x4feeec
movzx eax, al
cmp eax, 0x2f
mov ecx, dword [esp + 0x310]
je 0x4fef1b
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x248], eax
mov dword [esp + 0x300], edi
mov dword [esp + 0x160], edi
mov esi, dword [esp + 0x1d8]
lea edi, [esp + 0x3e4]
jmp 0x4ff0bf
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov dword [esp + 0x248], edx
mov dword [esp + 0x300], edi
mov dword [esp + 0x160], edi
lea edi, [esp + 0x3e4]
jmp 0x4ff0bf
cmp edi, 0xa
jne 0x4fef9a
mov byte [esp + 0x1e7], 0x75
jmp 0x504f10
mov dword [esp + 0x2f8], ecx
jmp 0x5057e6
cmp edi, 0xe
jne 0x4fefba
imul edi, edi
and edi, 3
cmp edi, 2
jb 0x5057e6
mov eax, dword [esp + 0x314]
mov eax, dword [eax]
mov ecx, dword [esp + 0x168]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x178]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
mov esi, 0xa
mov ebx, 3
mov eax, dword [esp + 0x410]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x418], 0
mov dword [esp + 0x414], 0
mov ecx, dword [esp + 0x214]
mov dword [ecx], 4
mov ecx, dword [esp + 0x1fc]
mov dword [ecx], 2
mov ecx, dword [esp + 0x250]
mov edx, dword [esp + 0x1f8]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1f4]
mov dword [ecx], eax
mov eax, dword [esp + 0x1f0]
mov dword [eax], 0xfffffffd
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x208]
je 0x50145a
jmp 0x500b81
or byte [esp + 0x3d8], 2
mov esi, dword [esp + 0x1d8]
mov edi, dword [esp + 0x314]
mov dword [esp + 0x1d8], esi
mov esi, 4
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0xf8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x4ff123
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0x314], edi
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x98], eax
not ecx
test ecx, ecx
jne 0x5057e6
jmp 0x4ff13c
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0x98], eax
mov dword [esp + 0x314], edi
cmp esi, 4
je 0x4ff14b
xor eax, eax
test al, al
je 0x501b41
mov esi, dword [esp + 0x314]
mov edi, dword [esp + 0x98]
mov dword [esi], edi
mov edx, dword [esp + 0x2f4]
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 + 0xf8]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 0xe
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], 4
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 4
call fcn.00492770
test eax, eax
je 0x4ff1fa
mov dword [esp + 0x2f8], 0x70000003
mov esi, 7
mov dword [esp + 0xac], eax
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x5036d7
jmp 0x5057e6
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0xac], eax
jmp 0x5057e6
mov eax, 3
sub eax, esi
xor eax, esi
je 0x5036ee
lea eax, [esp + 0x3d8]
mov dword [esp + 4], eax
mov esi, dword [esp + 0xac]
mov dword [esp], esi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [edi]
mov ecx, dword [esp + 0xf8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
lea eax, [esp + 0x3a0]
mov dword [esp], eax
mov dword [esp + 4], 0x29
call fcn.00446640
mov esi, dword [ebx]
lea eax, [esi + esi*2]
mov dword [esp + 0x310], eax
lea eax, [eax*8 + 0x18]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x4ff2ae
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x4ff2ae
mov eax, 9
mov dword [esp + 0x2f8], 0x70000003
jmp 0x4ff3f1
mov dword [edi], eax
mov edi, ebx
mov ebx, dword [edi]
mov edx, ebx
or edx, 2
mov ecx, ebx
xor ecx, 2
add ecx, edx
setne cl
movzx ecx, cl
add ecx, ebx
mov ebx, edi
mov edi, dword [esp + 0x314]
mov dword [ebx], ecx
shl esi, 3
lea ecx, [esi + esi*2]
mov dword [eax + ecx], 0x25
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 dword [eax + ecx + 0x10], 0x29
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 0x29
call fcn.00492770
mov esi, eax
test esi, esi
jne 0x4ff33e
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x4ff33e
mov dword [esp + 0x2f8], 0x70000003
jmp 0x5057e6
mov byte [esp + 0x93], 0xc
lea eax, [esp + 0x3a0]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 0x29
call fcn.007c51d0
mov eax, dword [edi]
mov ecx, dword [esp + 0x310]
mov dword [eax + ecx*8 + 0x14], esi
lea eax, [esp + 0x3f0]
mov dword [esp + 0x68], eax
call fcn.0044c050
mov dword [esp + 0x3f4], edx
mov dword [esp + 0x3f0], eax
mov eax, dword [ebx]
mov dword [esp + 0x7c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x4ff3d8
mov dword [esp + 0x2f8], 0x70000003
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x70], eax
not ecx
test ecx, ecx
mov edx, 0xc
jne 0x4ff6a7
jmp 0x4ff4cc
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0x70], eax
mov edx, 0xc
jmp 0x4ff4cc
cmp eax, 4
je 0x4ff400
xor eax, eax
test al, al
je 0x5057e6
mov ecx, dword [esp + 0x218]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x250]
mov dword [esp + 8], eax
mov dword [esp + 0x14], 0x13
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.0054c950
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4ff4c0
cmp eax, 0xb
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x2dc], eax
je 0x500f1a
jmp 0x504ab2
cmp edx, 0xc
jne 0x4ff586
mov eax, edx
or eax, 2
xor edx, 2
add edx, eax
je 0x4ff586
movzx eax, byte [esp + 0x93]
cmp eax, 0xc
mov edx, dword [esp + 0x70]
jne 0x4ff5b7
mov byte [esp + 0x93], 0x31
mov dword [edi], edx
mov esi, dword [esp + 0x2f4]
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 + 0x7c]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 4
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 dword [esp], 8
call fcn.00492770
mov esi, eax
test esi, esi
je 0x4ff6a7
mov al, 1
test al, al
jne 0x4ff633
jmp 0x4ff6a7
mov ebx, dword [esp + 0x12c]
movzx eax, bl
cmp eax, 0xd
jne 0x4ff6d1
mov dword [esp + 0x314], edi
mov al, 6
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x238]
mov edx, dword [eax]
jmp 0x4ff727
mov byte [esp + 0x93], 0xc
mov dword [edi], edx
mov esi, dword [esp + 0x2f4]
mov eax, dword [esi]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0x7c]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 4
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 dword [esp], 8
call fcn.00492770
mov esi, eax
test esi, esi
je 0x4ff6a7
mov al, 0x2e
movzx eax, al
cmp eax, 0x47
je 0x4ff733
cmp eax, 0x7f
jne 0x4ff790
mov ebx, 0x12
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [edi]
mov dword [esp + 0x314], edi
mov ecx, dword [esp + 0x7c]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
test byte [esp + 0x6f], 1
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
je 0x4ff863
jmp 0x500cbf
mov dword [esp + 0x314], edi
mov dword [esp + 0x2f8], 0x70000003
mov ecx, 0x11
mov edi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x21c]
jmp 0x4ff7d6
xor eax, eax
jmp 0x4ff705
mov ebx, 0x9f
add bl, 0x6e
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x238]
mov edx, dword [ecx]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x4ff6e0
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x314], edi
mov esi, dword [esp + 0xf0]
jmp 0x4ffceb
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [edi]
mov dword [esp + 0x314], edi
mov ecx, dword [esp + 0x7c]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov esi, 0x13
test byte [esp + 0x6f], 1
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
je 0x4ff863
jmp 0x504019
mov dword [esp + 0x314], edi
mov ebx, 0x14
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [edi]
mov ecx, dword [esp + 0x7c]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov esi, 0x12
test byte [esp + 0x6f], 1
jne 0x50291b
jmp 0x502b7a
cmp ecx, 6
jne 0x4ff850
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x4ff850
mov dword [esp + 0x21c], ebx
mov esi, 5
mov ecx, dword [esp + 0x2b4]
lea eax, [ecx + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.007c5200
mov dword [esp + 0x308], 0
mov dword [esp + 0x2cc], edi
mov dword [esp + 0x1b0], edi
cmp esi, 5
jne 0x5057e6
imul esi, esi
and esi, 3
cmp esi, 2
mov edi, dword [esp + 0x2d4]
mov edx, dword [esp + 0x224]
jb 0x503787
jmp 0x5057e6
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x1b0], edi
jmp 0x5057e6
mov al, 0x54
mov dword [esp + 0x210], eax
mov byte [esp + 0x16f], 0x33
mov byte [esp + 0xbb], 0x16
mov eax, dword [esp + 0x160]
mov ebx, dword [eax]
test ebx, ebx
je 0x4ff8bc
mov byte [esp + 0x18a], 0x3e
mov byte [esp + 0x117], 0x69
mov byte [esp + 0xff], 0x4c
mov byte [esp + 0xef], 0xe
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
jne 0x5001be
jmp 0x5003b6
mov byte [esp + 0x18a], 0x3e
mov byte [esp + 0x117], 0x69
mov byte [esp + 0xff], 0x4c
mov byte [esp + 0xef], 0xe
jmp 0x5003b6
mov dl, 5
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x180], eax
mov edi, dword [eax]
cmp edi, 0xfffffff0
jne 0x5002bb
mov dword [esp + 0x1bc], edi
mov byte [esp + 0x18a], 5
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x1e8], ebx
mov ecx, 0x19
mov al, byte [esp + 0x117]
movzx eax, al
cmp eax, 5
je 0x4ff9d6
cmp eax, 0xc
je 0x4ff9f0
cmp eax, 0x33
jne 0x4ffa73
mov byte [esp + 0x117], 5
mov ecx, dword [esp + 0x180]
mov eax, dword [ecx + 4]
mov dword [esp + 0x284], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0xc4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov dword [esp + 0x2f8], 0x70000003
je 0x4ffaf4
mov ecx, eax
mov dword [esp + 0x8c], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x505ce3
jmp 0x5057e6
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
mov ebx, dword [esp + 0x244]
jmp 0x4ffb18
mov byte [esp + 0x117], 0x33
mov ecx, dword [esp + 0x180]
mov eax, dword [ecx + 4]
mov dword [esp + 0x284], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0xc4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x2f8], 0x70000003
test eax, eax
jne 0x4ffb00
mov edx, eax
or edx, 2
mov ecx, eax
mov dword [esp + 0x8c], eax
xor ecx, 2
add ecx, edx
jne 0x5057e6
jmp 0x505ce3
mov byte [esp + 0x117], 0x69
mov ecx, dword [esp + 0x180]
mov eax, dword [ecx + 4]
mov dword [esp + 0x284], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0xc4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x2f8], 0x70000003
test eax, eax
jne 0x4ffb0c
mov esi, 0x12
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x8c], eax
jne 0x4ff825
jmp 0x505ce3
mov dword [esp + 0x8c], eax
jmp 0x5057e6
mov dword [esp + 0x8c], eax
jmp 0x505ce3
mov dword [esp + 0x8c], eax
jmp 0x505ce3
mov dword [esp + 0x244], ebx
cmp ecx, 9
je 0x4ffbad
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x4ffbad
mov edi, 0xb
mov esi, 5
mov byte [esp + 0x117], 0xc
mov ecx, dword [esp + 0x180]
mov eax, dword [ecx + 4]
mov dword [esp + 0x284], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0xc4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x8c], eax
mov dword [esp + 0x2f8], 0x70000003
test eax, eax
jne 0x50688f
jmp 0x501575
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
jmp 0x5052b0
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x505d20
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x314]
mov dword [esi], edx
mov eax, dword [ecx]
mov ebx, ecx
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
mov dword [ebx], ecx
mov dword [esp + 0x2f4], ebx
mov eax, dword [esp + 0xc4]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x12
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0xfffffff0
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 dword [ecx + eax + 0x10], edi
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov byte [esp + 0xbb], 4
mov dword [esp], edi
mov dword [esp + 0x244], edi
call fcn.00492770
mov dword [esp + 0x294], eax
test eax, eax
mov dword [esp + 0x2f8], 0x70000003
je 0x5057e6
xor eax, eax
test al, al
jne 0x5057e6
mov esi, 0xa
mov edx, 0xc
mov ebx, dword [esp + 0x244]
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ebx, eax
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
je 0x5033c6
xor edi, edi
cmp esi, 6
jne 0x4ffd37
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x4ffd37
mov dword [esp + 0x244], ebx
mov edx, dword [esp + 0x200]
mov esi, dword [esp + 0x1b4]
mov eax, 4
movzx ecx, byte [esp + 0x1cf]
cmp ecx, 0x47
jne 0x4ffd65
mov dword [esp + 0x1b4], esi
mov dword [esp + 0x200], edx
jmp 0x506af2
mov esi, 0x72
xor esi, 0x75
inc edi
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x284]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x294]
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 0x4ffd10
mov dword [esp + 0x244], ebx
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x2dc], eax
jmp 0x504be5
mov eax, 0xd
mov byte [esp + 0x1cf], 0x47
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x4ffdaa
mov dword [esp + 0x1b4], esi
mov dword [esp + 0x200], edx
mov byte [esp + 0x1e7], 0x3f
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov ebx, dword [esp + 0x244]
jne 0x504d5c
jmp 0x5051b1
mov dword [esp + 0x1b4], esi
mov dword [esp + 0x200], edx
mov byte [esp + 0x1e7], 0x3f
mov ebx, dword [esp + 0x244]
jmp 0x5051b1
mov dword [esp + 0x310], eax
mov byte [esp + 0xff], 0x37
mov eax, dword [esp + 0x1bc]
shr eax, 0x18
cmp eax, 1
je 0x4ffdff
cmp eax, 4
mov dword [esp + 0x94], eax
je 0x505ec6
jmp 0x505f01
mov dword [esp + 0x94], eax
jmp 0x505ec6
mov eax, dword [esp + 0x1bc]
cmp eax, 0xffffffce
je 0x4ffe2e
mov byte [esp + 0xef], 0xe
xor eax, eax
test al, al
je 0x50019a
jmp 0x505ec6
mov byte [esp + 0xef], 0xe
jmp 0x505ec6
mov byte [esp + 0x16f], 0x48
mov eax, dword [esp + 0x180]
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp], eax
call fcn.0068e2e0
mov esi, eax
mov ebx, dword [esp + 0x2f4]
mov eax, dword [ebx]
mov dword [esp + 0x130], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov edx, eax
test edx, edx
jne 0x4ffee9
mov ecx, edx
and ecx, 1
xor ecx, edx
not ecx
test ecx, ecx
je 0x4ffee9
mov dword [esp + 0xc0], edi
mov eax, 0xc
mov dword [esp + 0x2f8], 0x70000003
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x30c], ecx
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], ecx
mov edx, dword [esp + 0x314]
jmp 0x50226e
mov dword [esp + 0x2f8], esi
mov dword [esp + 0xc0], edi
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov ecx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x314]
mov dword [esp + 0x314], edx
mov dword [esp + 0x1bc], ecx
and ecx, 0xffffff
mov dword [eax], edx
mov edx, dword [ebx]
mov edi, edx
not edi
and edi, 1
add edi, edx
mov esi, ebx
setne bl
movzx edi, bl
mov ebx, esi
add edi, edx
mov dword [ebx], edi
mov edi, eax
mov edx, dword [esp + 0x130]
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov eax, dword [esp + 0x2f8]
mov esi, dword [esp + 0x314]
mov dword [esi + edx], eax
mov eax, dword [edi]
mov dword [eax + edx + 4], ecx
mov eax, dword [edi]
mov ecx, dword [esp + 0x94]
mov byte [eax + edx + 8], cl
mov eax, dword [edi]
mov dword [eax + edx + 0xc], 0
mov eax, dword [edi]
mov ecx, dword [esp + 0x230]
mov dword [eax + edx + 0x10], ecx
mov eax, dword [edi]
mov dword [eax + edx + 0x14], 0
mov esi, 0x16
mov dword [esp], ecx
call fcn.00492770
test eax, eax
jne 0x4fffe7
mov dword [esp + 0x314], edi
mov dword [esp + 0x228], eax
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x500001
mov eax, 5
mov dword [esp + 0x2f8], 0x70000003
jmp 0x5028b2
mov dword [esp + 0x228], eax
mov dword [esp + 0x314], edi
mov dword [esp + 0x2f4], ebx
jmp 0x504a29
mov dword [esp + 0x2f4], ebx
jmp 0x504a29
cmp dword [esp + 0x230], 0
je 0x5000b3
xor esi, esi
mov ebx, dword [esp + 0x210]
movzx eax, bl
cmp eax, 0x4d
je 0x5000c8
cmp eax, 0x54
jne 0x500124
mov edi, dword [esp + 0xc0]
jmp 0x500088
mov ebx, 0x7b
add bl, 0xd9
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x230]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x228]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x500050
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0x210], ebx
jmp 0x50015d
mov eax, 0xd
mov dword [esp + 0x2f8], 0x70000003
jmp 0x505261
mov bl, 1
mov edi, dword [esp + 0xc0]
jmp 0x50011a
mov eax, 0x42
add al, 0xe
mov dword [esp + 0x210], eax
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov eax, dword [esp + 0x230]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x228]
mov dword [esp], eax
call fcn.007c51d0
test esi, esi
je 0x5000e0
test bl, bl
je 0x5000e0
jmp 0x500152
mov al, 0x4d
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x230]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x228]
mov dword [esp], eax
call fcn.007c51d0
mov dword [esp + 0x2f8], 0x70000003
mov eax, 2
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x130]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x228]
mov dword [ecx + edx*8 + 0x14], esi
mov ecx, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], ecx
mov edi, dword [esp + 0x1dc]
jmp 0x5010a7
mov eax, dword [esp + 0x1e8]
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x5001be
mov eax, 0xa
mov ecx, ebx
and ecx, 1
xor ecx, ebx
not ecx
test ecx, ecx
jne 0x50468b
movzx eax, byte [esp + 0x18a]
cmp eax, 0x13
je 0x500230
cmp eax, 0x14
je 0x4ff8e1
cmp eax, 0x3e
jne 0x500289
mov esi, 0x1c
mov dl, 0x13
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x180], eax
mov edi, dword [eax]
cmp edi, 0xfffffff0
jne 0x5002bb
mov dword [esp + 0x1bc], edi
mov byte [esp + 0x18a], 0x13
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x1e8], ebx
jmp 0x506fc9
mov eax, 5
mov dl, 0x14
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x180], ecx
mov edi, dword [ecx]
cmp edi, 0xfffffff0
je 0x500252
mov ecx, edi
and ecx, 1
inc ecx
xor ecx, edi
jne 0x5002bb
mov dword [esp + 0x1bc], edi
mov byte [esp + 0x18a], 0x14
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x30c], ecx
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x1e8], ebx
jmp 0x504761
mov dl, 0x3e
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x180], eax
mov edi, dword [eax]
cmp edi, 0xfffffff0
jne 0x5002bb
mov eax, edi
not eax
and eax, 1
add eax, edi
je 0x5002bb
mov dword [esp + 0x1bc], edi
mov byte [esp + 0x18a], 0x3e
jmp 0x4ff907
mov esi, 6
mov cl, byte [esp + 0xff]
movzx ecx, cl
cmp ecx, 0x30
je 0x50032c
cmp ecx, 0x4c
jne 0x50034d
mov byte [esp + 0xff], 0x4c
mov eax, edi
shr eax, 0x18
cmp eax, 1
je 0x50038c
mov dword [esp + 0x1bc], edi
mov byte [esp + 0x18a], dl
mov edx, 8
mov esi, 9
cmp eax, 4
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x1e8], ebx
je 0x502af8
jmp 0x5057a1
mov dword [esp + 0x1bc], edi
mov byte [esp + 0x18a], dl
mov dword [esp + 0x1e8], ebx
mov eax, dword [esp + 0x310]
jmp 0x505438
mov byte [esp + 0x18a], dl
mov byte [esp + 0xff], 0x30
mov eax, edi
shr eax, 0x18
cmp eax, 1
je 0x50039c
mov dword [esp + 0x1bc], edi
mov ecx, 4
mov edx, 0x14
cmp eax, 4
mov dword [esp + 0x94], eax
je 0x5067d2
jmp 0x505ee3
mov dword [esp + 0x1bc], edi
mov byte [esp + 0x18a], dl
jmp 0x5003a3
mov dword [esp + 0x1bc], edi
mov dword [esp + 0x94], eax
mov dword [esp + 0x1e8], ebx
jmp 0x505ec6
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov ebx, dword [esp + 0x2dc]
jne 0x5003e0
mov dword [esp + 0x2e0], ebx
jmp 0x5005e3
mov cl, 0x14
movzx ecx, cl
cmp ecx, 0x14
jne 0x5004f3
mov eax, dword [ebp + 0x10]
lea edi, [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x500623
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
je 0x500623
mov dword [esp + 0x238], edi
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x30c], ecx
mov edx, eax
mov ebx, dword [esp + 0x1e0]
jmp 0x5024f0
mov dword [esp + 0x428], 0
mov dword [esp + 0x424], 0
mov dword [esp + 0x3f8], 4
mov dword [esp + 0x3fc], 2
mov eax, dword [esp + 0x250]
mov dword [esp + 0x400], eax
mov dword [esp + 0x404], 0
mov dword [esp + 0x408], 1
lea eax, [esp + 0x424]
mov dword [esp + 8], eax
lea eax, [esp + 0x428]
mov dword [esp + 4], eax
lea eax, [esp + 0x3f8]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x50073f
mov al, 0x71
movzx eax, al
cmp eax, 0x71
mov ecx, dword [esp + 0x2f4]
mov edx, dword [esp + 0x314]
mov al, 0x67
jne 0x500754
mov dword [esp + 0x1e0], eax
mov esi, 0xd
mov eax, dword [esp + 0x424]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x9c], eax
mov eax, dword [ecx]
mov dword [esp + 0x11c], 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
test eax, eax
jne 0x5007c9
mov dword [esp + 0x238], edi
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x78], eax
jne 0x50629a
jmp 0x50608c
mov dword [esp + 0x238], edi
mov al, 0x67
mov dword [esp + 0x1e0], eax
jmp 0x50629a
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x9c], eax
mov eax, dword [ecx]
mov dword [esp + 0x11c], 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 + 0x78], eax
test eax, eax
je 0x5007d9
mov dword [esp + 0x238], edi
mov eax, 0x17
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x30c], ecx
je 0x506232
jmp 0x50629a
mov dword [esp + 0x238], edi
mov dword [esp + 0x78], eax
jmp 0x50608c
mov dword [esp + 0x238], edi
jmp 0x50629a
mov eax, dword [esp + 0x40c]
mov dword [esp + 0x2b0], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x288], eax
mov esi, dword [esp + 0x2f4]
mov eax, dword [esi]
mov dword [esp + 0x168], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov edi, dword [esp + 0x314]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5008f3
mov ecx, 0xd
mov edx, eax
not edx
and edx, 1
add edx, eax
je 0x5008f3
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
cmp ecx, 3
jne 0x500997
mov eax, ecx
not eax
and eax, 1
add eax, ecx
je 0x500997
mov dword [esp + 0x314], edi
mov edi, ebx
xor eax, eax
imul ecx, dword [esp + 0x220], 0x1c
mov esi, dword [esp + 0x29c]
mov ebx, dword [esp + 0x2a4]
jmp 0x5008cc
mov ebx, 0x96
add bl, 0xad
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
adc eax, 0
mov edx, dword [esp + 0x2fc]
mov edx, dword [edx + ecx + 0x18]
mov edx, dword [edx]
mov dword [esi], edx
mov edi, dword [esp + 0x30c]
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne dl
movzx edx, dl
cmp eax, edx
jb 0x5008a0
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x310], edi
jmp 0x50495e
mov cl, 0xa
movzx ecx, cl
cmp ecx, 8
je 0x5009aa
cmp ecx, 0xa
je 0x500a2b
cmp ecx, 0xe
jne 0x500acf
mov dword [esp + 0x2dc], ebx
mov dword [edi], eax
inc dword [esi]
mov ecx, dword [esp + 0x168]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 3
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0xfffffffc
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x2b0]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x500b62
mov edx, 0xe
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x178], eax
jne 0x506a92
jmp 0x4feff4
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x314], edi
jmp 0x4fefe6
mov dword [esp + 0x2dc], ebx
mov dword [edi], eax
mov ecx, dword [esi]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [esi], ecx
mov ecx, dword [esp + 0x168]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 3
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0xfffffffc
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x2b0]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x178], eax
test eax, eax
jne 0x506aac
jmp 0x4feff4
mov dword [edi], eax
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 + 0x168]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 3
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0xfffffffc
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x2b0]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov esi, 4
mov dword [esp], edx
call fcn.00492770
test eax, eax
jne 0x500b6e
mov edi, 0xf
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x2e0], ebx
mov dword [esp + 0x2dc], ebx
jne 0x5048a0
jmp 0x505a03
mov dword [esp + 0x2dc], ebx
mov dword [edi], eax
mov ecx, dword [esi]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [esi], edx
mov ecx, dword [esp + 0x168]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 3
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0xfffffffc
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x2b0]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x500b62
mov esi, 0xd
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x178], eax
jne 0x501fed
jmp 0x4feff4
mov dword [esp + 0x178], eax
jmp 0x4feff4
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x178], eax
jmp 0x505a03
cmp ebx, 1
jne 0x500c80
mov bh, byte [esp + 0x19a]
movzx eax, bh
cmp eax, 0x12
jne 0x500d74
xor ecx, ecx
mov eax, 0x92
add eax, 0xffffff7c
mov edx, dword [esp + 0x11c]
lea edx, [edx + edx*2]
jmp 0x500c2a
mov bh, al
xor bh, 0x62
mov esi, ecx
not esi
and esi, 1
add esi, ecx
setne bl
movzx esi, bl
add ecx, esi
mov esi, dword [esp + 0x314]
mov esi, dword [esi]
mov edi, dword [esp + 0x2c4]
mov dword [esi + edx*8 + 0x14], edi
mov esi, ecx
or esi, 2
mov edi, ecx
xor edi, 2
add edi, esi
setne bl
movzx esi, bl
cmp ecx, esi
jb 0x500c00
mov byte [esp + 0x19a], bh
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x30c], ecx
cmp eax, 0xe
je 0x506590
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
jne 0x502694
jmp 0x50629a
cmp ebx, 7
jne 0x504024
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
je 0x504024
movzx ecx, byte [esp + 0xb3]
cmp ecx, 0x13
je 0x500db3
mov eax, 9
cmp ecx, 0x28
mov ecx, dword [esp + 0x2f4]
jne 0x500e3c
mov byte [esp + 0xb3], 0x13
mov esi, dword [esp + 0x414]
mov eax, dword [esp + 0x418]
mov dword [esp + 0x2c8], eax
mov eax, dword [ecx]
mov dword [esp + 0x170], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x500f0c
mov dword [esp + 0x1dc], esi
mov edx, 0x11
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0xbc], eax
not ecx
test ecx, ecx
jne 0x501310
jmp 0x500f1a
mov eax, dword [esp + 0x314]
mov eax, dword [eax]
mov ecx, dword [esp + 0x11c]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x2c4]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, 0x12
mov cl, 0x12
mov edx, dword [esp + 0x310]
mov dword [esp + 0x30c], edx
mov esi, dword [esp + 0x218]
jmp 0x50656f
mov esi, 0x1a
mov byte [esp + 0xb3], 0x29
mov edi, dword [esp + 0x414]
mov eax, dword [esp + 0x418]
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0x170], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x500fbb
mov dword [esp + 0xbc], eax
mov dword [esp + 0x1dc], edi
mov eax, 0xb
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x30c]
mov dword [esp + 0x310], ecx
je 0x4ff4a4
jmp 0x50239f
mov esi, dword [esp + 0x194]
mov ebx, dword [esp + 0xe4]
mov edi, dword [esp + 0x248]
cmp eax, 9
mov edx, dword [esp + 0x314]
je 0x500e89
xor eax, eax
test al, al
jne 0x500e89
movzx ecx, bl
cmp ecx, 0x59
je 0x4feb01
mov al, 0x77
mov dword [esp + 0xe4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0x194], eax
jmp 0x4feb22
mov dword [esp + 0x248], edi
mov dword [esp + 0x194], esi
mov byte [esp + 0xb3], 0x28
mov eax, dword [esp + 0x414]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x2c8], eax
mov eax, dword [ecx]
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x170], 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 + 0xbc], eax
test eax, eax
je 0x500f00
mov dword [esp + 0xe4], ebx
xor eax, eax
test al, al
je 0x500f1a
jmp 0x50119e
mov dword [esp + 0xe4], ebx
jmp 0x50119e
mov dword [esp + 0xbc], eax
mov dword [esp + 0x1dc], esi
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0x314]
mov dword [edi], edx
mov esi, dword [esp + 0x2f4]
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 + 0x170]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 5
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0xfffffffd
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 edx, dword [esp + 0x1dc]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov esi, 0xf
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x1a4], eax
test eax, eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
jne 0x501028
jmp 0x50119e
mov dword [esp + 0xbc], eax
mov dword [esp + 0x1dc], edi
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
jmp 0x50239f
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x2b0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x288]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.007c51d0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x500fe0
jmp 0x4fefa6
cmp esi, 0xf
jne 0x501070
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
mov eax, dword [esp + 0x2dc]
je 0x501083
mov edi, dword [esp + 0x1dc]
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp edi, eax
jne 0x50108f
mov eax, dword [esp + 0x314]
mov ebx, dword [esp + 0x1a4]
jmp 0x50112c
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
jmp 0x4fefba
mov dword [esp + 0x2e0], eax
jmp 0x4fefba
mov dl, 0x77
mov eax, 0xd
mov ecx, 8
movzx edx, dl
cmp edx, 0x77
jne 0x504155
xor esi, esi
cmp eax, 2
mov ebx, dword [esp + 0x1a4]
jne 0x501108
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x501108
mov dword [esp + 0x1dc], edi
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
jmp 0x50019a
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp + 8], edi
mov eax, dword [esp + 0x2c8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.007c51d0
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x5010e0
mov dword [esp + 0x1dc], edi
mov eax, dword [esp + 0x314]
mov dword [esp + 0x1a4], ebx
mov dword [esp + 0x314], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x170]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], ebx
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
jmp 0x50119e
mov eax, dword [esp + 0x418]
mov dword [esp], eax
call fcn.004936c0
lea esi, [esp + 0x328]
mov dword [esp + 0x328], 3
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x334], eax
lea eax, [esp + 0x39c]
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
mov edx, 0x7000002b
cmp eax, ecx
jne 0x5012d0
mov eax, dword [esp + 0x39c]
lea ecx, [esp + 0x398]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5012ea
mov byte [esp + 0x1c3], 0x31
xor eax, eax
lea ecx, [esp + 0x328]
mov dword [esp + 0x174], ecx
mov ecx, 0x81
xor ecx, 0xe1
mov edx, dword [ebp + 0x10]
lea edx, [edx + 0xc]
lea esi, [esp + 0x338]
jmp 0x5012ad
mov bh, cl
add bh, 0xe6
mov byte [esp + 0x25b], bh
mov bl, cl
add bl, 0xdb
mov byte [esp + 0x24f], bl
add bl, bh
xor bl, 0x9f
mov byte [esp + 0x22f], bl
add bl, 0x26
mov byte [esp + 0x23f], bl
mov edi, eax
not edi
and edi, 1
add edi, eax
setne bl
movzx edi, bl
add eax, edi
mov dword [esp + 0x234], edx
mov dword [esp + 0x240], esi
mov edi, eax
or edi, 2
mov ebx, eax
xor ebx, 2
add ebx, edi
setne bl
movzx edi, bl
cmp eax, edi
jb 0x501260
mov dword [esp + 0x1b8], 0x7000002b
jmp 0x50131e
mov dword [esp + 0x174], esi
mov ebx, dword [esp + 0x2e0]
mov ecx, dword [esp + 0x30c]
jmp 0x50200a
mov byte [esp + 0x1c3], 0x31
lea eax, [esp + 0x328]
mov dword [esp + 0x174], eax
mov edx, 3
mov dword [esp + 0x1b8], 0x7000002b
cmp edx, 3
jne 0x50119e
jmp 0x501b41
mov esi, 0xc
mov dword [esp + 0x324], 0
mov dword [esp + 0x320], 0
mov eax, dword [esp + 0x398]
test eax, eax
je 0x4ff13c
xor ecx, ecx
test cl, cl
jne 0x4ff13c
movzx ecx, byte [esp + 0x23f]
cmp ecx, 0x23
je 0x5013d0
cmp ecx, 0x44
je 0x50140f
cmp ecx, 0x72
jne 0x501487
mov ecx, 0xc
mov dword [esp + 0x2dc], 3
mov byte [esp + 0x23f], 0x44
mov esi, dword [esp + 0x234]
mov esi, dword [esi]
mov edi, dword [eax]
mov dword [esp + 0x84], edi
shr edi, 0x18
mov dword [esp + 0x134], edi
cmp dword [esi + 0x14], 0
mov edx, dword [esp + 0x264]
mov dword [esp + 0x310], edx
mov dword [esp + 0x208], eax
mov ebx, dword [esp + 0x244]
jne 0x5014cf
jmp 0x5032d9
mov esi, 0xf
mov byte [esp + 0x23f], 0x72
mov ecx, dword [esp + 0x234]
mov ecx, dword [ecx]
mov edx, dword [eax]
mov dword [esp + 0x84], edx
shr edx, 0x18
mov dword [esp + 0x134], edx
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x208], eax
jne 0x502f5f
jmp 0x501aed
mov byte [esp + 0x23f], 0x42
mov ecx, dword [esp + 0x234]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax]
mov dword [esp + 0x84], edx
shr edx, 0x18
mov dword [esp + 0x134], edx
test ecx, ecx
jne 0x5014c6
mov esi, 0xf
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
mov dword [esp + 0x208], eax
je 0x501502
cmp esi, 0xa
jne 0x50147b
mov ecx, esi
or ecx, 2
xor esi, 2
add esi, ecx
mov dword [esp + 0x208], eax
jne 0x50119e
mov dword [esp + 0x208], eax
jmp 0x501aed
mov ecx, 6
mov byte [esp + 0x23f], 0x23
mov edx, dword [esp + 0x234]
mov edx, dword [edx]
mov esi, dword [eax]
mov dword [esp + 0x84], esi
shr esi, 0x18
mov dword [esp + 0x134], esi
cmp dword [edx + 0x14], 0
mov dword [esp + 0x208], eax
jne 0x505e1f
jmp 0x501aed
mov dword [esp + 0x208], eax
jmp 0x501502
mov dword [esp + 0x244], ebx
cmp ecx, 0xc
je 0x501502
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x501502
mov al, 0xf
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x430]
mov dword [esp], eax
call fcn.004936c0
jmp 0x502e22
mov ecx, dword [esp + 0x134]
lea eax, [ecx - 1]
cmp eax, 2
jb 0x5015b3
mov edi, 0x10
cmp ecx, 4
je 0x501567
mov eax, 3
cmp ecx, 5
je 0x504df3
movzx eax, byte [esp + 0x22f]
cmp eax, 0x1a
je 0x50158d
cmp eax, 0x1e
jne 0x501597
mov byte [esp + 0x22f], 0x1a
mov eax, dword [esp + 0x84]
cmp eax, 0xffffffce
jne 0x501b10
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x5015b3
jmp 0x501b10
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
cmp edi, 0xb
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
jne 0x5015b3
jmp 0x5057e6
mov byte [esp + 0x22f], 0x58
jmp 0x50159f
mov byte [esp + 0x22f], 0x1e
cmp dword [esp + 0x84], 0xffffffce
je 0x5015b3
xor eax, eax
test al, al
je 0x501b10
mov ecx, 0xf
movzx eax, byte [esp + 0x24f]
cmp eax, 0x30
jne 0x501640
cmp ecx, 4
je 0x5019b5
xor eax, eax
test al, al
jne 0x5019c1
mov dword [esp + 0x248], edx
mov byte [esp + 0x24f], 0x3b
mov edx, dword [esp + 0x174]
mov dword [edx], 4
mov eax, dword [esp + 0x208]
mov eax, dword [eax]
mov ecx, dword [esp + 0x240]
mov dword [ecx], eax
lea eax, [esp + 0x320]
mov dword [esp + 8], eax
lea eax, [esp + 0x324]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00593400
test eax, eax
je 0x501701
mov ecx, 9
imul eax, eax
and eax, 3
cmp eax, 2
mov edi, dword [esp + 0x21c]
mov dl, byte [esp + 0x25b]
mov ebx, dword [esp + 0x2f4]
je 0x501716
mov dword [esp + 0x2f4], ebx
mov byte [esp + 0x25b], dl
mov dword [esp + 0x21c], edi
cmp ecx, 9
jne 0x4fea31
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne 0x501f39
jmp 0x4fea31
mov edi, dword [esp + 0x21c]
mov dl, byte [esp + 0x25b]
mov ebx, dword [esp + 0x2f4]
mov esi, 0x11
mov eax, dword [esp + 0x398]
mov ecx, 0xffffff
and ecx, dword [eax + 4]
mov eax, dword [esp + 0x324]
mov dword [esp + 0x254], eax
cmp ecx, dword [esp + 0x320]
jne 0x5017e8
mov byte [esp + 0x25b], dl
mov eax, ecx
or eax, 2
mov dword [esp + 0x18c], ecx
xor ecx, 2
add ecx, eax
je 0x5017ff
mov eax, dword [esp + 0x240]
mov eax, dword [eax]
mov dword [esp + 0xdc], eax
mov dword [esp], eax
call fcn.0068e2e0
mov dword [esp + 0xd8], eax
mov eax, dword [ebx]
mov dword [esp + 0x25c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5018b8
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
mov dword [esp + 0x19c], 0x70000003
test ecx, ecx
je 0x5018b8
mov dword [esp + 0x2f4], ebx
mov dword [esp + 0x21c], edi
mov dword [esp + 0xa8], eax
jmp 0x501d89
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x2f4], ebx
mov byte [esp + 0x25b], dl
jmp 0x501806
mov dword [esp + 0x2f4], ebx
mov dword [esp + 0x21c], edi
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
cmp esi, 2
je 0x5019cd
xor eax, eax
test al, al
mov ebx, dword [esp + 0x2dc]
jne 0x5007e5
xor esi, esi
mov edi, 0xffffffff
mov edx, dword [esp + 0x1b8]
jmp 0x50189b
inc esi
mov eax, dword [esp + 0x254]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x324], 0
mov eax, dword [esp + 0x39c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x39c], 0
dec edi
mov edx, 0x70000001
mov eax, esi
and eax, 1
xor eax, edi
setne al
movzx eax, al
cmp esi, eax
jb 0x501860
mov ecx, dword [esp + 0x310]
jmp 0x50200a
mov cl, byte [esp + 0x25b]
movzx ecx, cl
cmp ecx, 0x1e
mov edx, dword [esp + 0x218]
je 0x5019d9
mov dword [esp + 0x21c], edi
mov edx, eax
cmp ecx, 0x46
jne 0x501a0a
mov ecx, dword [esp + 0xdc]
mov eax, ecx
shr eax, 0x18
mov dword [esp + 0x310], eax
and ecx, 0xffffff
mov dword [esp + 0x2dc], ecx
mov ecx, edx
mov dword [esp + 0xa8], ecx
mov edi, dword [esp + 0x314]
mov dword [edi], ecx
mov edx, dword [ebx]
mov esi, edx
and esi, 1
xor esi, edx
cmp esi, 0xffffffff
mov eax, ebx
mov dword [esp + 0x2f4], eax
setne bl
movzx esi, bl
add esi, edx
mov dword [eax], esi
mov edx, dword [esp + 0x25c]
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0xd8]
mov dword [ecx + edx], esi
mov esi, dword [edi]
mov eax, dword [esp + 0x2dc]
mov dword [esi + edx + 4], eax
mov ecx, dword [edi]
mov eax, dword [esp + 0x310]
mov byte [ecx + edx + 8], al
mov eax, dword [edi]
mov dword [eax + edx + 0xc], 0
mov eax, dword [edi]
mov ecx, dword [esp + 0x18c]
mov dword [eax + edx + 0x10], ecx
mov eax, dword [edi]
mov dword [eax + edx + 0x14], 0
mov byte [esp + 0x25b], 0x59
mov dword [esp], ecx
call fcn.00492770
mov esi, eax
mov dword [esp + 0x19c], 0x70000003
test esi, esi
jne 0x501e56
jmp 0x501d89
mov dword [esp + 0x248], edx
jmp 0x50620e
mov dword [esp + 0x248], edx
jmp 0x50620e
mov ebx, dword [esp + 0x2dc]
jmp 0x5007e5
mov dword [esp + 0x2f4], ebx
mov dword [esp + 0x21c], edi
mov dword [esp + 0xa8], eax
mov dword [esp + 0x19c], 0x70000003
mov eax, 5
mov edi, dword [esp + 0x250]
jmp 0x505fec
mov ecx, dword [esp + 0xdc]
mov eax, ecx
shr eax, 0x18
mov dword [esp + 0x310], eax
and ecx, 0xffffff
mov dword [esp + 0x2dc], ecx
mov ecx, edx
mov dword [esp + 0xa8], ecx
mov edi, dword [esp + 0x314]
mov dword [edi], ecx
mov edx, dword [ebx]
mov esi, edx
not esi
and esi, 1
add esi, edx
mov eax, ebx
mov dword [esp + 0x2f4], eax
setne bl
movzx esi, bl
add esi, edx
mov dword [eax], esi
mov edx, dword [esp + 0x25c]
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0xd8]
mov dword [ecx + edx], esi
mov esi, dword [edi]
mov eax, dword [esp + 0x2dc]
mov dword [esi + edx + 4], eax
mov ecx, dword [edi]
mov eax, dword [esp + 0x310]
mov byte [ecx + edx + 8], al
mov eax, dword [edi]
mov dword [eax + edx + 0xc], 0
mov eax, dword [edi]
mov ecx, dword [esp + 0x18c]
mov dword [eax + edx + 0x10], ecx
mov eax, dword [edi]
mov dword [eax + edx + 0x14], 0
mov edi, 2
mov byte [esp + 0x25b], 0x1e
mov dword [esp], ecx
call fcn.00492770
mov esi, eax
test esi, esi
mov dword [esp + 0x19c], 0x70000003
je 0x501cf3
mov eax, esi
and eax, 1
inc eax
xor eax, esi
jne 0x501e56
jmp 0x501cf3
mov edx, 0x17
mov ecx, dword [esp + 0x134]
cmp ecx, 2
je 0x502a72
mov eax, 3
cmp ecx, 5
je 0x504adf
mov eax, dword [esp + 0x39c]
lea ecx, [esp + 0x398]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
test eax, eax
je 0x50131e
imul eax, eax
and eax, 3
cmp eax, 2
je 0x50131e
movzx eax, byte [esp + 0x1c3]
cmp eax, 0xb
jne 0x501bf4
mov esi, 0xa
mov bh, 0x31
mov byte [esp + 0x2ab], 0x54
mov bl, 0x2b
mov eax, dword [esp + 0x39c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x39c], 0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x420], 0
mov dword [esp + 0x41c], 0
mov ecx, dword [esp + 0x214]
mov dword [ecx], 4
mov ecx, dword [esp + 0x1fc]
mov dword [ecx], 2
mov ecx, dword [esp + 0x250]
mov edx, dword [esp + 0x1f8]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1f4]
mov dword [ecx], eax
test eax, eax
mov eax, dword [esp + 0x1f0]
mov dword [eax], 0xfffffff9
jne 0x501c97
mov byte [esp + 0x1c3], 0x31
mov edi, dword [esp + 0x314]
jmp 0x50256f
mov bh, 0xb
mov byte [esp + 0x2ab], 0x54
mov bl, 0x2b
mov eax, dword [esp + 0x39c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x39c], 0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x420], 0
mov dword [esp + 0x41c], 0
mov ecx, dword [esp + 0x214]
mov dword [ecx], 4
mov ecx, dword [esp + 0x1fc]
mov dword [ecx], 2
mov ecx, dword [esp + 0x250]
mov edx, dword [esp + 0x1f8]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1f4]
mov dword [ecx], eax
mov eax, dword [esp + 0x1f0]
mov dword [eax], 0xfffffff9
jne 0x501c97
mov byte [esp + 0x1c3], 0xb
jmp 0x5060a3
mov edi, 5
movzx eax, bl
cmp eax, 0x45
je 0x501d63
mov byte [esp + 0x1c3], bh
cmp eax, 0x78
jne 0x501cf3
mov edi, 0xc
mov byte [esp + 0x153], 0x36
lea eax, [esp + 0x41c]
mov dword [esp + 8], eax
lea eax, [esp + 0x420]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x214]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x502ee6
jmp 0x50620e
cmp edi, 2
je 0x501d89
mov esi, 8
mov byte [esp + 0x153], 0x36
lea eax, [esp + 0x41c]
mov dword [esp + 8], eax
lea eax, [esp + 0x420]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x214]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x501d6f
mov ecx, 4
mov edx, eax
or edx, 2
xor eax, 2
add eax, edx
mov edx, dword [esp + 0x248]
mov ebx, edx
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
jne 0x501647
jmp 0x503c27
mov byte [esp + 0x1c3], bh
jmp 0x506ee4
mov ebx, dword [esp + 0x248]
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
jmp 0x503c27
mov esi, 3
mov eax, dword [esp + 0x324]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x324], 0
mov ecx, dword [esp + 0x19c]
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
je 0x501b10
cmp esi, 3
jne 0x501e2c
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x501e2c
mov eax, dword [esp + 0x39c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x39c], 0
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0x310]
mov ebx, dword [esp + 0x2dc]
jmp 0x50200a
mov eax, dword [esp + 0x100]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x268]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x274]
mov dword [esp], eax
call fcn.007c51d0
jmp 0x50222f
mov ecx, dword [esp + 0x18c]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
mov dword [esp + 0x19c], 0
cmp ecx, eax
mov eax, 0
je 0x501ee4
mov eax, dword [esp + 0x18c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.007c51d0
xor eax, eax
jmp 0x501ee4
mov ecx, 0xb2
add ecx, 0xffffff55
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add eax, edx
mov edx, dword [esp + 0x314]
mov edx, dword [edx]
mov edi, dword [esp + 0x25c]
lea edi, [edi + edi*2]
mov dword [edx + edi*8 + 0x14], esi
mov edx, 3
sub edx, eax
xor edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jb 0x501eb0
mov edi, dword [esp + 0x21c]
mov dl, byte [esp + 0x25b]
mov ebx, dword [esp + 0x2f4]
cmp ecx, 7
je 0x50202b
mov dword [esp + 0x2f4], ebx
mov byte [esp + 0x25b], dl
mov dword [esp + 0x21c], edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x501d89
mov esi, 6
mov eax, dword [esp + 0x39c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x39c], 0
mov edx, 0x7000000a
mov ecx, dword [esp + 0x30c]
mov ebx, dword [esp + 0x2e0]
cmp esi, 6
je 0x50200a
xor eax, eax
test al, al
jne 0x50200a
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x310], ecx
mov dword [esp + 0x1b8], edx
xor edi, edi
mov esi, 0xcf
add esi, 0xffffff44
mov ebx, dword [esp + 0x100]
jmp 0x501fd9
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x268]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x274]
mov dword [esp], eax
call fcn.007c51d0
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x501fb0
cmp esi, 0xd
je 0x506aac
imul esi, esi
and esi, 3
cmp esi, 2
jne 0x50222f
jmp 0x506aac
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x2e0], ebx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x2f8], edx
jmp 0x5057e6
mov dword [esp + 0x2f4], ebx
mov byte [esp + 0x25b], dl
mov dword [esp + 0x21c], edi
jmp 0x501d89
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x50623b
mov byte [esp + 0x153], 6
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x268], eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0x148], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5020c1
mov esi, 0xc
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x505972
mov ebx, dword [esp + 0x314]
mov dword [ebx], eax
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esi]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [esi], ecx
mov ecx, dword [esp + 0x148]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x22
mov eax, dword [ebx]
mov dword [eax + ecx + 4], 0xfffffff9
mov eax, dword [ebx]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [ebx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [ebx]
mov edi, dword [esp + 0x100]
mov dword [eax + ecx + 0x10], edi
mov eax, dword [ebx]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edi
call fcn.00492770
mov dword [esp + 0x274], eax
test eax, eax
je 0x5060a3
mov eax, 6
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edi, ecx
jne 0x502171
mov edi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x21c]
jmp 0x5035c5
mov al, 0x10
mov esi, 0xe
movzx eax, al
cmp eax, 0x47
je 0x5021a4
mov esi, 7
cmp eax, 0x66
jne 0x5021c5
mov ecx, dword [esp + 0x30c]
mov ebx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x1b8]
jmp 0x501f6b
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
jmp 0x501de8
xor esi, esi
jmp 0x5021ff
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp + 8], edi
mov eax, dword [esp + 0x268]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x274]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x5021d0
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov edx, dword [esp + 0x314]
mov eax, dword [edx]
mov ecx, dword [esp + 0x148]
lea ecx, [ecx + ecx*2]
mov esi, dword [esp + 0x274]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, 0x14
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x30c], ecx
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], ecx
cmp eax, 0xc
jne 0x50228e
mov dword [esp + 0x314], edx
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x5057e6
jmp 0x5060a3
mov dword [esp + 0x314], edx
jmp 0x5060a3
mov cl, bl
add cl, 0x1e
mov byte [esp + 0x2ab], cl
cmp eax, 2
adc edi, 0
mov eax, dword [esp + 0x420]
mov dword [esp], eax
call fcn.004936c0
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sbb ecx, ecx
and ecx, 1
cmp edi, ecx
jb 0x5022a0
mov ebx, dword [esp + 0x30c]
mov edi, dword [esp + 0x260]
jmp 0x5045aa
mov eax, 3
sub eax, esi
xor eax, esi
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
je 0x5060a3
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x314]
mov dword [edi], edx
mov esi, dword [esp + 0x2f4]
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 + 0x11c]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x23
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 1
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 edx, dword [esp + 0xcc]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x5023ea
mov esi, 0xf
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x2c4], eax
je 0x50629a
cmp esi, 0xf
jne 0x5023d7
mov esi, 0xc
mov byte [esp + 0x19a], 0x6c
mov al, 0x3c
mov dword [esp + 0x154], eax
mov ecx, dword [esp + 0xcc]
test ecx, ecx
jne 0x5023f6
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
jne 0x500bc6
jmp 0x5023f6
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
jmp 0x50119e
mov dword [esp + 0x2c4], eax
jmp 0x50629a
cmp esi, 0xa
jne 0x50241a
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
je 0x50241a
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
jmp 0x5057e6
mov ebx, 1
mov eax, dword [esp + 0x154]
movzx eax, al
cmp eax, 0x14
mov ecx, dword [esp + 0x310]
je 0x50246d
cmp eax, 0x1c
mov ebx, dword [esp + 0x9c]
jne 0x502479
mov al, 0x14
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x2c4]
mov dword [esp], eax
call fcn.007c51d0
jmp 0x500bc6
mov dword [esp + 0x30c], ecx
jmp 0x500b81
xor esi, esi
mov edi, dword [esp + 0xcc]
jmp 0x5024b6
mov eax, 0xa1
add al, 0x9b
mov dword [esp + 0x154], eax
inc esi
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x2c4]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x502490
jmp 0x500bc6
mov bl, 0x6d
mov eax, dword [esp + 0x428]
mov dword [esp], eax
call fcn.004936c0
mov edx, dword [edi]
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov edi, 0x11
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x502593
mov dword [esp + 0x138], edx
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
je 0x50259a
mov al, 0x36
mov esi, 1
movzx ecx, al
cmp ecx, 0x33
je 0x5025da
mov eax, 7
cmp ecx, 0x40
jne 0x502620
mov eax, 0x1b
mov ecx, dword [esp + 0x138]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x502771
mov dword [esp + 0x1e0], ebx
mov esi, 9
mov edx, ecx
not edx
and edx, 1
add edx, ecx
mov edi, dword [esp + 0x314]
je 0x505652
cmp esi, 9
je 0x50268d
mov dword [esp + 0x314], edi
imul esi, esi
and esi, 3
cmp esi, 2
jne 0x5060a3
mov dword [esp + 0x138], edx
mov dword [esp + 0x1e0], ebx
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x2dc], eax
cmp edi, 0xd
je 0x502667
imul edi, edi
and edi, 3
cmp edi, 2
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x30c], eax
jne 0x502e22
jmp 0x504a6c
mov dword [esp + 0x1e0], ebx
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jne 0x4ffc8a
mov eax, dword [esp + 0x138]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x502694
mov eax, 0x16
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
jne 0x504fb3
jmp 0x502694
mov dword [esp + 0x1e0], ebx
mov ecx, dword [esp + 0x314]
mov edx, dword [esp + 0x138]
cmp eax, 7
jne 0x50267a
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x50267a
mov dword [esp + 0x314], ecx
mov eax, 0x1e
cmp dword [edx + 0x14], 0
mov dword [esp + 0x138], edx
jne 0x502e22
jmp 0x500c55
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x30c], eax
jmp 0x504a6c
mov dword [esp + 0x138], edx
mov dword [esp + 0x314], ecx
jmp 0x503705
mov dword [esp + 0x314], edi
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
test eax, eax
mov edi, dword [esp + 0x250]
je 0x50277d
lea ecx, [esp + 0x33c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], 0x3e
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00524b40
test eax, eax
jne 0x502746
cmp dword [esp + 0x33c], 0
jne 0x502752
mov dword [esp + 0x2f8], eax
jmp 0x5057e6
mov dword [esp + 0x1e0], ebx
jmp 0x50564b
mov dword [esp + 0x430], 0
mov dword [esp + 0x42c], 0
mov dword [esp + 0x3f8], 4
mov dword [esp + 0x3fc], 2
mov dword [esp + 0x400], edi
mov dword [esp + 0x404], 0
mov dword [esp + 0x408], 2
lea eax, [esp + 0x42c]
mov dword [esp + 8], eax
lea eax, [esp + 0x430]
mov dword [esp + 4], eax
lea eax, [esp + 0x3f8]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x502a47
mov cl, 0x11
mov eax, 0xe
movzx ecx, cl
cmp ecx, 0x11
je 0x50289b
cmp ecx, 0x39
jne 0x502945
mov esi, 4
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0x14c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x502bc5
mov cl, 0xf
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x250], edi
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x5029b6
jmp 0x506125
mov cl, 0xf
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x250], edi
mov ebx, dword [esp + 0x2f4]
cmp eax, 5
jne 0x5028c3
mov dword [esp + 0x2f4], ebx
jmp 0x5057e6
mov esi, 0xe
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0xd4], eax
mov eax, dword [ebx]
mov dword [esp + 0x2f4], ebx
mov dword [esp + 0x14c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5029b6
cmp esi, 0xe
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
jne 0x5003b6
jmp 0x506142
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0x14c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x502a47
mov cl, 0xf
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x250], edi
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x506142
mov edi, dword [esp + 0x314]
mov dword [edi], eax
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esi]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [esi], ecx
mov ecx, dword [esp + 0x14c]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 6
mov eax, dword [edi]
mov dword [eax + ecx + 4], 2
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x190]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edx
call fcn.00492770
test eax, eax
jne 0x502a5c
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x502a5c
mov dword [esp + 0xf4], eax
jmp 0x506142
mov al, 0xf
mov dword [esp + 0x20c], eax
mov dword [esp + 0x250], edi
jmp 0x506142
mov cl, 0x7b
mov edx, 0xf
movzx ecx, cl
cmp ecx, 0x4f
jne 0x502a9d
mov dword [esp + 0xf4], eax
cmp edx, 0xf
jne 0x5015b3
mov ecx, dword [esp + 0x190]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
je 0x502b35
jmp 0x502ab2
mov dword [esp + 0xf4], eax
cmp dword [esp + 0x190], 0
je 0x502b35
mov esi, 2
mov eax, dword [esp + 0x190]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
call fcn.007c51d0
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov ecx, dword [esp + 0x30c]
mov ebx, dword [esp + 0x1e8]
cmp esi, 2
jne 0x502bb2
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x310], ecx
mov dword [esp + 0x1e8], ebx
je 0x505ec6
xor eax, eax
mov ebx, 0xcd
add ebx, 0xffffff3f
mov ecx, dword [esp + 0x14c]
lea ecx, [ecx + ecx*2]
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x314]
jmp 0x502b67
inc eax
mov edx, dword [edi]
mov dword [edx + ecx*8 + 0x14], esi
mov edx, eax
not edx
and edx, 1
add edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jb 0x502b60
cmp ebx, 0xc
je 0x506142
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
jne 0x4ff863
jmp 0x506142
mov dword [esp + 0x310], ecx
mov dword [esp + 0x1e8], ebx
jmp 0x505ec6
mov al, 0xf
mov dword [esp + 0x20c], eax
mov dword [esp + 0x250], edi
jmp 0x506125
cmp ecx, 0x46
jne 0x502ca0
mov byte [esp + 0x1af], 3
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x314]
mov dword [edi], edx
mov esi, dword [esp + 0x2f4]
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 + 0x184]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x38
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 dword [esp], 8
call fcn.00492770
test eax, eax
je 0x502d4b
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0x17c], eax
mov byte [esp + 0x15f], 0x43
mov eax, 0x1c
xor ecx, ecx
test cl, cl
je 0x50647d
jmp 0x5057e6
mov byte [esp + 0x1af], 3
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x314]
mov dword [edx], ecx
mov eax, dword [esp + 0x2f4]
inc dword [eax]
mov eax, dword [esp + 0x184]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0x38
mov ecx, dword [edx]
mov dword [ecx + eax + 4], 0
mov ecx, dword [edx]
mov byte [ecx + eax + 8], 0
mov ecx, dword [edx]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edx]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [edx]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
test eax, eax
jne 0x502d6a
mov dword [esp + 0x2f8], 0x70000003
mov byte [esp + 0x15f], 0x19
mov edi, 0x14
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x17c], eax
jne 0x505ad1
jmp 0x506491
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0x17c], eax
mov byte [esp + 0x15f], 0x43
jmp 0x5057e6
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0x17c], eax
mov byte [esp + 0x15f], 0x19
jmp 0x506491
mov byte [esp + 0x19a], cl
mov byte [esp + 0x1af], 3
lea eax, [esp + 0x390]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x17c]
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x314]
mov eax, dword [eax]
mov ecx, dword [esp + 0x184]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x390]
mov ecx, dword [esp + 0x394]
mov edx, dword [esi]
mov dword [esp + 0x218], esi
jmp 0x50650e
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx eax, al
add ecx, eax
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
test ecx, ecx
jne 0x50277d
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne 0x502df0
jmp 0x50277d
mov esi, dword [esp + 0x2f4]
mov ebx, dword [esi]
lea eax, [ebx + ebx*2]
lea eax, [eax*8 + 0x18]
mov edi, dword [esp + 0x314]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x503001
mov dword [edi], eax
mov ecx, dword [esi]
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add edx, ecx
mov dword [esi], edx
lea ecx, [ebx*8]
mov dword [esp + 0xe0], ebx
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 8
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 [ebp + 0x18]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov esi, 0xe
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x204], eax
test eax, eax
mov dword [esp + 0x2f8], 0x70000003
je 0x503029
mov edi, 0x1c
xor eax, eax
test al, al
jne 0x503029
cmp edi, 0xc
je 0x5060a3
xor ebx, ebx
test bl, bl
jne 0x5060a3
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x502f73
imul eax, eax
and eax, 3
cmp eax, 3
je 0x502f73
mov edi, dword [ebp + 0x14]
mov esi, 0xe2
add esi, 0xffffff28
jmp 0x502f4c
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
add ebx, eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x204]
mov dword [esp], eax
call fcn.007c51d0
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
cmp ebx, eax
jb 0x502f20
cmp esi, 0xa
je 0x502f73
imul esi, esi
and esi, 3
cmp esi, 2
jne 0x501502
mov esi, 0xd
mov eax, dword [esp + 0x314]
mov eax, dword [eax]
mov ecx, dword [esp + 0xe0]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x204]
mov dword [eax + ecx*8 + 0x14], edx
lea eax, [esp + 0x3e0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00572ee0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x503018
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
jmp 0x50521e
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0xe0], ebx
jmp 0x5057e6
mov dword [esp + 0x2f8], eax
mov esi, 0xe
jmp 0x505718
cmp esi, 0xe
jne 0x50303d
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x5057e6
mov byte [esp + 0x29b], 0x35
imul eax, dword [esp + 0x220], 0x1c
mov ecx, dword [esp + 0x2fc]
mov eax, dword [ecx + eax + 0x18]
movsd xmm0, qword [eax]
movsd qword [esp + 0x390], xmm0
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
jmp 0x50495e
mov esi, 9
lea eax, [esp + 0x3dc]
mov dword [esp + 8], eax
lea eax, [esp + 0x3e0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x250]
mov dword [esp], eax
call fcn.0059a8d0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x503102
mov dword [esp + 0x2f8], eax
mov edx, dword [esp + 0x3dc]
mov eax, dword [edx + 4]
test eax, eax
jne 0x503123
mov dword [esp + 0x224], eax
mov dword [esp + 0x2d4], edx
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov edx, dword [esp + 0x248]
jmp 0x50326f
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], ecx
mov edi, dword [esp + 0x244]
mov ecx, dword [esp + 0x2f4]
jmp 0x505d17
mov dword [esp + 0x224], eax
mov cl, 0x1b
mov eax, 0xb
movzx ecx, cl
cmp ecx, 0x1b
mov ecx, dword [esp + 0x248]
mov esi, dword [esp + 0x2dc]
jne 0x50317d
mov al, 5
mov dword [esp + 0x1a8], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x2d4], edx
mov dword [esp + 0x1d8], eax
xor ebx, ebx
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
mov dword [esp + 0x2e0], esi
jmp 0x503de0
mov dword [esp + 0x2d4], edx
mov ebx, ecx
mov ecx, dword [esp + 0x264]
mov dword [esp + 0x310], ecx
mov dword [esp + 0x2e0], esi
jmp 0x503d08
mov al, 5
mov dword [esp + 0x1a8], eax
imul eax, ebx, 0x1c
mov ecx, dword [esp + 0x1d8]
mov eax, dword [ecx + eax + 4]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jne 0x503230
imul eax, ebx, 0x1c
mov edx, dword [esp + 0x1d8]
cmp dword [edx + eax + 0x14], 4
jne 0x503204
mov ecx, 0x18
mov eax, dword [edx + eax + 0x18]
mov dword [esp + 0x2f8], 0
cmp dword [eax], 0
mov edx, ebx
mov dword [esp + 0x120], ebx
jne 0x506cbd
jmp 0x50326f
mov dword [esp + 0x2f8], 0x30000003
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov dword [esp + 0x248], ebx
mov dword [esp + 0x120], ebx
jmp 0x5057e6
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx edx, al
add edx, ebx
mov eax, dword [esp + 0x224]
cmp edx, eax
jae 0x503268
mov eax, edx
and eax, 1
xor eax, edx
not eax
test eax, eax
mov dword [esp + 0x120], ebx
mov ebx, edx
jne 0x503de0
jmp 0x50326f
mov dword [esp + 0x120], ebx
mov dword [esp + 0x248], edx
mov edx, dword [esp + 0x160]
test edx, edx
setne al
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
setne cl
test byte [esp + 0x83], 1
mov ebx, dword [esp + 0x244]
mov esi, dword [esp + 0x2d4]
mov edx, dword [esp + 0x224]
mov edi, dword [esp + 0x300]
jne 0x50336e
mov dword [esp + 0x2dc], 0x11
and al, cl
mov dword [esp + 0x140], esi
mov dword [esp + 0x13c], edx
jne 0x5037f7
cmp dword [esp + 0x2dc], 3
jne 0x5032fd
mov dword [esp + 0x244], ebx
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
jmp 0x501aed
mov eax, dword [esp + 0x238]
mov eax, dword [eax]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x503381
mov edx, ecx
not edx
and edx, 1
add edx, ecx
je 0x503381
mov cl, 0x38
movzx ecx, cl
cmp ecx, 0x41
mov edi, dword [esp + 0x300]
jne 0x50338a
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x5033f8
mov byte [esp + 0x6d], 0x6b
mov esi, 0x15
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x224]
mov dword [esp + 0x13c], eax
jne 0x50634f
jmp 0x5037f7
mov dword [esp + 0x140], esi
mov dword [esp + 0x13c], edx
jmp 0x5037f7
mov edi, dword [esp + 0x300]
jmp 0x5033fd
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x5033f8
mov byte [esp + 0x6d], 0x6b
mov edx, 0xa
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x224]
mov dword [esp + 0x13c], eax
je 0x5037f7
mov dword [esp + 0x244], ebx
cmp edx, 0xa
jne 0x504c19
mov eax, edx
not eax
and eax, 1
add eax, edx
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
jne 0x50636d
jmp 0x504c19
mov byte [esp + 0x6d], 0x6b
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x224]
mov dword [esp + 0x13c], eax
jmp 0x5037f7
mov dword [esp + 0x3f8], 4
mov dword [esp + 0x3fc], 2
mov eax, dword [esp + 0x60]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x404], eax
mov dword [esp + 0x408], 0xfffffffe
lea eax, [esp + 0x440]
mov dword [esp + 8], eax
lea eax, [esp + 0x444]
mov dword [esp + 4], eax
lea eax, [esp + 0x3f8]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x503485
mov byte [esp + 0x6e], 0x26
jmp 0x503496
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x6e], 0x26
jmp 0x5036fa
mov ebx, dword [esp + 0x21c]
mov dword [esp + 4], 0x1c
mov dword [esp], 1
call fcn.00493840
mov dword [esp + 0x1d4], 0x70000003
test eax, eax
jne 0x5034e8
mov edx, eax
or edx, 2
mov ecx, eax
xor ecx, 2
add ecx, edx
je 0x5034e8
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x304], eax
mov dword [esp + 0x2b4], eax
jmp 0x503705
mov cl, 0x50
movzx ecx, cl
cmp ecx, 0x73
jne 0x503542
mov dword [eax], 0xfffffffe
mov ecx, dword [esp + 0x440]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x444]
mov dword [eax + 4], ecx
mov dword [esp + 0x2b4], eax
mov dword [esp + 4], 8
mov dword [esp], 1
call fcn.00493840
mov edi, eax
test edi, edi
je 0x503663
mov al, 0x5b
mov ecx, edi
and ecx, 1
inc ecx
xor ecx, edi
jne 0x50358d
jmp 0x503663
mov dword [eax], 0xfffffffe
mov ecx, dword [esp + 0x440]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x444]
mov dword [eax + 4], ecx
mov dword [esp + 0x2b4], eax
mov dword [esp + 4], 8
mov dword [esp], 1
call fcn.00493840
mov edi, eax
test edi, edi
je 0x503663
mov al, 0x5b
xor ecx, ecx
test cl, cl
jne 0x503663
movzx edx, al
cmp edx, 0x49
je 0x503684
mov ecx, 6
mov dword [esp + 0x1d4], 0x70000003
mov eax, 0x10
cmp edx, 0x61
mov edx, dword [esp + 0x2b4]
mov dword [esp + 0x304], edx
jne 0x4ff7d6
mov dword [esp + 0x1b0], edi
xor esi, esi
cmp eax, 6
jne 0x5035ea
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x5035ea
mov dword [esp + 0x21c], ebx
jmp 0x502213
mov edx, dword [esp + 0x308]
mov edi, dword [esp + 0x1b0]
jmp 0x50362d
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov ecx, dword [esp + 0x2b4]
lea eax, [ecx + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.007c5200
xor edx, edx
mov dword [esp + 0x2cc], edi
mov eax, 3
sub eax, esi
mov ecx, esi
xor ecx, eax
setne cl
movzx ecx, cl
cmp esi, ecx
jb 0x503600
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x308], edx
mov edi, dword [esp + 0x2d4]
jmp 0x503780
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x1b0], edi
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x304], eax
jmp 0x503705
mov dword [esp + 0x21c], ebx
mov esi, 0xc
mov ebx, dword [esp + 0x2b4]
mov eax, ebx
add eax, 0xc
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.007c5200
mov dword [esp + 0x1d4], 0x70000003
mov dword [esp + 0x308], 0
mov dword [esp + 0x2cc], edi
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x304], ebx
cmp esi, 7
mov ebx, dword [esp + 0x2f4]
mov edi, dword [esp + 0x314]
je 0x4ff211
mov edi, dword [esp + 0x2d4]
jmp 0x503780
mov dword [esp + 0x304], 0
xor esi, esi
mov eax, dword [esp + 0x308]
mov edx, dword [esp + 0x2cc]
mov edi, dword [esp + 0x2d4]
mov ebx, dword [esp + 0x1d4]
jmp 0x503761
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x444]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x304]
mov dword [esp], eax
call fcn.004936c0
mov edx, dword [esp + 0x300]
mov eax, ebx
mov dword [esp + 0x308], eax
test esi, esi
jne 0x503779
mov eax, 3
sub eax, esi
mov ecx, esi
xor ecx, eax
jne 0x503730
mov dword [esp + 0x2cc], edx
mov edx, dword [esp + 0x224]
mov ecx, dword [esp + 0x308]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x503885
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], edi
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x2cc]
mov dword [eax], edx
mov eax, dword [esp + 0x3dc]
mov dword [esp + 0x2d4], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x224], eax
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
mov edi, edx
mov dword [esp + 0x2f8], ecx
mov ebx, dword [esp + 0x244]
mov esi, 6
mov byte [esp + 0x1cf], 0x50
mov eax, dword [esp + 0x238]
mov eax, dword [eax]
mov dword [esp + 0x200], eax
cmp dword [eax + 0x14], 0
sete cl
movzx eax, cl
mov edx, 3
sub edx, eax
xor edx, eax
mov dl, cl
setne al
xor al, dl
movzx eax, al
mov dword [esp + 0x1d0], eax
xor ecx, ecx
cmp dword [esp + 0x224], 0
jne 0x50389f
mov byte [esp + 0x18b], dl
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov dword [esp + 0x1b4], 0
mov eax, dword [esp + 0x140]
mov dword [esp + 0x2d4], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x224], eax
jmp 0x4ffcc2
mov dword [esp + 0x2d4], edi
mov dword [esp + 0x224], edx
mov dword [esp + 0x2f8], ecx
jmp 0x5057e6
mov byte [esp + 0x18b], dl
mov dword [esp + 0x244], ebx
mov eax, 0x57
lea edx, [eax - 0x45]
xor eax, edx
mov esi, dword [esp + 0x218]
lea esi, [esi + 0x1ac]
jmp 0x50394c
mov bl, al
add bl, 0xf
mov byte [esp + 0x2c3], bl
mov bl, al
add bl, 0xfe
mov dword [esp + 0x2a4], ebx
mov byte [esp + 0x28f], 0x66
mov bl, 0x45
mov dword [esp + 0x2d8], ebx
mov byte [esp + 0x29b], 0xc
mov byte [esp + 0x28e], 0x18
mov ebx, 3
sub ebx, ecx
xor ebx, ecx
setne bl
movzx ebx, bl
add ecx, ebx
mov dword [esp + 0x310], 0
mov ebx, dword [esp + 0x2d4]
mov dword [esp + 0x2b8], ebx
mov dword [esp + 0x2bc], 0
mov dword [esp + 0x29c], esi
mov dword [esp + 0x2a0], edi
mov ebx, ecx
not ebx
and ebx, 1
add ebx, ecx
setne bl
movzx ebx, bl
cmp ecx, ebx
jb 0x5038d0
mov dword [esp + 0x1b4], 0
mov eax, dword [esp + 0x248]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x2d4], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x224], eax
mov esi, dword [esp + 0x194]
mov ecx, dword [esp + 0x2f4]
mov ebx, dword [esp + 0xe4]
jmp 0x4fea88
mov byte [esp + 0xa3], 0xa
mov dword [esp + 0x440], 0x1c
mov dword [esp + 4], 1
mov dword [esp], 0x1c
call fcn.00493840
mov dword [esp + 0x444], eax
test eax, eax
jne 0x503a16
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x503a16
mov dword [esp + 0xa4], eax
mov eax, 0xd
mov dword [esp + 0x304], 0
mov dword [esp + 0x1d4], 0x70000003
jmp 0x502627
mov dword [esp + 0xa4], eax
xor esi, esi
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0x21c]
jmp 0x503b12
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 + 0x43c], 0x636f6964
mov dword [esp + 0x434], 1
mov eax, dword [esp + 0x2ec]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x444]
add eax, 4
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x444]
add eax, 0xc
mov ecx, dword [esp + 0x2e8]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x444]
add eax, 0x10
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x444]
add eax, 0x14
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
test esi, esi
je 0x503a40
jmp 0x50349d
mov dl, 6
mov dword [esp + 0x12c], edx
mov dword [esp + 0x2b8], eax
mov edx, 0xd
mov eax, ecx
mov dword [esp + 0x2bc], ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x248]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0xf0], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x2e0], eax
mov edi, dword [esp + 0x314]
jne 0x4ff4cc
mov eax, dword [esp + 0x2b8]
mov eax, dword [eax + 8]
mov dword [esp + 0x2fc], eax
mov ebx, dword [esp + 0x2bc]
imul edx, ebx, 0x1c
mov ecx, dword [eax + edx + 4]
cmp ecx, 1
je 0x503c5b
cmp ecx, 0x10
je 0x503c91
mov eax, 6
cmp ecx, 0x33
jne 0x503e4b
movzx eax, byte [esp + 0x28f]
cmp eax, 0x66
jne 0x503eb8
mov dword [esp + 0x124], ecx
mov dword [esp + 0x314], edi
mov eax, 0x10
mov esi, 0x17
mov byte [esp + 0x28f], 0x66
mov ecx, dword [esp + 0x2fc]
mov ecx, dword [ecx + edx]
mov dword [esp + 0x74], ecx
cmp ecx, 1
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x220], ebx
mov ebx, dword [esp + 0x2dc]
jne 0x506b76
cmp esi, 8
jne 0x503f29
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov dword [esp + 0x248], ebx
jne 0x5060a3
jmp 0x503f29
mov dword [esp + 0x124], ecx
mov dword [esp + 0x314], edi
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x220], ebx
jmp 0x50495e
mov esi, 0xc
mov al, byte [esp + 0x28e]
movzx eax, al
cmp eax, 0x18
jne 0x503fda
mov dword [esp + 0x124], ecx
mov dword [esp + 0x314], edi
mov eax, 0x18
mov byte [esp + 0x28e], 0xb
mov ecx, dword [esp + 0x2fc]
mov ecx, dword [ecx + edx]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
cmp ecx, edx
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x220], ebx
mov ebx, dword [esp + 0x2dc]
jne 0x504338
xor ecx, ecx
cmp eax, 0xb
mov esi, dword [esp + 0x1d8]
mov edi, dword [esp + 0x314]
je 0x503d8a
mov edx, eax
and edx, 1
inc edx
xor edx, eax
je 0x503d8a
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov dword [esp + 0x248], ebx
mov dword [esp + 0x1d8], esi
imul eax, dword [esp + 0x220], 0x1c
mov ecx, dword [esp + 0x2fc]
mov ecx, dword [ecx + eax + 0x14]
cmp ecx, 8
je 0x503e22
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x503e22
mov edx, dword [esp + 0x1a8]
mov edi, dword [esp + 0x2d4]
jmp 0x503dbb
mov eax, 0x4f
mov edx, 0x4f
xor dl, 0x4f
movzx edx, dl
add edx, eax
add dl, 0xb6
inc ecx
mov esi, dword [edi + 8]
xor ebx, ebx
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
test ecx, ecx
je 0x503da0
test eax, eax
je 0x503da0
mov eax, 4
mov ecx, dword [esp + 0x1a8]
movzx ecx, cl
cmp ecx, 5
jne 0x5031a0
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x264], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x30c]
mov dword [esp + 0x248], ecx
mov edi, dword [esp + 0x260]
jmp 0x504628
movzx ecx, byte [esp + 0x29b]
cmp ecx, 0x35
jne 0x503e81
mov dword [esp + 0x124], ecx
mov dword [esp + 0x314], edi
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x220], ebx
mov bl, byte [esp + 0x2ab]
jmp 0x504308
mov dword [esp + 0x124], ecx
mov dword [esp + 0x314], edi
mov ecx, 0x10
mov byte [esp + 0x28f], 0xf
mov eax, dword [esp + 0x2fc]
mov edx, dword [eax + edx]
mov dword [esp + 0x74], edx
mov eax, 3
sub eax, edx
xor eax, edx
setne al
movzx eax, al
cmp edx, eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x220], ebx
mov ebx, dword [esp + 0x2dc]
mov dword [esp + 0x248], ebx
mov dword [esp + 0x264], eax
jne 0x505ab5
mov eax, dword [esp + 0x220]
imul eax, eax, 0x1c
mov ecx, dword [esp + 0x2fc]
mov ecx, dword [ecx + eax + 0x14]
mov dword [esp + 0x2f8], 0x30000003
cmp ecx, 4
jne 0x5040ec
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
je 0x5040ec
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x2f8], 0x30000003
xor edx, edx
mov ebx, dword [esp + 0x2a4]
movsx ecx, bl
movzx esi, bl
cmp ecx, 0x42
jg 0x504106
mov dword [esp + 0x124], ecx
mov dword [esp + 0x314], edi
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x220], ebx
cmp esi, 0xc
je 0x504045
xor eax, eax
test al, al
jne 0x504045
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
jmp 0x5003b6
mov esi, 8
mov eax, 0x1d
mov byte [esp + 0x28e], 0x18
imul ecx, dword [esp + 0x220], 0x1c
mov edx, dword [esp + 0x2fc]
mov ecx, dword [edx + ecx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
cmp ecx, edx
jne 0x5040a9
cmp eax, 0xe
jne 0x504226
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov esi, dword [esp + 0x1d8]
mov edi, dword [esp + 0x314]
jne 0x4ff0bf
jmp 0x503d3c
cmp esi, 8
je 0x5040d2
xor eax, eax
test al, al
mov ebx, dword [esp + 0x248]
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
je 0x50119e
jmp 0x504338
mov ebx, dword [esp + 0x248]
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
jmp 0x504338
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov dword [esp + 0x248], ebx
jmp 0x5057e6
xor esi, esi
cmp ecx, 8
je 0x50421a
mov esi, dword [esp + 0x1d8]
mov edi, dword [esp + 0x314]
jmp 0x503d3c
xor edi, edi
cmp eax, 6
jne 0x5043ff
mov dword [esp + 0x310], ecx
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x504434
mov byte [esp + 0x2ab], bl
mov ebx, dword [esp + 0x2dc]
mov ecx, 0xa
mov eax, dword [esp + 0x2d8]
movzx eax, al
cmp eax, 0x45
jne 0x5043e5
mov dword [esp + 0x2dc], ebx
xor eax, eax
imul ecx, dword [esp + 0x220], 0x1c
mov edx, dword [esp + 0x2fc]
lea edx, [edx + ecx]
jmp 0x5043a1
mov dword [esp + 0x248], ebx
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
jmp 0x506bc9
mov dword [esp + 0x310], ecx
jmp 0x504434
mov esi, 0x92
add esi, 0xffffff81
mov bl, 0x12
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x420]
mov dword [esp], eax
call fcn.004936c0
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x504410
mov byte [esp + 0x2ab], bl
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
cmp esi, 0xf
je 0x504489
mov ebx, 0xba
add bl, 0x8b
mov edx, esi
and edx, 1
xor edx, esi
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add esi, edx
mov edx, dword [esp + 0x2fc]
mov edx, dword [edx + eax]
mov dword [esp + 0x2ac], edx
mov edi, ecx
mov edx, 3
sub edx, esi
xor edx, esi
setne dl
movzx edx, dl
cmp esi, edx
jb 0x504520
mov dword [esp + 0x2d8], ebx
mov ebx, dword [esp + 0x30c]
mov edx, dword [esp + 0x2ac]
lea eax, [edx - 1]
cmp eax, 2
jae 0x504653
mov dword [esp + 0x2ac], edx
mov eax, 1
mov esi, 0xf
test byte [esp + 0x18b], 1
mov dword [esp + 0x2e0], ebx
mov dword [esp + 0x108], edi
je 0x504628
mov dword [esp + 0x260], edi
cmp esi, 0xc
je 0x504784
imul esi, esi
and esi, 3
cmp esi, 3
je 0x504790
mov edx, dword [esp + 0x124]
cmp edx, 0x18
jle 0x50479c
mov edi, 0xd
cmp edx, 0x22
jg 0x5047b8
cmp edx, 0x19
je 0x504884
mov ecx, 0x12
cmp edx, 0x21
je 0x5048d9
cmp edx, 0x22
mov eax, dword [esp + 0x2fc]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x2dc], ebx
je 0x5025af
jmp 0x504ab2
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jne 0x5046ff
mov dword [esp + 0x260], edi
mov dword [esp + 0x30c], ebx
jmp 0x504a6c
mov eax, 0x13
cmp edx, 3
mov dword [esp + 0x2ac], edx
mov dword [esp + 0x2e0], ebx
mov dword [esp + 0x108], edi
mov dword [esp + 0x260], edi
mov dword [esp + 0x310], ebx
mov dword [esp + 0x2dc], ebx
jne 0x50482e
cmp eax, 0xa
jne 0x5046a0
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x5003b6
mov esi, 0xa
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x108]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2a0]
mov dword [esp], eax
mov ecx, dword [esp + 0x250]
mov edx, dword [esp + 0x1d0]
call fcn.004dd150
mov dword [esp + 0x2f8], eax
test eax, eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x2e0], eax
jne 0x5023f6
jmp 0x50495e
mov dword [esp + 0x260], edi
mov eax, 0xe
mov cl, 0x21
mov dword [esp + 0x1a8], ecx
mov edi, dword [esp + 0x248]
imul ecx, edi, 0x1c
mov edx, dword [esp + 0x1d8]
mov ecx, dword [edx + ecx + 4]
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
mov ecx, dword [esp + 0x264]
mov dword [esp + 0x310], ecx
mov dword [esp + 0x30c], ebx
mov ebx, edi
mov dword [esp + 0x120], edi
je 0x5031cb
cmp eax, 5
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
mov ebx, dword [esp + 0x120]
je 0x4ff92a
jmp 0x503230
mov dword [esp + 0x310], ebx
jmp 0x5005e3
mov dword [esp + 0x310], ebx
jmp 0x5005e3
cmp edx, 5
jle 0x5047fb
cmp edx, 6
je 0x5048fa
cmp edx, 0x10
je 0x504906
cmp edx, 0x16
jmp 0x5047cd
cmp edx, 0x32
je 0x504912
cmp edx, 0x31
je 0x50491e
cmp edx, 0x23
mov dword [esp + 0x30c], ebx
mov eax, dword [esp + 0x2fc]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x2dc], ebx
je 0x504a6c
jmp 0x504ab2
cmp edx, 3
je 0x50493f
mov eax, 0xb
cmp edx, 5
mov ecx, dword [esp + 0x2fc]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x2dc], ebx
jne 0x504ab2
cmp eax, 0xb
jne 0x504863
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x30c], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x310], eax
jne 0x504a6c
jmp 0x50495e
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x30c], eax
jmp 0x50495e
mov dword [esp + 0x310], ebx
mov eax, dword [esp + 0x2fc]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1c4], ebx
cmp edi, 0xd
je 0x50494b
imul edi, edi
and edi, 3
cmp edi, 2
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
jne 0x4feff4
jmp 0x504a6c
mov dword [esp + 0x30c], ebx
mov eax, dword [esp + 0x2fc]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1c4], ebx
jmp 0x5049c2
mov dword [esp + 0x30c], ebx
jmp 0x504a6c
mov dword [esp + 0x30c], ebx
jmp 0x504a6c
mov dword [esp + 0x30c], ebx
jmp 0x504a6c
mov dword [esp + 0x30c], ebx
mov eax, dword [esp + 0x2fc]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1c4], ebx
jmp 0x504a46
mov dword [esp + 0x30c], ebx
jmp 0x504a6c
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
jmp 0x504a6c
mov ecx, dword [esp + 0x220]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
adc ecx, 0
mov eax, dword [esp + 0x3dc]
cmp ecx, dword [eax + 4]
jae 0x503b1f
mov dl, 6
mov dword [esp + 0x12c], edx
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2bc], ecx
mov eax, dword [esp + 0x248]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0xf0], eax
mov edi, dword [esp + 0x314]
jmp 0x503b7d
cmp ecx, 9
jne 0x504a6c
mov esi, 0xc
mov byte [esp + 0x8b], 0x33
mov byte [esp + 0x15f], 0x46
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0x184], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0xb4], eax
mov dword [esp + 0x2f8], 0x70000003
test eax, eax
je 0x5057e6
cmp esi, 0xc
jne 0x50000d
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x505633
jmp 0x50000d
mov edx, dword [esp + 0x2f4]
cmp edi, 0xd
jne 0x504cf2
mov ecx, 3
sub ecx, edi
xor ecx, edi
je 0x504cf2
mov dword [esp + 0x2f4], edx
mov eax, 4
mov ecx, dword [ebp + 0xc]
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 edx, dword [esp + 0x30c]
mov dword [esp + 0x2dc], edx
mov ecx, dword [esp + 0x2fc]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1c4], edx
je 0x4ff3f1
movzx ecx, byte [esp + 0x2c3]
cmp ecx, 0x34
je 0x504b65
mov eax, 9
cmp ecx, 0x54
mov esi, dword [esp + 0x2dc]
jne 0x504c66
mov dword [esp + 0x30c], esi
cmp eax, 3
je 0x5015b3
xor eax, eax
test al, al
jne 0x5015b3
mov esi, 0xd
mov byte [esp + 0x2c3], 0x40
imul eax, dword [esp + 0x220], 0x1c
add eax, dword [esp + 0x1c8]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x2a0]
mov dword [esp], eax
mov dword [esp + 0xc], 1
mov ecx, dword [esp + 0x250]
mov edx, dword [esp + 0x1d0]
call fcn.004fddc0
mov dword [esp + 0x2f8], eax
test eax, eax
mov eax, dword [esp + 0x1c4]
mov dword [esp + 0x310], eax
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x2e0], eax
je 0x50495e
cmp esi, 7
jne 0x504cdf
imul esi, esi
and esi, 3
cmp esi, 2
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x30c], eax
jae 0x5057e6
mov eax, dword [esp + 0x314]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc4]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x294]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
jmp 0x50019a
mov byte [esp + 0x2c3], 0x34
imul eax, dword [esp + 0x220], 0x1c
add eax, dword [esp + 0x1c8]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x2a0]
mov dword [esp], eax
mov dword [esp + 0xc], 1
mov ecx, dword [esp + 0x250]
mov edx, dword [esp + 0x1d0]
call fcn.004fddc0
mov dword [esp + 0x2f8], eax
test eax, eax
mov eax, dword [esp + 0x1c4]
mov dword [esp + 0x310], eax
mov dword [esp + 0x30c], esi
mov dword [esp + 0x2e0], eax
je 0x50495e
jmp 0x5057e6
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x30c], eax
jmp 0x5057e6
mov byte [esp + 0x153], 0x67
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x268], eax
mov eax, dword [edx]
mov dword [esp + 0x2f4], edx
mov dword [esp + 0x148], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x5060a3
xor ecx, ecx
test cl, cl
je 0x5020c1
jmp 0x5060a3
mov eax, dword [esp + 0x200]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x504dbf
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x504dcb
mov al, 0x79
movzx eax, al
cmp eax, 0x37
je 0x504dd7
cmp eax, 0x3f
jne 0x504e10
mov dword [esp + 0x244], ebx
mov eax, dword [esp + 0x33c]
mov edx, dword [esp + 0x1b4]
mov ecx, edx
or ecx, eax
or edx, eax
mov eax, 8
jne 0x504e3c
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x506969
mov dword [esp + 0x244], ebx
jmp 0x506969
mov dword [esp + 0x244], ebx
jmp 0x506969
mov dword [esp + 0x244], ebx
mov eax, 5
mov ecx, dword [esp + 0x1b4]
or ecx, dword [esp + 0x33c]
jne 0x504e4f
cmp eax, 3
je 0x5015b3
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x506969
mov dword [esp + 0x244], ebx
mov eax, dword [esp + 0x1b4]
or eax, dword [esp + 0x33c]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x504e4f
jmp 0x506969
cmp eax, 8
je 0x504e4f
mov dword [esp + 0x31c], 0
mov dword [esp + 0x318], 0
mov dword [esp + 0x328], 4
mov eax, dword [esp + 0x250]
mov dword [esp + 0x330], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x334], eax
mov dword [esp + 0x338], 0xfffffffa
lea eax, [esp + 0x318]
mov dword [esp + 4], eax
lea eax, [esp + 0x31c]
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 0x504eea
mov eax, 0x16
lea ecx, [esp + 0x328]
mov dword [esp + 0x128], ecx
mov edi, dword [esp + 0x260]
mov edx, dword [esp + 0x2ac]
jmp 0x506d02
lea eax, [esp + 0x328]
mov dword [esp + 0x128], eax
mov dword [esp + 0x2f8], 0x700002bb
jmp 0x5057e6
mov byte [esp + 0x1e7], 0x3f
mov eax, dword [esp + 0x390]
mov dword [esp + 0x2f8], 0
or eax, dword [esp + 0x394]
je 0x5057e6
mov eax, 0xa
mov byte [esp + 0x19b], 2
mov dl, byte [esp + 0x18b]
mov cl, dl
and cl, 1
movzx ecx, cl
imul ecx, ecx
cmp ecx, 2
setb cl
mov dword [esp + 0x2f8], 0
test byte [esp + 0x83], 1
jne 0x504fb3
xor cl, dl
test cl, 1
jne 0x504fb3
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test eax, eax
je 0x504fde
mov dword [esp + 0x2f8], 0x700002bb
xor ecx, ecx
test cl, cl
jne 0x5057e6
mov byte [esp + 0xd3], 0x41
mov eax, dword [eax]
mov dword [esp + 0x104], eax
mov dword [esp + 0x2f8], 0x700002bb
test eax, eax
jne 0x504fee
jmp 0x5057e6
cmp eax, 0xa
je 0x504fd2
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov ecx, dword [esp + 0x2e0]
jne 0x502e22
jmp 0x50506d
mov ecx, dword [esp + 0x2e0]
jmp 0x50506d
mov dword [esp + 0x2f8], 0x700002bb
jmp 0x5057e6
mov edi, dword [esp + 0x104]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax]
cmp ecx, 0xfffffffe
jne 0x5050dd
mov edx, ecx
not edx
and edx, 1
add edx, ecx
je 0x5050dd
test eax, eax
je 0x505237
mov dword [esp + 0x2f8], 0x700002bb
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x50524e
mov eax, dword [eax + 4]
add eax, 4
lea ecx, [esp + 0x390]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov dword [esp + 0x2f8], 0x700002bb
mov ecx, dword [esp + 0x2e0]
mov dword [esp + 0x118], edi
mov edi, 0x10
movzx eax, byte [esp + 0x19b]
cmp eax, 0x13
mov edx, dword [ebp + 0xc]
mov esi, ecx
je 0x50515e
cmp eax, 0x3c
je 0x50516a
cmp eax, 0x52
jne 0x5051e3
mov dword [esp + 0x2dc], esi
mov eax, 8
mov byte [esp + 0x19b], 0x13
mov byte [esp + 0x1ef], 0x21
mov edx, dword [edx]
mov dword [esp + 0x158], edx
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x5052b0
jmp 0x506c04
mov eax, 0x10
mov esi, 8
movzx ecx, byte [esp + 0xd3]
cmp ecx, 0x3d
mov dword [esp + 0x118], edi
jne 0x506e61
cmp esi, 6
je 0x4fefd8
imul esi, esi
and esi, 3
cmp esi, 3
je 0x4fefd8
mov eax, 0xc
mov byte [esp + 0xd3], 0x3d
mov ecx, dword [esp + 0x118]
mov edx, dword [ecx + 4]
mov dword [esp + 0x2f8], 0x700002bb
test edx, edx
jne 0x50525a
mov ecx, edx
mov dword [esp + 0x104], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x5057e6
jmp 0x505261
mov dword [esp + 0x2dc], esi
jmp 0x5054d6
mov eax, 0xc
mov ecx, 9
mov byte [esp + 0x19b], 0x52
mov byte [esp + 0x1ef], 0x21
mov edx, dword [edx]
mov dword [esp + 0x158], edx
test edx, edx
mov edx, dword [esp + 0x264]
mov dword [esp + 0x310], edx
mov dword [esp + 0x2e0], esi
mov ebx, dword [esp + 0x244]
jne 0x4ffb18
mov dword [esp + 0x244], ebx
cmp eax, 0xc
jne 0x506969
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
jne 0x5054f0
jmp 0x506969
mov dword [esp + 0x2dc], esi
mov esi, 7
mov byte [esp + 0x19b], 0x3c
mov byte [esp + 0x1ef], 0x21
mov ecx, dword [edx]
mov dword [esp + 0x158], ecx
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
je 0x5054f0
cmp esi, 7
jne 0x503078
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x5052b0
jmp 0x503078
mov dword [esp + 0x2f8], 0x700002bb
mov dword [esp + 0x118], edi
jmp 0x5057e6
mov dword [esp + 0x118], edi
jmp 0x5057e6
mov dword [esp + 0x104], edx
cmp eax, 0xc
jne 0x50015d
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x504fee
jmp 0x50015d
mov byte [esp + 0x19b], 2
mov byte [esp + 0x1ef], 0x21
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov dword [esp + 0x158], ecx
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
je 0x5054f0
mov dword [esp + 0x328], 4
mov eax, dword [esp + 0x250]
mov dword [esp + 0x330], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x334], eax
mov dword [esp + 0x338], 0xfffffffe
lea esi, [esp + 0x38c]
mov dword [esp + 0x10], esi
lea edi, [esp + 0x340]
mov dword [esp + 0xc], edi
lea ebx, [esp + 0x328]
mov dword [esp], ebx
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.005938f0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5053b3
mov al, 0x30
movzx eax, al
cmp eax, 2
je 0x5053bf
cmp eax, 0x67
jne 0x50545c
lea eax, [esp + 0x344]
lea ecx, [esp + 0x390]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], edi
mov dword [esp], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.00593f40
mov dword [esp + 0x2f8], eax
test eax, eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
jne 0x5057e6
jmp 0x5054f0
mov dword [esp + 0x2f8], eax
jmp 0x505731
lea eax, [esp + 0x344]
lea ecx, [esp + 0x390]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], edi
mov dword [esp], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.00593f40
test eax, eax
jne 0x505795
mov esi, 2
mov dword [esp + 0x2f8], eax
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x30c]
mov edx, 5
je 0x5057a1
cmp esi, 2
jne 0x4ffdcc
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x4ffdcc
mov dword [esp + 0x30c], eax
jmp 0x5054f0
lea eax, [esp + 0x344]
lea ecx, [esp + 0x390]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], edi
mov edi, 9
mov dword [esp], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.00593f40
mov dword [esp + 0x2f8], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
jne 0x5057e6
cmp edi, 9
jne 0x50527e
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
je 0x50527e
movzx eax, byte [esp + 0x1ef]
cmp eax, 0x21
mov ecx, dword [ebp + 0x1c]
je 0x505531
cmp eax, 0x69
jne 0x50555c
test ecx, ecx
mov ecx, dword [esp + 0x390]
mov edx, dword [esp + 0x394]
mov eax, dword [esp + 0x218]
mov dword [eax + 4], edx
mov dword [eax], ecx
je 0x505744
mov byte [esp + 0x1ef], 0x69
jmp 0x505588
test ecx, ecx
mov byte [esp + 0x1ef], 0x50
mov ecx, dword [esp + 0x390]
mov edx, dword [esp + 0x394]
mov eax, dword [esp + 0x218]
mov dword [eax + 4], edx
mov dword [eax], ecx
jne 0x505588
jmp 0x505726
mov byte [esp + 0x1ef], 0x21
mov esi, ecx
mov ecx, dword [esp + 0x390]
mov edx, dword [esp + 0x394]
mov eax, dword [esp + 0x218]
mov dword [eax + 4], edx
mov dword [eax], ecx
test esi, esi
je 0x505726
mov dword [esp + 0x2f8], 0
mov eax, 0x1a
xor eax, 0x1b
mov dword [esp + 0x140], eax
xor esi, esi
jmp 0x5055c9
mov edi, 3
sub edi, esi
xor edi, esi
setne bl
movzx edi, bl
add esi, edi
mov edi, dword [ebp + 0x1c]
mov dword [edi], ecx
mov dword [edi + 4], edx
mov edi, esi
and edi, 1
xor edi, esi
cmp edi, 0xffffffff
setne bl
movzx edi, bl
cmp esi, edi
jb 0x5055b0
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov ebx, dword [esp + 0x244]
mov edx, dword [esp + 0x140]
mov dword [esp + 0x244], ebx
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
movzx ecx, cl
cmp edx, ecx
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
je 0x5057e6
mov eax, 0xb
mov cl, byte [esp + 0x15f]
movzx ecx, cl
cmp ecx, 0x19
jne 0x502bda
mov edi, dword [esp + 0x314]
cmp eax, 0xb
jne 0x50577d
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x505789
cmp esi, 0xe
je 0x5057e6
jmp 0x506491
mov dword [esp + 0x2f8], 0
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
jmp 0x5057e6
mov byte [esp + 0x1ef], 0x69
mov dword [esp + 0x2f8], 0
mov eax, 0x14
mov ebx, dword [esp + 0x248]
mov ecx, dword [esp + 0x264]
mov edx, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], edx
jmp 0x506a3b
mov dword [esp + 0x314], edi
jmp 0x502e22
mov dword [esp + 0x2f8], eax
mov edx, 5
cmp edx, 5
jne 0x5057d3
mov eax, edx
or eax, 2
xor edx, 2
add edx, eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
jne 0x5057e6
jmp 0x505f01
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
jmp 0x505f01
mov eax, 0xe
mov byte [esp + 0x283], 0x1c
mov byte [esp + 0x273], 7
mov cl, 0x2a
mov dword [esp + 0x2d0], ecx
mov byte [esp + 0x27b], 0x63
mov ecx, dword [esp + 0x2f4]
mov edx, dword [ecx]
mov dword [esp + 0x27c], edx
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x290], 0
cmp edx, ecx
mov ecx, dword [esp + 0x2f8]
mov dword [esp + 0x26c], ecx
jne 0x5060db
movzx eax, byte [esp + 0x283]
cmp eax, 0x1c
mov eax, dword [esp + 0x314]
jne 0x505897
mov bl, 5
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov edi, dword [esp + 0x3dc]
test edi, edi
jne 0x5058ca
mov byte [esp + 0x283], 0x1c
mov eax, 0xf
mov ecx, 3
sub ecx, edi
xor ecx, edi
jne 0x504e3c
jmp 0x5058d2
mov esi, 3
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov edi, dword [esp + 0x3dc]
test edi, edi
je 0x505989
mov byte [esp + 0x283], 0xf
mov bl, 5
xor eax, eax
test al, al
je 0x5058d2
jmp 0x505991
mov byte [esp + 0x283], 0x1c
movzx eax, bl
cmp eax, 5
je 0x50595d
xor esi, esi
cmp eax, 0x14
je 0x505911
jmp 0x50594a
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x5058f0
jmp 0x50599a
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
mov dword [esp + 4], 0x2a
call fcn.0064bf00
test esi, esi
jne 0x50599a
mov eax, 3
sub eax, esi
mov ecx, esi
xor ecx, eax
jne 0x505930
jmp 0x50599a
mov esi, 0xe
mov dword [esp], edi
mov dword [esp + 4], 0x2a
call fcn.0064bf00
cmp esi, 0xc
jne 0x50599a
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x5060a3
jmp 0x50599a
mov byte [esp + 0x283], 0xf
cmp esi, 3
jne 0x506459
mov eax, dword [esp + 0x26c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, 0xf
mov eax, dword [esp + 0x314]
mov ecx, dword [eax]
mov eax, dword [esp + 0x290]
lea edx, [eax + eax*2]
mov edx, dword [ecx + edx*8 + 0x14]
test edx, edx
jne 0x505a3b
mov byte [esp + 0x27b], 0x72
mov esi, 6
mov ecx, edx
mov dword [esp + 0x144], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x27c]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x164], eax
jae 0x505bb1
cmp esi, 4
je 0x506aac
mov eax, esi
and eax, 1
inc eax
xor eax, esi
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
jne 0x506dd5
jmp 0x506aac
mov byte [esp + 0x27b], 0x72
mov dword [esp + 0x144], edx
mov ecx, dword [esp + 0x27c]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x164], eax
jmp 0x505bb1
mov edi, 0xe
mov byte [esp + 0x273], 0x19
mov eax, dword [esp + 0x164]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ebx, cl
add ebx, eax
mov eax, dword [esp + 0x1a0]
cmp ebx, eax
jae 0x505ac3
mov ecx, 0xa
mov edx, ebx
or edx, 2
mov esi, ebx
mov dword [esp + 0x290], ebx
xor esi, 2
add esi, edx
mov dword [esp + 0x27c], eax
je 0x505ad1
cmp ecx, 0xa
je 0x506a0b
jmp 0x506cea
mov dword [esp + 0x290], ebx
mov dword [esp + 0x27c], eax
cmp edi, 0xe
jne 0x5057e6
jmp 0x50584e
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x314]
mov dword [edi], edx
mov esi, dword [esp + 0x2f4]
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 + 0xc4]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x12
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0xfffffff0
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 edx, dword [esp + 0x244]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov byte [esp + 0xbb], 0x16
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x505c02
mov dword [esp + 0x2f8], 0x70000003
mov edi, 0x16
mov dword [esp + 0x294], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
je 0x5057e6
cmp edi, 0xf
je 0x505be1
xor eax, eax
test al, al
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
je 0x4ffc8a
jmp 0x506ba2
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
jmp 0x506ba2
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0x294], eax
jmp 0x5057e6
mov esi, dword [esp + 0x8c]
mov ebx, edi
mov edi, dword [esp + 0x314]
mov dword [edi], esi
mov eax, dword [ecx]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
mov eax, dword [esp + 0x2f4]
mov dword [eax], ecx
mov eax, dword [esp + 0xc4]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esi + eax], 0x12
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0xfffffff0
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 dword [ecx + eax + 0x10], ebx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov esi, 0xa
mov byte [esp + 0xbb], 3
mov dword [esp], ebx
call fcn.00492770
test eax, eax
jne 0x505ccc
mov dword [esp + 0x2f8], 0x70000003
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x294], eax
jne 0x5057e6
jmp 0x5025e1
mov dword [esp + 0x2f8], 0x70000003
mov dword [esp + 0x294], eax
jmp 0x5025e1
movzx eax, byte [esp + 0xbb]
cmp eax, 3
je 0x505adf
mov esi, 6
cmp eax, 4
mov edi, dword [esp + 0x244]
mov ecx, dword [esp + 0x2f4]
jne 0x505c19
mov eax, dword [esp + 0x2f8]
cmp esi, 6
je 0x4ffbce
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x244], edi
jmp 0x5057e6
mov ecx, dword [esp + 0x1bc]
cmp ecx, 0xffffffce
jne 0x505d64
mov byte [esp + 0xef], 3
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
jne 0x505ec6
jmp 0x50019a
mov byte [esp + 0xef], 3
jmp 0x50019a
mov byte [esp + 0x16f], 0x33
mov eax, dword [esp + 0x180]
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp], eax
call fcn.0068e2e0
mov esi, eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0x130], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov edx, eax
test edx, edx
jne 0x505e3c
mov dword [esp + 0xc0], edi
mov ecx, edx
or ecx, 2
mov edi, edx
xor edx, 2
add edx, ecx
je 0x505e80
mov ecx, 0x15
mov dword [esp + 0x2f8], 0x70000003
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x1e8], ebx
cmp ecx, 6
jne 0x5057e6
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne 0x501502
jmp 0x5057e6
mov dword [esp + 0x2f8], esi
mov dword [esp + 0xc0], edi
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x1e8], ebx
mov ecx, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x2f4]
jmp 0x4fff1a
mov dword [esp + 0x2f8], esi
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x1e8], ebx
mov ecx, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x2f4]
mov eax, dword [esp + 0x314]
mov edx, edi
jmp 0x4fff21
mov ecx, 1
movzx eax, byte [esp + 0x16f]
cmp eax, 0x48
je 0x4ffe3b
mov ebx, dword [esp + 0x1e8]
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
cmp ecx, eax
je 0x505d71
mov dword [esp + 0x1e8], ebx
movzx eax, byte [esp + 0xef]
cmp eax, 3
je 0x4ffe0b
jmp 0x505d3a
mov dword [esp + 0x218], edx
mov ecx, dword [esp + 0xdc]
mov eax, ecx
shr eax, 0x18
mov dword [esp + 0x310], eax
and ecx, 0xffffff
mov ebx, dword [esp + 0xa8]
mov eax, dword [esp + 0x314]
mov dword [eax], ebx
mov edi, dword [esp + 0x2f4]
mov edx, dword [edi]
mov esi, edx
imul esi, esi
and esi, 3
cmp esi, 2
adc edx, 0
mov dword [edi], edx
mov edi, eax
mov edx, dword [esp + 0x25c]
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0xd8]
mov dword [ebx + edx], esi
mov esi, dword [edi]
mov dword [esi + edx + 4], ecx
mov ecx, dword [edi]
mov eax, dword [esp + 0x310]
mov byte [ecx + edx + 8], al
mov eax, dword [edi]
mov dword [eax + edx + 0xc], 0
mov eax, dword [edi]
mov ecx, dword [esp + 0x18c]
mov dword [eax + edx + 0x10], ecx
mov eax, dword [edi]
mov dword [eax + edx + 0x14], 0
mov byte [esp + 0x25b], 0x46
mov dword [esp], ecx
call fcn.00492770
mov esi, eax
test esi, esi
mov dword [esp + 0x19c], 0x70000003
je 0x501d89
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x501e56
jmp 0x501d89
cmp eax, 5
je 0x505f17
movsd xmm0, qword [edx]
mov dword [esp + 0x218], edx
mov eax, dword [ebp + 0x20]
movsd qword [eax], xmm0
jmp 0x50277d
mov byte [esp + 0x153], 0x36
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x268], eax
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0x148], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5020c1
mov esi, 0x15
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
mov ecx, dword [esp + 0x30c]
mov dword [esp + 0x310], ecx
je 0x5020c1
cmp esi, 0xd
je 0x5022e8
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov eax, 0x19
mov bl, byte [esp + 0x2ab]
movzx ecx, bl
cmp ecx, 0x12
je 0x5060db
mov eax, 0xc
cmp ecx, 0x54
jne 0x506109
mov ecx, dword [esp + 0x248]
mov dword [esp + 0x2dc], ecx
mov ecx, dword [esp + 0x264]
jmp 0x504308
cmp eax, 0xe
je 0x506a0b
imul eax, eax
and eax, 3
cmp eax, 3
je 0x506a0b
xor edi, edi
mov ebx, 0x1e
mov esi, 0x1e
xor esi, 0x12
add ebx, esi
jmp 0x5022c1
mov esi, 0xd
mov byte [esp + 0x2ab], 0x54
mov eax, dword [esp + 0x420]
mov dword [esp], eax
call fcn.004936c0
cmp esi, 4
je 0x506142
xor eax, eax
test al, al
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
je 0x5005e3
mov eax, dword [esp + 0x20c]
movzx edx, al
cmp edx, 0xf
je 0x506170
mov eax, 7
mov ecx, 0x16
cmp edx, 0x7b
mov ebx, dword [esp + 0x244]
je 0x5014cf
jmp 0x506944
mov esi, 0xc
mov al, 0x7b
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x430]
mov dword [esp], eax
call fcn.004936c0
cmp esi, 7
jne 0x502e22
mov eax, 3
sub eax, esi
xor eax, esi
je 0x502e22
mov byte [esp + 0xa3], 0x29
mov dword [esp + 0x440], 0x1c
mov dword [esp + 4], 1
mov dword [esp], 0x1c
call fcn.00493840
mov dword [esp + 0x444], eax
mov dword [esp + 0x304], 0
test eax, eax
je 0x50680d
mov dword [esp + 0x1d4], 0x70000003
mov ecx, eax
mov dword [esp + 0xa4], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x503a1d
jmp 0x503705
mov edi, 0x1c
movzx ecx, byte [esp + 0x153]
cmp ecx, 0x36
je 0x504a46
mov eax, 0xb
cmp ecx, 0x67
je 0x50600c
cmp eax, 0xb
je 0x502045
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
jmp 0x502305
mov ebx, 0x58
xor bl, 0x45
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x428]
mov dword [esp], eax
call fcn.004936c0
mov edx, dword [edi]
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x506250
jmp 0x5024e2
mov bl, 0x67
jmp 0x5024d1
mov ebx, dword [esp + 0x1e0]
movzx eax, bl
cmp eax, 0x1d
mov edi, dword [esp + 0x238]
je 0x506293
cmp eax, 0x6d
jne 0x5024cf
xor esi, esi
jmp 0x50627b
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x506898
mov esi, 6
mov byte [esp + 0x8b], 0x4b
mov byte [esp + 0x15f], 0x46
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0x184], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov dword [esp + 0x2f8], 0x70000003
je 0x506341
mov edx, 0x10
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0xb4], eax
mov ebx, dword [esp + 0x244]
jne 0x505607
jmp 0x50634f
mov dword [esp + 0xb4], eax
mov ebx, dword [esp + 0x244]
mov dword [esp + 0x244], ebx
cmp esi, 6
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
je 0x5057e6
movzx eax, byte [esp + 0x6d]
cmp eax, 0x6b
jne 0x5065d7
mov eax, 0xc
mov byte [esp + 0x6d], 0x76
mov byte [esp + 0xa3], 0x29
mov byte [esp + 0x6e], 0x26
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx]
mov dword [esp + 0x64], edi
mov esi, dword [esp + 0x218]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov esi, dword [esi + 8]
mov dword [esp + 0x60], esi
mov dword [esp + 0x44c], edx
lea edx, [esp + 0x450]
mov dword [esp + 0x21c], edx
mov dword [esp + 0x448], ecx
lea ecx, [esp + 0x448]
mov dword [esp + 0x2f0], ecx
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x450], ecx
mov dword [esp + 0x444], 0
mov dword [esp + 0x440], 0
mov dword [esp + 0x43c], 0
mov dword [esp + 0x438], 0
mov dword [esp + 0x434], 0
test edi, edi
lea ecx, [esp + 0x43c]
mov dword [esp + 0x2ec], ecx
lea ecx, [esp + 0x438]
mov dword [esp + 0x2e8], ecx
lea ecx, [esp + 0x434]
mov dword [esp + 0x2e4], ecx
jne 0x50647d
movzx eax, byte [esp + 0xa3]
cmp eax, 0xa
je 0x506746
mov esi, 7
cmp eax, 0x3b
je 0x5039b2
jmp 0x50618d
cmp eax, 0xc
jne 0x506491
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x5066ca
movzx ecx, byte [esp + 0x1af]
cmp ecx, 3
mov esi, dword [esp + 0x218]
je 0x5064bd
mov eax, 9
cmp ecx, 0x2f
jne 0x506568
mov byte [esp + 0x1af], 0x75
jmp 0x5064c5
mov byte [esp + 0x1af], 0x2f
lea eax, [esp + 0x390]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x17c]
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x314]
mov eax, dword [eax]
mov ecx, dword [esp + 0x184]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x390]
mov ecx, dword [esp + 0x394]
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp], str.Renaming_SL_Provisional__llu_to__llu_n
call fcn.004414c0
test byte [esp + 0xcb], 1
mov edi, dword [esp + 0x250]
je 0x50277d
xor ecx, ecx
mov al, 1
test al, al
jne 0x5065a3
mov eax, 0x12
xor edx, edx
test dl, dl
mov edx, dword [esp + 0x218]
jne 0x505fec
mov esi, dword [ebp + 0x20]
jmp 0x502e0a
mov cl, byte [esp + 0x19a]
cmp eax, 9
je 0x502d89
xor eax, eax
test al, al
jne 0x502d89
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
jmp 0x50629a
mov esi, dword [esp + 0x218]
jmp 0x5065bc
inc ecx
movsd xmm0, qword [esi]
mov eax, dword [ebp + 0x20]
movsd qword [eax], xmm0
mov eax, ecx
or eax, 2
mov edx, ecx
xor edx, 2
add edx, eax
setne al
movzx eax, al
cmp ecx, eax
jb 0x5065b0
jmp 0x50277d
mov esi, 0xe
mov byte [esp + 0x6d], 0x6b
mov byte [esp + 0xa3], 0x29
mov byte [esp + 0x6e], 0x26
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
mov edx, dword [esp + 0x218]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x60], edx
mov dword [esp + 0x44c], ecx
lea ecx, [esp + 0x450]
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x448], eax
lea eax, [esp + 0x448]
mov dword [esp + 0x2f0], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x450], eax
mov dword [esp + 0x444], 0
mov dword [esp + 0x440], 0
mov dword [esp + 0x43c], 0
mov dword [esp + 0x438], 0
mov dword [esp + 0x434], 0
test edi, edi
lea eax, [esp + 0x43c]
mov dword [esp + 0x2ec], eax
lea eax, [esp + 0x438]
mov dword [esp + 0x2e8], eax
lea eax, [esp + 0x434]
mov dword [esp + 0x2e4], eax
je 0x50685d
mov eax, edi
mov dword [esp + 0x64], edi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x505991
movzx eax, byte [esp + 0x6e]
cmp eax, 0x64
jne 0x50341e
mov dword [esp + 0x3f8], 4
mov dword [esp + 0x3fc], 2
mov eax, dword [esp + 0x60]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x404], eax
mov dword [esp + 0x408], 0xfffffffe
lea eax, [esp + 0x440]
mov dword [esp + 8], eax
lea eax, [esp + 0x444]
mov dword [esp + 4], eax
lea eax, [esp + 0x3f8]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x506824
mov byte [esp + 0x6e], 0x64
jmp 0x503496
mov byte [esp + 0xa3], 0x3b
mov dword [esp + 0x440], 0x1c
mov dword [esp + 4], 1
mov dword [esp], 0x1c
call fcn.00493840
mov dword [esp + 0x444], eax
mov dword [esp + 0x304], 0
test eax, eax
je 0x50680d
mov dword [esp + 0x1d4], 0x70000003
mov edx, 0x10
mov ecx, eax
mov dword [esp + 0xa4], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
mov ebx, dword [esp + 0x1e8]
je 0x503705
cmp edx, 0x10
je 0x506835
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x1e8], ebx
jne 0x505ec6
jmp 0x503a1d
mov dword [esp + 0x1d4], 0x70000003
mov dword [esp + 0xa4], eax
jmp 0x503705
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x6e], 0x64
jmp 0x5036fa
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x1e8], ebx
jmp 0x503a1d
mov dword [esp + 0x64], edi
jmp 0x505991
mov ecx, 9
mov esi, 0xa
movzx eax, byte [esp + 0x8b]
cmp eax, 0x33
mov eax, dword [esp + 0x264]
mov dword [esp + 0x310], eax
jne 0x5049c2
cmp esi, 5
jne 0x5062bd
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
jmp 0x505ce3
mov ebx, 4
xor bl, 0x22
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x430]
mov dword [esp], eax
call fcn.004936c0
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x5068b0
mov dword [esp + 0x20c], ebx
jmp 0x502e22
mov eax, 0x10
mov byte [esp + 0x1cf], 0x50
mov ecx, dword [esp + 0x200]
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x506935
mov byte [esp + 0x1e7], 0x3f
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov ebx, dword [esp + 0x244]
jne 0x504d5c
jmp 0x506944
mov byte [esp + 0x1e7], 0x3f
mov ebx, dword [esp + 0x244]
mov dword [esp + 0x244], ebx
cmp eax, 7
jne 0x506969
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x506969
xor esi, esi
mov ebx, dword [esp + 0x20c]
jmp 0x5068d8
mov edi, 0xa
mov al, byte [esp + 0x1e7]
movzx eax, al
cmp eax, 0x3f
jne 0x504f08
mov ecx, dword [esp + 0x2f8]
jmp 0x4fef88
mov eax, dword [esp + 0x314]
mov eax, dword [eax]
mov edx, dword [esp + 0x290]
lea ecx, [edx + edx*2]
mov ecx, dword [eax + ecx*8 + 0x14]
test ecx, ecx
je 0x5069e2
mov byte [esp + 0x27b], 0x63
mov eax, ecx
mov dword [esp + 0x144], ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x27c]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x164], edx
jne 0x506ba2
jmp 0x506dd5
mov byte [esp + 0x27b], 0x63
mov dword [esp + 0x144], ecx
mov dword [esp + 0x164], edx
mov eax, dword [esp + 0x27c]
mov dword [esp + 0x1a0], eax
jmp 0x506dd5
mov edx, 0x12
mov al, byte [esp + 0x27b]
movzx ecx, al
cmp ecx, 0x33
je 0x506a76
mov eax, 4
cmp ecx, 0x72
je 0x50698d
mov ebx, dword [esp + 0x248]
mov ecx, dword [esp + 0x264]
mov esi, dword [esp + 0x314]
mov edi, dword [esp + 0x290]
cmp eax, 4
je 0x506b22
xor eax, eax
test al, al
jne 0x506b22
mov dword [esp + 0x314], esi
mov dword [esp + 0x264], ecx
mov dword [esp + 0x248], ebx
jmp 0x5057e6
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x310], eax
cmp edx, 0xe
jne 0x5059a9
mov ecx, edx
and ecx, 1
xor ecx, edx
not ecx
test ecx, ecx
je 0x5059a9
mov esi, 0x1b
mov eax, 0xb
mov edx, dword [esp + 0x2b0]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp edx, ecx
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], ecx
mov ecx, dword [esp + 0x310]
mov dword [esp + 0x30c], ecx
je 0x501028
cmp eax, 4
je 0x5068fa
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x5068fa
xor esi, esi
mov edi, 0xa0
xor edi, 0xb8
mov ebx, dword [esp + 0x178]
jmp 0x501010
mov dword [esp + 0x310], ecx
mov eax, 1
mov ecx, 0xe
mov byte [esp + 0x27b], 0x33
mov edx, dword [esi]
mov dword [esp + 0x314], esi
lea esi, [edi + edi*2]
mov edx, dword [edx + esi*8 + 0x14]
mov dword [esp + 0x144], edx
test edx, edx
mov edx, dword [esp + 0x27c]
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x164], edi
mov dword [esp + 0x290], edi
je 0x506cbd
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x248], ebx
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
jne 0x506cea
mov ecx, 0x10
mov eax, 4
mov edx, dword [esp + 0x2d0]
movzx edx, dl
cmp edx, 0x2a
mov edx, dword [esp + 0x2e0]
mov dword [esp + 0x2dc], edx
jne 0x506c04
xor esi, esi
cmp ecx, 0xa
jne 0x506c57
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x506c57
imul eax, dword [esp + 0x220], 0x1c
mov ecx, dword [esp + 0x2fc]
lea ecx, [ecx + eax]
mov edi, dword [esp + 0x260]
mov ebx, dword [esp + 0x2d8]
jmp 0x50454d
cmp eax, 4
jne 0x5054f0
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x5054f0
mov al, 0x22
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x144]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2e0], eax
jmp 0x506dd5
mov edi, dword [esp + 0x144]
mov ebx, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x1a0]
jmp 0x506c99
mov eax, 0x38
add al, 0xf2
mov dword [esp + 0x2d0], eax
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, dword [ebx]
test esi, esi
je 0x506c70
mov al, 1
test al, al
je 0x506c70
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x2f4], ebx
mov dword [esp + 0x144], edi
jmp 0x506dd5
cmp ecx, 0xe
je 0x506dc0
xor eax, eax
test al, al
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov dword [esp + 0x248], ebx
je 0x5057e6
jmp 0x506dd5
mov eax, 6
imul edi, dword [esp + 0x220], 0x1c
add edi, dword [esp + 0x2fc]
mov edx, dword [esp + 0x74]
cmp eax, 6
je 0x506da8
mov eax, dword [esp + 0x310]
mov dword [esp + 0x264], eax
mov dword [esp + 0x248], ebx
movzx ecx, byte [esp + 0x273]
cmp ecx, 7
je 0x505a64
mov eax, 9
cmp ecx, 0xa
jne 0x506e61
mov byte [esp + 0x273], 0xa
mov ecx, dword [esp + 0x164]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov edi, ecx
adc edi, 0
mov edx, dword [esp + 0x1a0]
cmp edi, edx
jae 0x506fe5
mov eax, 0xb
mov ecx, edi
or ecx, 2
mov esi, edx
mov edx, edi
mov dword [esp + 0x290], edi
xor edx, 2
add edx, ecx
mov dword [esp + 0x27c], esi
je 0x50584e
cmp eax, 0xb
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x310], eax
jne 0x50495e
cmp eax, 9
jne 0x506eb3
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x506eb3
mov eax, 0xf
mov byte [esp + 0x273], 7
mov ecx, dword [esp + 0x164]
inc ecx
mov edx, dword [esp + 0x1a0]
cmp ecx, edx
jb 0x506ff8
mov dword [esp + 0x290], ecx
xor ecx, ecx
test cl, cl
mov dword [esp + 0x27c], edx
je 0x50584e
jmp 0x507006
mov edi, 1
mov byte [esp + 0xd3], 0x41
mov eax, dword [esp + 0x118]
mov eax, dword [eax + 4]
mov dword [esp + 0x104], eax
mov dword [esp + 0x2f8], 0x700002bb
test eax, eax
je 0x5057e6
cmp edi, 1
jne 0x506ef9
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
jne 0x504fee
mov esi, 0x11
mov byte [esp + 0x153], 0x36
lea eax, [esp + 0x41c]
mov dword [esp + 8], eax
lea eax, [esp + 0x420]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x214]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x5060a3
cmp esi, 0xf
je 0x506f42
xor eax, eax
test al, al
je 0x50620e
mov esi, 0x10
mov byte [esp + 0x8b], 0x33
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x11
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
lea ecx, [esp + 0x390]
xor edx, edx
call fcn.0054c950
mov dword [esp + 0x2f8], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5057e6
cmp esi, 0x10
je 0x506866
mov eax, esi
and eax, 1
inc eax
xor eax, esi
jne 0x4ff92a
jmp 0x506866
mov dword [esp + 0x290], edi
mov dword [esp + 0x27c], edx
jmp 0x50584e
mov dword [esp + 0x290], ecx
mov dword [esp + 0x27c], edx
cmp eax, 2
jne 0x506a0b
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x4ff0a9
jmp 0x506a0b