Function at 0x57b410
Capabilities:
Authenticate hmac
Encrypt data using speck
Parse credit card information
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x4c0
mov edi, ecx
cmp dword [ebp + 0x1c], 0x40
jne 0x57ba79
mov dword [esp + 0x2d8], edx
mov esi, dword [ebp + 0x28]
mov ecx, 0x6e1ff0b
xor ecx, 0x6e1ff1a
mov al, cl
add al, 0xfc
mov byte [esp + 0xab], al
mov dword [esp + 0x40c], 0
mov dword [esp + 0x408], 0
mov dword [esp + 0x410], 0
mov dword [esp + 0x404], 0
mov dword [esp + 0x400], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x3e0], xmm0
movaps xmmword [esp + 0x3d0], xmm0
mov dword [esp + 0x3f4], 0
mov dword [esp + 0x3f0], 0
mov byte [esp + 0x3f8], 0
mov dword [esp + 0x3cc], 0
mov dword [esp + 0x3c8], 0
mov dword [esp + 0x3c4], 0
mov dword [esp + 0x3c0], 0
mov dword [esp + 0x3bc], 0
movaps xmmword [esp + 0x3a0], xmm0
movaps xmmword [esp + 0x390], xmm0
movaps xmmword [esp + 0x380], xmm0
movaps xmmword [esp + 0x370], xmm0
mov dword [esp + 0x36c], 0
mov eax, dword [0x7dc5e8]
mov dword [esp + 0x368], eax
movsd xmm0, qword [0x7dc5e0]
movsd qword [esp + 0x360], xmm0
movsd xmm0, qword [0x7dc5d8]
movsd qword [esp + 0x358], xmm0
test esi, esi
setne al
mov edx, esi
and edx, 1
inc edx
xor edx, esi
sete dl
or dl, al
mov byte [esp + 0xbb], dl
mov byte [esp + 0xff], al
mov byte [esp + 0xf3], al
mov byte [esp + 0x220], al
mov byte [esp + 0x240], al
mov byte [esp + 0x164], al
mov byte [esp + 0x230], al
mov byte [esp + 0x1db], al
mov byte [esp + 0xd7], al
mov byte [esp + 0x1a1], al
mov byte [esp + 0x137], al
mov dword [esp + 0x84], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x328], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x338], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x33c], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2bc], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x320], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x268], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x330], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x310], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x12c], eax
mov byte [esp + 0x2e0], dl
mov byte [esp + 0x318], dl
mov byte [esp + 0x2d0], dl
mov byte [esp + 0xe7], dl
mov byte [esp + 0x294], dl
mov byte [esp + 0xd6], dl
mov byte [esp + 0x193], dl
mov byte [esp + 0x254], dl
mov byte [esp + 0x228], dl
mov byte [esp + 0x248], dl
mov byte [esp + 0x1c3], dl
mov byte [esp + 0x1f3], dl
mov byte [esp + 0x203], dl
mov byte [esp + 0x1af], dl
mov byte [esp + 0x202], dl
mov byte [esp + 0x314], dl
mov byte [esp + 0xcf], dl
mov byte [esp + 0x1fb], dl
mov byte [esp + 0x163], dl
mov byte [esp + 0x165], dl
mov byte [esp + 0x18b], dl
mov byte [esp + 0x1ae], dl
mov byte [esp + 0x167], dl
mov byte [esp + 0x113], dl
mov byte [esp + 0x1a2], dl
mov byte [esp + 0x2fc], dl
mov byte [esp + 0x143], dl
mov byte [esp + 0x166], dl
mov byte [esp + 0x1a3], dl
mov byte [esp + 0x324], dl
mov byte [esp + 0x300], dl
mov byte [esp + 0x2d4], dl
mov byte [esp + 0x2dc], dl
mov byte [esp + 0x304], dl
mov byte [esp + 0x2f8], dl
mov byte [esp + 0x213], dl
mov byte [esp + 0x157], dl
mov dword [esp + 0xc0], edx
mov dword [esp + 0x2c8], edx
mov dword [esp + 0x340], edx
je 0x57dd30
jmp 0x580428
mov ebx, edx
mov esi, dword [ebp + 8]
mov dword [esp + 0x48c], 0
mov dword [esp + 0x488], 0
mov dword [esp + 0x490], 0
mov dword [esp + 0x484], 0
lea eax, [esp + 0x488]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x488], 0x29
xor edx, edx
test edi, edi
jne 0x57baec
mov eax, edi
not eax
and eax, 1
add eax, edi
mov eax, 0
jne 0x57bb1a
jmp 0x57bb07
xor eax, eax
jmp 0x57bb07
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add eax, ecx
mov edx, dword [edi + 0x10]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x57baf0
mov dword [esp + 0x230], edx
mov eax, dword [esi]
mov dword [esp + 0x344], eax
mov ecx, dword [esi + 0xc]
mov eax, dword [ebx + 0x1a0]
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x9c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x344]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
lea eax, [esp + 0x488]
mov dword [esp], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 2
call fcn.00508b80
mov edx, eax
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp edx, eax
jne 0x57bdc5
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x1a0]
mov dword [esp + 0x4ac], 0
mov dword [esp + 0x4a8], 0
lea edx, [esp + 0x494]
mov dword [esp + 0x250], edx
mov dword [esp + 0x494], 4
mov dword [esp + 0x498], 2
mov dword [esp + 0x49c], eax
mov dword [esp + 0x4a0], ecx
mov dword [esp + 0x4a4], 0xfffffffc
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
jne 0x57bf83
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x298], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x328], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x2bc], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x310], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x320], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0x33c], eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x268], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x24c], eax
jmp 0x57c39e
mov dword [esp + 0x2d8], ebx
lea eax, [esp + 0x490]
mov dword [esp + 0x344], eax
lea eax, [esp + 0x48c]
mov dword [esp + 0x33c], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x328], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x340], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x338], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x310], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x320], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x268], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x2d0], eax
jmp 0x57d9ef
mov edi, ebx
mov eax, 1
mov dword [esp + 0x298], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x328], ecx
mov dword [esp + 0x318], ebx
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x2c0], ebx
mov dword [esp + 0x2b8], ebx
mov dword [esp + 0x2c4], ebx
mov dword [esp + 0x2a0], ebx
mov dword [esp + 0x2bc], ebx
mov dword [esp + 0x28c], ebx
mov dword [esp + 0x254], ebx
mov dword [esp + 0x340], ebx
mov dword [esp + 0x260], ebx
mov dword [esp + 0x338], ebx
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x2d4], ebx
mov dword [esp + 0x264], ebx
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x274], ebx
mov dword [esp + 0x270], ebx
mov dword [esp + 0x2cc], ebx
mov dword [esp + 0x290], ebx
mov dword [esp + 0x294], ebx
mov dword [esp + 0x288], ebx
mov dword [esp + 0x280], ebx
mov dword [esp + 0x29c], ebx
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x300], ebx
mov dword [esp + 0x2ec], ebx
mov dword [esp + 0x2e8], ebx
mov dword [esp + 0x2e4], ebx
mov dword [esp + 0x2c8], ebx
mov dword [esp + 0x324], ebx
mov dword [esp + 0x320], ebx
mov dword [esp + 0x31c], ebx
mov dword [esp + 0x33c], ebx
mov dword [esp + 0x344], ebx
mov dword [esp + 0x304], ebx
mov dword [esp + 0x234], ebx
mov dword [esp + 0x308], ebx
mov dword [esp + 0x238], ebx
mov dword [esp + 0x2e0], ebx
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x224], ebx
mov dword [esp + 0x27c], ebx
mov dword [esp + 0x278], ebx
mov dword [esp + 0x248], ebx
mov dword [esp + 0x228], ebx
mov dword [esp + 0x22c], ebx
mov dword [esp + 0x268], ebx
mov dword [esp + 0x284], ebx
mov dword [esp + 0x26c], ebx
mov dword [esp + 0x2f8], ebx
mov dword [esp + 0x244], ebx
mov dword [esp + 0x240], ebx
mov dword [esp + 0x23c], ebx
mov dword [esp + 0x314], ebx
mov dword [esp + 0x310], ebx
mov dword [esp + 0x2a4], ebx
jmp 0x57cc81
mov esi, 0x14
lea eax, [esp + 0x4a8]
mov dword [esp + 8], eax
lea eax, [esp + 0x4ac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x250]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x57c1a1
mov ecx, 0x13
imul eax, eax
and eax, 3
cmp eax, 2
mov ebx, dword [esp + 0x328]
mov edi, dword [esp + 0x2d4]
mov edx, dword [esp + 0x2f4]
jb 0x57d317
jmp 0x57c1b6
mov ebx, dword [esp + 0x328]
mov edi, dword [esp + 0x2d4]
mov edx, dword [esp + 0x2f4]
mov dword [esp + 0x2f4], edx
mov dword [esp + 0x2d4], edi
mov dword [esp + 0x328], ebx
cmp esi, 6
jne 0x57c390
mov eax, 3
sub eax, esi
xor eax, esi
mov edx, dword [esp + 0x330]
mov dword [esp + 0x2d0], edx
mov edi, dword [esp + 0x2b4]
mov esi, dword [esp + 0x2b8]
mov ecx, dword [esp + 0x304]
jne 0x57d8cf
jmp 0x57c39e
mov dword [esp + 0x2f4], edx
mov dword [esp + 0x328], ebx
mov ebx, dword [esp + 0x4a8]
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x334], eax
mov eax, dword [esp + 0x48c]
mov esi, dword [esp + 0x490]
lea ecx, [esi + esi*2]
mov dword [esp + 0x32c], ecx
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
jne 0x57c276
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x57c276
mov dword [esp + 0x2d4], edi
jmp 0x57c390
mov dword [esp + 0x48c], eax
mov ecx, dword [esp + 0x490]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [esp + 0x490], edx
shl esi, 3
lea ecx, [esi + esi*2]
mov dword [eax + ecx], 3
mov eax, dword [esp + 0x48c]
mov dword [eax + ecx + 4], 0xfffffffc
mov eax, dword [esp + 0x48c]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [esp + 0x48c]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x48c]
mov dword [eax + ecx + 0x10], ebx
mov eax, dword [esp + 0x48c]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], ebx
call fcn.00492770
mov esi, eax
test esi, esi
jne 0x57c32f
mov eax, 0x1a
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
je 0x57c32f
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 0x32c], ecx
mov esi, dword [esp + 0x2f4]
mov ebx, dword [esp + 0x328]
jmp 0x57d010
mov dword [esp + 0x2d4], edi
test ebx, ebx
je 0x57c37e
xor edi, edi
jmp 0x57c368
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x334]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.007c51d0
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edi, eax
jb 0x57c340
mov eax, dword [esp + 0x48c]
mov ecx, dword [esp + 0x32c]
mov dword [eax + ecx*8 + 0x14], esi
mov ecx, dword [esp + 0x304]
mov edx, dword [esp + 0x330]
mov dword [esp + 0x330], edx
mov dword [esp + 0x304], ecx
mov eax, dword [esp + 0x4ac]
mov dword [esp], eax
call fcn.004936c0
lea eax, [esp + 0x4b0]
mov dword [esp + 0x254], eax
call fcn.0044c050
mov dword [esp + 0x4b4], edx
mov dword [esp + 0x4b0], eax
lea eax, [esp + 0x490]
mov dword [esp + 0x340], eax
mov eax, dword [esp + 0x48c]
mov ecx, dword [esp + 0x490]
mov dword [esp + 0x260], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea ebx, [esp + 0x48c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x25c], eax
test eax, eax
mov edi, dword [esp + 0x2d8]
je 0x57c5bd
mov eax, 0xb
xor ecx, ecx
test cl, cl
je 0x57d648
jmp 0x57c5bd
mov esi, dword [esp + 0x25c]
mov dword [ebx], esi
mov edx, dword [esp + 0x340]
mov eax, dword [edx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [edx], eax
mov eax, dword [esp + 0x260]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esi + eax], 4
mov ecx, dword [ebx]
mov dword [ecx + eax + 4], 0
mov ecx, dword [ebx]
mov byte [ecx + eax + 8], 0
mov ecx, dword [ebx]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [ebx]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [ebx]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov esi, eax
test esi, esi
je 0x57c5a8
mov al, 1
test al, al
je 0x57c5a8
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [ebx]
mov ecx, dword [esp + 0x260]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [edi + 8]
lea ecx, [esp + 0x484]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x488]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
mov edx, eax
and eax, 1
inc eax
xor eax, edx
sete al
movzx eax, al
cmp edx, eax
jne 0x57c643
mov esi, edx
mov eax, dword [esp + 0x484]
mov ecx, dword [eax + 4]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x57c687
mov dword [esp + 0x324], 0
mov eax, dword [esp + 0x330]
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x320], 0
mov dword [esp + 0x31c], 0
mov dword [esp + 0x33c], ebx
mov dword [esp + 0x338], ebx
mov eax, dword [esp + 0x340]
mov dword [esp + 0x344], eax
mov ebx, dword [ebp + 8]
mov edx, esi
jmp 0x57d952
mov dword [esp + 0x33c], eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x304], eax
xor eax, eax
mov edx, dword [esp + 0x304]
jmp 0x57c601
mov esi, 3
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add eax, ecx
mov edx, 0x70000003
mov dword [esp + 0x33c], ebx
mov ecx, dword [esp + 0x340]
mov dword [esp + 0x344], ecx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x57c5d0
mov dword [esp + 0x338], ebx
mov dword [esp + 0x2d8], edi
mov edi, dword [esp + 0x2f0]
mov ecx, dword [esp + 0x330]
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x334], eax
jmp 0x57c78f
mov dword [esp + 0x2d8], edi
mov edi, dword [esp + 0x2f0]
mov eax, dword [esp + 0x330]
mov dword [esp + 0x2d0], eax
mov esi, dword [esp + 0x2f4]
mov dword [esp + 0x33c], ebx
mov dword [esp + 0x338], ebx
mov eax, dword [esp + 0x340]
mov dword [esp + 0x344], eax
jmp 0x57d9ef
mov dword [esp + 0x2d8], edi
mov ecx, dword [ebp + 8]
lea edx, [ecx + 0x1c]
mov dword [esp + 0x234], edx
lea edx, [ecx + 0x14]
mov dword [esp + 0x308], edx
lea edx, [ecx + 0x4c]
mov dword [esp + 0x238], edx
lea edx, [ecx + 0xa0]
mov dword [esp + 0x2e0], edx
lea edx, [ecx + 0xa8]
mov dword [esp + 0x2dc], edx
lea edx, [ecx + 0x48]
mov dword [esp + 0x2fc], edx
mov dword [esp + 0x280], eax
lea eax, [ecx + 0x90]
mov dword [esp + 0x224], eax
lea eax, [ecx + 0x98]
mov dword [esp + 0x27c], eax
lea eax, [ecx + 0x9c]
mov dword [esp + 0x278], eax
lea eax, [ecx + 0x40]
mov dword [esp + 0x248], eax
lea eax, [ecx + 0x18]
mov dword [esp + 0x228], eax
lea eax, [ecx + 0x2c]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x29c], 0
mov dword [esp + 0x2b0], 0
mov dword [esp + 0x2ac], 0
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x324], 0
mov dword [esp + 0x320], 0
mov dword [esp + 0x31c], 0
mov dword [esp + 0x33c], ebx
mov dword [esp + 0x338], ebx
mov eax, dword [esp + 0x340]
mov dword [esp + 0x344], eax
mov ecx, esi
jmp 0x57c8ec
cmp esi, 3
je 0x57c85f
xor eax, eax
test al, al
jne 0x57c85f
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x32c], edi
xor eax, eax
mov ebx, dword [esp + 0x328]
mov edi, dword [esp + 0x300]
jmp 0x57c80a
mov esi, 9
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add eax, ecx
mov edx, 0x700002bb
mov ecx, dword [esp + 0x338]
mov dword [esp + 0x33c], ecx
mov ecx, dword [esp + 0x340]
mov dword [esp + 0x344], ecx
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x57c7d0
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x330], eax
cmp esi, 9
jne 0x57c872
mov dword [esp + 0x300], edi
mov dword [esp + 0x328], ebx
mov eax, dword [esp + 0x330]
mov dword [esp + 0x2d0], eax
mov edi, dword [esp + 0x32c]
mov esi, dword [esp + 0x334]
jmp 0x57d9ef
mov dword [esp + 0x2d0], ecx
mov esi, dword [esp + 0x334]
jmp 0x57d9ef
xor esi, esi
mov ecx, dword [esp + 0x298]
mov edx, dword [esp + 0x30c]
jmp 0x57c8be
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
call fcn.00627900
mov ecx, dword [esp + 0x2ec]
mov edx, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x2e4]
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x57c890
mov dword [esp + 0x300], edi
mov eax, dword [esp + 0x330]
mov edi, dword [esp + 0x32c]
jmp 0x57d888
mov dword [esp + 0x304], ecx
mov ebx, dword [esp + 0x280]
mov edi, dword [ebx + 8]
imul eax, dword [esp + 0x29c], 0x1c
mov esi, dword [edi + eax + 4]
mov dword [esp + 0x26c], esi
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
mov edx, 3
setne cl
movzx ecx, cl
cmp esi, ecx
lea ecx, [ebx + 8]
mov dword [esp + 0x268], ecx
jne 0x57c9f2
mov esi, 6
mov ecx, dword [edi + eax + 0x14]
mov dword [esp + 0x2c4], 0x30000003
cmp ecx, 4
jne 0x57ca2f
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
mov ebx, dword [esp + 0x29c]
je 0x57ca80
xor ecx, ecx
jmp 0x57c997
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [edi + eax + 0x18]
mov esi, dword [edx]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x57c980
mov dword [esp + 0x284], edi
mov ecx, dword [esp + 0x2ac]
mov edx, ecx
mov eax, dword [esp + 0x2b0]
mov edi, eax
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x2d0], ecx
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0x2f4], eax
mov edx, dword [esp + 0x304]
jmp 0x57ce39
mov eax, dword [esp + 0x29c]
mov dword [esp + 0x2a4], eax
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x32c], eax
mov ebx, dword [esp + 0x2ac]
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0x334], eax
mov ecx, dword [esp + 0x314]
jmp 0x57cad9
mov dword [esp + 0x284], edi
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 0x2b4], ecx
mov edx, dword [esp + 0x2ac]
mov dword [esp + 0x2c0], edx
mov edi, dword [esp + 0x2a8]
mov dword [esp + 0x2b8], edi
mov eax, dword [esp + 0x29c]
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x2f0], ecx
mov dword [esp + 0x330], edx
mov edx, edi
jmp 0x57cac6
mov dword [esp + 0x284], edi
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x2b4], eax
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0x2c0], ecx
mov edx, dword [esp + 0x2a8]
mov dword [esp + 0x2b8], edx
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x330], ecx
mov ebx, dword [esp + 0x328]
mov edi, dword [esp + 0x2d4]
jmp 0x57c1b6
cmp edx, 3
jne 0x57cbc6
mov eax, edx
and eax, 1
xor eax, edx
not eax
test eax, eax
je 0x57cbc6
mov dword [esp + 0x314], ecx
imul eax, dword [esp + 0x2a4], 0x1c
mov ecx, dword [edi + eax]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb ecx, 0
cmp ecx, 1
ja 0x57cc32
mov edx, 3
sub edx, ecx
xor edx, ecx
je 0x57cc32
mov esi, 6
add eax, edi
mov dword [esp + 0x284], edi
mov edx, dword [esp + 0x2d8]
mov edi, dword [edx + 0x1a0]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0x9c]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x230]
mov dword [esp], eax
mov dword [esp + 0x10], 0x1f
mov dword [esp + 0xc], 0
call fcn.00579030
mov edx, eax
test edx, edx
mov eax, dword [esp + 0x338]
jne 0x57cce1
mov ecx, ebx
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x33c], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 0x344], eax
mov edi, dword [esp + 0x32c]
mov dword [esp + 0x2f0], edi
mov esi, dword [esp + 0x334]
mov dword [esp + 0x2f4], esi
jmp 0x57ce39
mov dword [esp + 0x284], edi
mov eax, dword [esp + 0x310]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0x314], ecx
call fcn.00411640
mov dword [esp + 0x2c4], 0x70000006
test eax, eax
mov ecx, ebx
mov edi, dword [esp + 0x32c]
mov dword [esp + 0x2f0], edi
mov esi, dword [esp + 0x334]
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x2c0], ebx
mov dword [esp + 0x2d0], ebx
mov edx, dword [esp + 0x304]
je 0x57d8cf
jmp 0x57ce39
mov ecx, dword [esp + 0x26c]
cmp ecx, 0x20
mov edx, dword [esp + 0x2d8]
mov eax, dword [esp + 0x338]
je 0x57ccfa
mov dword [esp + 0x284], edi
mov eax, 5
cmp ecx, 0x41
jne 0x57cd65
mov edi, edx
mov eax, 0xf
mov ecx, dword [esp + 0x32c]
mov edx, dword [esp + 0x334]
mov esi, dword [esp + 0x258]
mov dword [esp + 0x2f4], edx
mov dword [esp + 0x2f0], ecx
mov dword [esp + 0x330], ebx
mov dword [esp + 0x258], esi
mov dword [esp + 0x2d8], edi
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
mov edi, 1
cmp eax, ecx
je 0x57c148
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x330]
mov dword [esp + 0x2d0], ecx
mov edx, dword [esp + 0x304]
jmp 0x57ce39
mov dword [esp + 0x2d0], ebx
mov ecx, eax
mov edi, dword [esp + 0x340]
mov dword [esp + 0x344], edi
jmp 0x57cd20
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x284], edi
mov esi, 9
mov ebx, 1
mov edx, dword [esp + 0x304]
mov ecx, dword [esp + 0x33c]
cmp esi, 6
mov edi, dword [esp + 0x32c]
je 0x57cd86
mov dword [esp + 0x33c], ecx
mov dword [esp + 0x338], eax
imul esi, esi
and esi, 3
cmp esi, 2
mov dword [esp + 0x2f0], edi
mov esi, dword [esp + 0x334]
mov dword [esp + 0x2f4], esi
mov ecx, ebx
jne 0x57ce39
jmp 0x57d9ef
mov dword [esp + 0x330], ebx
mov ebx, dword [esp + 0x328]
mov edi, dword [esp + 0x2d4]
mov ecx, dword [esp + 0x2c8]
jmp 0x57d39e
mov dword [esp + 0x33c], ecx
mov dword [esp + 0x338], eax
mov esi, dword [esp + 0x334]
jmp 0x57d9ef
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x328], ebx
mov dword [esp + 0x2d8], edx
mov eax, dword [esp + 0x26c]
cmp eax, 0x17
jne 0x57ce08
mov ebx, 0xc
imul eax, eax
and eax, 3
cmp eax, 2
mov edi, dword [esp + 0x32c]
mov dword [esp + 0x2f0], edi
mov ecx, dword [esp + 0x330]
mov dword [esp + 0x2d0], ecx
mov esi, dword [esp + 0x334]
mov dword [esp + 0x2f4], esi
mov edx, dword [esp + 0x304]
jb 0x57d861
jmp 0x57ce39
mov edi, dword [esp + 0x32c]
mov dword [esp + 0x2f0], edi
mov ecx, dword [esp + 0x330]
mov dword [esp + 0x2d0], ecx
mov esi, dword [esp + 0x334]
mov dword [esp + 0x2f4], esi
mov edx, dword [esp + 0x304]
mov dword [esp + 0x334], esi
mov dword [esp + 0x304], edx
mov ebx, ecx
mov edx, dword [esp + 0x2a4]
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx esi, al
add esi, edx
mov eax, dword [esp + 0x484]
mov dword [esp + 0x280], eax
mov dword [esp + 0x2c4], 0
cmp esi, dword [eax + 4]
jae 0x57cedf
mov eax, 4
mov ecx, esi
or ecx, 2
mov edx, esi
mov dword [esp + 0x29c], esi
xor edx, 2
add edx, ecx
mov dword [esp + 0x2b0], edi
mov edx, ebx
mov dword [esp + 0x2ac], edx
mov esi, dword [esp + 0x334]
mov dword [esp + 0x2a8], esi
mov dword [esp + 0x2c0], edx
mov dword [esp + 0x2b4], edi
mov dword [esp + 0x2b8], esi
mov ecx, dword [esp + 0x304]
jne 0x57d1c7
jmp 0x57d8cf
mov dword [esp + 0x29c], esi
mov dword [esp + 0x2b0], edi
mov dword [esp + 0x2ac], ebx
mov esi, dword [esp + 0x334]
mov dword [esp + 0x2a8], esi
mov dword [esp + 0x2c0], ebx
jmp 0x57d8cf
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
je 0x57d871
mov dword [esp + 0x330], ecx
mov dword [esp + 0x304], edx
mov esi, 0xd
mov dword [esp + 0x480], 0
mov eax, dword [esp + 0x268]
mov eax, dword [eax]
imul ecx, dword [esp + 0x2a4], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
lea ecx, [esp + 0x480]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00627820
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x57cff6
mov dword [esp + 0x32c], edi
mov edi, dword [esp + 0x480]
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x57cfa1
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x57cfac
mov eax, dword [eax]
mov ecx, dword [esp + 0x22c]
mov dword [ecx], eax
mov eax, 0xa
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0x234]
mov dword [edx], ecx
lea ecx, [edi + 8]
mov dword [esp + 0x264], ecx
mov edx, dword [edi + 8]
test edx, edx
mov ebx, dword [esp + 0x328]
mov esi, dword [esp + 0x334]
jne 0x57d009
mov ecx, edx
and ecx, 1
xor ecx, edx
mov dword [esp + 0x24c], edx
not ecx
test ecx, ecx
jne 0x57d347
jmp 0x57d010
mov ecx, dword [esp + 0x330]
mov edx, dword [esp + 0x304]
jmp 0x57c78f
mov dword [esp + 0x24c], edx
cmp eax, 0xa
je 0x57d047
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x57d047
mov dword [esp + 0x2d4], edi
mov dword [esp + 0x328], ebx
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x2f4], esi
jmp 0x57c390
mov dword [esp + 0x334], esi
mov dword [esp + 0x2d4], edi
mov dword [esp + 0x328], ebx
mov ecx, dword [esp + 0x24c]
mov eax, dword [ecx]
test eax, eax
mov esi, ecx
mov edi, dword [esp + 0x264]
mov ebx, dword [esp + 0x228]
je 0x57d0ba
xor ecx, ecx
mov esi, dword [esp + 0x24c]
jmp 0x57d0a7
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [eax]
mov dword [ebx], edx
mov esi, dword [edi]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x57d090
mov eax, 0x19
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x57d121
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
je 0x57d121
mov eax, dword [ecx]
mov ecx, dword [esp + 0x308]
mov dword [ecx], eax
mov eax, dword [edi]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x2f0], eax
mov eax, dword [esp + 0x330]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x334]
mov dword [esp + 0x2f4], eax
mov edi, dword [esp + 0x2d8]
mov edx, dword [esp + 0x304]
jmp 0x57d15e
mov dword [esp + 0x258], esi
mov ecx, dword [esp + 0x32c]
mov dword [esp + 0x2f0], ecx
mov ecx, dword [esp + 0x330]
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x334]
mov dword [esp + 0x2f4], ecx
mov edx, dword [esp + 0x304]
jmp 0x57d939
mov dword [esp + 0x304], edx
mov dword [esp + 0x2d8], edi
mov edi, dword [esp + 0x258]
mov ecx, dword [edi + 8]
xor edx, edx
test ecx, ecx
mov ebx, dword [esp + 0x264]
jne 0x57d20e
mov eax, 0xe
mov esi, 3
sub esi, ecx
xor esi, ecx
mov dword [esp + 0x318], edi
je 0x57d248
mov ecx, dword [esp + 0x2b0]
mov edx, dword [esp + 0x2ac]
mov esi, dword [esp + 0x2a8]
mov dword [esp + 0x318], edi
mov edi, ecx
mov ecx, dword [esp + 0x304]
cmp eax, 4
jne 0x57d27c
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x2b0], edi
mov dword [esp + 0x2ac], edx
mov dword [esp + 0x2a8], esi
mov edx, dword [esp + 0x2f0]
mov eax, dword [esp + 0x2d0]
mov esi, dword [esp + 0x2f4]
jb 0x57c8ec
jmp 0x57d2a6
mov dword [esp + 0x318], edi
jmp 0x57d248
mov eax, edx
not eax
and eax, 1
add eax, edx
setne al
movzx eax, al
add edx, eax
mov eax, dword [ecx]
shl eax, 4
mov esi, dword [esp + 0x308]
or dword [esi], eax
mov eax, dword [ebx]
mov dword [esp + 0x318], eax
mov eax, edx
or eax, 2
mov esi, edx
xor esi, 2
add esi, eax
setne al
movzx eax, al
cmp edx, eax
jb 0x57d220
mov edx, dword [esp + 0x2f0]
mov eax, dword [esp + 0x2d0]
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x304]
jmp 0x57d2a6
mov dword [esp + 0x2b0], edi
mov dword [esp + 0x2ac], edx
mov dword [esp + 0x2a8], esi
mov edx, dword [esp + 0x2f0]
mov eax, dword [esp + 0x2d0]
mov esi, dword [esp + 0x2f4]
mov dword [esp + 0x330], eax
mov dword [esp + 0x304], ecx
mov ecx, 0xa
mov eax, dword [esp + 0x318]
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x57d2f9
mov dword [esp + 0x274], eax
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x2f0], edx
mov dword [esp + 0x32c], edx
mov edx, esi
mov ebx, dword [esp + 0x328]
mov edi, dword [esp + 0x2d4]
jb 0x57d347
jmp 0x57d317
mov dword [esp + 0x274], eax
mov dword [esp + 0x2f0], edx
mov edx, esi
mov ebx, dword [esp + 0x328]
mov edi, dword [esp + 0x2d4]
cmp ecx, 0xa
je 0x57d32b
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x57c20b
mov esi, 0x1f
mov eax, dword [esp + 0x274]
mov eax, dword [eax]
mov ecx, dword [esp + 0x248]
mov dword [ecx], eax
jmp 0x57dc9b
mov eax, 2
mov edx, dword [edi]
test edx, edx
jne 0x57d387
mov dword [esp + 0x334], esi
mov esi, 3
mov ecx, edx
or ecx, 2
mov dword [esp + 0x270], edx
xor edx, 2
add edx, ecx
mov ecx, edi
mov dword [esp + 0x2f4], edi
mov edx, dword [esp + 0x2d8]
jne 0x57db3f
jmp 0x57d39e
mov dword [esp + 0x334], esi
mov dword [esp + 0x270], edx
mov ecx, edi
mov edx, dword [esp + 0x2d8]
mov dword [esp + 0x2d4], edi
cmp eax, 2
jne 0x57cda0
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x57cda0
mov dword [esp + 0x328], ebx
mov ebx, edx
mov dword [esp + 0x2c8], ecx
mov esi, 0x15
mov eax, dword [esp + 0x270]
lea eax, [eax + 4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x238]
mov dword [esp], eax
mov dword [esp + 4], 0x40
call fcn.004959f0
mov edx, dword [esp + 0x480]
mov ecx, dword [edx]
mov edi, dword [ecx]
dec edi
cmp edi, 3
ja case.default.0x57d44f
mov dword [esp + 0x2d8], ebx
mov eax, 0xb
mov ebx, edx
xor edx, edx
mov esi, dword [esp + 0x334]
mov dword [esp + 0x2ec], esi
mov esi, dword [esp + 0x330]
mov dword [esp + 0x2e8], esi
mov esi, dword [esp + 0x32c]
mov dword [esp + 0x2e4], esi
mov esi, ebx
mov dword [esp + 0x300], ebx
jmp dword [edi*4 + 0x7dc424]
mov eax, dword [ecx + 0x28]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x224]
movsd qword [eax], xmm0
mov eax, dword [esp + 0x2fc]
mov dword [eax], 1
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x2f4], eax
mov eax, dword [esp + 0x300]
mov esi, eax
mov ecx, dword [esp + 0x334]
mov dword [esp + 0x2ec], ecx
mov ecx, dword [esp + 0x330]
mov dword [esp + 0x2e8], ecx
mov ecx, dword [esp + 0x32c]
mov dword [esp + 0x2e4], ecx
mov dword [esp + 0x2f8], eax
jmp 0x57d751
mov eax, edx
not eax
and eax, 1
add eax, edx
setne al
movzx eax, al
add edx, eax
mov eax, dword [ecx + 0x24]
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x27c]
mov dword [esi], eax
mov esi, dword [esp + 0x300]
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
mov eax, dword [eax]
mov edi, dword [esp + 0x278]
mov dword [edi], eax
mov eax, dword [esp + 0x2fc]
mov dword [eax], 3
mov dword [esp + 0x2c8], esi
test edx, edx
je 0x57d4d0
mov al, 1
test al, al
je 0x57d4d0
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x2f4], eax
mov esi, dword [esp + 0x2c8]
mov eax, dword [esp + 0x334]
mov dword [esp + 0x2ec], eax
mov eax, dword [esp + 0x330]
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x2e4], eax
mov eax, dword [esp + 0x300]
mov dword [esp + 0x2f8], eax
jmp 0x57d751
mov dword [esp + 0x2d8], ebx
mov eax, dword [esp + 0x334]
mov dword [esp + 0x2ec], eax
mov eax, dword [esp + 0x330]
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2f8], edx
mov edi, edx
mov edx, dword [esp + 0x304]
mov ebx, dword [esp + 0x328]
jmp 0x57c82b
mov eax, 0x17
mov ecx, dword [ecx + 0x2c]
mov dword [esp + 0x244], ecx
mov edx, dword [ecx + 8]
mov dword [esp + 0x240], edx
mov esi, dword [ecx + 0xc]
mov dword [esp + 0x23c], esi
xor ecx, ecx
or edx, esi
mov edx, 0
mov ebx, dword [esp + 0x334]
mov dword [esp + 0x2ec], ebx
mov esi, dword [esp + 0x330]
mov dword [esp + 0x2e8], esi
mov edi, dword [esp + 0x32c]
mov dword [esp + 0x2e4], edi
mov esi, dword [esp + 0x300]
mov dword [esp + 0x2f8], esi
mov esi, ebx
mov dword [esp + 0x2f0], edi
mov dword [esp + 0x2f4], esi
mov edi, dword [esp + 0x2d8]
mov ebx, dword [esp + 0x338]
je 0x57d696
cmp eax, 0xb
je 0x57c446
imul eax, eax
and eax, 3
cmp eax, 2
je 0x57c446
mov ecx, dword [esp + 0x240]
mov eax, dword [esp + 0x244]
sub ecx, dword [eax]
mov edx, dword [esp + 0x23c]
sbb edx, 0
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x32c], eax
mov esi, dword [esp + 0x2f4]
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x334], esi
mov dword [esp + 0x338], ebx
mov dword [esp + 0x2d8], edi
xor eax, eax
mov esi, dword [esp + 0x2c8]
jmp 0x57d701
add edi, eax
setne bl
movzx esi, bl
add eax, esi
mov esi, dword [esp + 0x2e0]
mov dword [esi], ecx
mov dword [esi + 4], edx
mov esi, dword [esp + 0x300]
mov esi, dword [esi]
mov esi, dword [esi + 0x2c]
mov esi, dword [esi]
mov edi, dword [esp + 0x2dc]
mov dword [edi], esi
mov esi, dword [esp + 0x2fc]
mov dword [esi], 2
mov esi, dword [esp + 0x2f8]
mov edi, eax
not edi
and edi, 1
mov ebx, eax
add ebx, edi
setne bl
movzx ebx, bl
cmp eax, ebx
jb 0x57d6c0
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x2f4], eax
jmp 0x57d751
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x57dbf9
mov eax, dword [esp + 0x2fc]
mov dword [eax], 0
mov dword [esp + 0x2f4], edx
mov dword [esp + 0x2f8], esi
mov ebx, dword [esp + 0x2cc]
mov dword [esp], esi
call fcn.00627900
mov eax, dword [esp + 0x308]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0x310], eax
cmp ecx, 0x80
jb 0x57da74
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 1
mov eax, dword [esp + 0x2f4]
ja 0x57da84
mov dword [esp + 0x2cc], ebx
mov dword [esp + 0x314], ecx
xor edi, edi
mov edx, dword [esp + 0x298]
jmp 0x57d814
mov ebx, 9
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x314]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 4], eax
mov dword [esp], str.Feature_0x_x_has_invalid_concurrency_type_0x_02x_n
call fcn.004414c0
mov edx, dword [esp + 0x334]
mov eax, dword [esp + 0x330]
mov dword [esp + 0x30c], eax
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x328], eax
mov eax, 3
sub eax, edi
mov ecx, edi
xor ecx, eax
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x57d7c0
mov dword [esp + 0x298], edx
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x2c8], esi
mov edx, dword [esp + 0x304]
mov ecx, dword [esp + 0x330]
mov edi, dword [esp + 0x32c]
mov esi, dword [esp + 0x334]
mov dword [esp + 0x334], esi
cmp ebx, 9
jne 0x57cf0e
mov eax, ecx
mov ecx, dword [esp + 0x298]
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0x328]
mov dword [esp + 0x328], ebx
mov dword [esp + 0x30c], edx
mov dword [esp + 0x298], ecx
mov dword [esp + 0x2c4], 0x70000006
mov dword [esp + 0x2f0], edi
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x334]
mov dword [esp + 0x2f4], eax
mov edi, ebx
mov dword [esp + 0x2c0], edx
mov esi, ecx
mov edx, esi
mov dword [esp + 0x2b8], edx
mov eax, 9
test edx, edx
mov dword [esp + 0x2b4], edi
mov ecx, dword [esp + 0x2c4]
mov dword [esp + 0x324], ecx
mov ecx, dword [esp + 0x2c0]
mov dword [esp + 0x320], ecx
mov dword [esp + 0x31c], edi
mov edi, dword [esp + 0x2f0]
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x338]
mov dword [esp + 0x33c], ecx
mov ecx, dword [esp + 0x340]
mov dword [esp + 0x344], ecx
jne 0x57d9ef
cmp eax, 9
mov edi, dword [esp + 0x2d8]
mov ebx, dword [ebp + 8]
je 0x57d952
mov al, 1
test al, al
jne 0x57d15e
xor esi, esi
mov ecx, dword [esp + 0x33c]
jmp 0x57d9bf
inc esi
mov dword [ebx + 0x30], 0
mov ecx, dword [esp + 0x320]
test ecx, ecx
setne al
movzx eax, al
shl eax, 2
mov dword [ebx + 0x34], eax
mov dword [ebx + 0x38], ecx
mov eax, dword [esp + 0x31c]
mov dword [ebx + 0x3c], eax
call fcn.0044c050
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0040fb90
mov ecx, dword [esp + 0x338]
mov eax, dword [esp + 0x340]
mov dword [esp + 0x344], eax
mov edx, dword [esp + 0x324]
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x57d960
mov dword [esp + 0x33c], ecx
mov dword [esp + 0x2d8], edi
mov edi, dword [esp + 0x2f0]
mov esi, dword [esp + 0x2f4]
mov ebx, esi
mov dword [esp + 0x334], ebx
mov dword [esp + 0x32c], edi
mov dword [esp + 0x304], edx
mov esi, dword [esp + 0x344]
mov ecx, dword [esi]
mov dword [esp + 0x2a0], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
mov dword [esp + 0x2bc], 0
cmp ecx, eax
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x2f4], eax
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x330], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x290], esi
mov dword [esp + 0x294], edx
je 0x57dc0c
jmp 0x57dab1
mov dword [esp + 0x2cc], ebx
mov eax, dword [esp + 0x2f4]
jmp 0x57da8b
mov dword [esp + 0x2cc], ebx
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x2c8], esi
mov ebx, dword [esp + 0x330]
mov edi, dword [esp + 0x284]
mov edx, 0xe
jmp 0x57cad9
mov ebx, dword [esp + 0x2cc]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x2bc]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + ecx*8 + 0x14]
test eax, eax
jne 0x57daff
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x57daff
mov edi, dword [esp + 0x2c8]
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0x28c], eax
mov eax, dword [esp + 0x2bc]
mov dword [esp + 0x288], eax
jmp 0x57db81
mov esi, 9
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x290]
mov eax, dword [eax]
mov dword [esp + 0x28c], eax
mov eax, dword [esp + 0x2bc]
mov dword [esp + 0x288], eax
mov edi, dword [esp + 0x2c8]
mov edx, dword [esp + 0x2d8]
mov ebx, dword [esp + 0x328]
cmp esi, 3
jne 0x57db6c
mov dword [esp + 0x328], ebx
mov dword [esp + 0x2d8], edx
mov eax, 3
sub eax, esi
xor eax, esi
mov esi, edi
mov ebx, dword [esp + 0x2cc]
jne 0x57d758
jmp 0x57db81
mov dword [esp + 0x328], ebx
mov dword [esp + 0x2d8], edx
mov ebx, dword [esp + 0x2cc]
mov dword [esp + 0x2cc], ebx
mov dword [esp + 0x2c8], edi
mov eax, 0x16
mov edx, dword [esp + 0x288]
mov ecx, edx
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
setne cl
movzx esi, cl
add esi, edx
mov dword [esp + 0x2bc], esi
mov ecx, dword [esp + 0x28c]
cmp esi, ecx
mov edx, dword [esp + 0x2f4]
mov dword [esp + 0x2d4], edx
mov dword [esp + 0x2a0], ecx
mov edi, dword [esp + 0x32c]
mov ebx, dword [esp + 0x334]
mov esi, dword [esp + 0x2f8]
jae 0x57dc0c
cmp eax, 0xb
mov edx, dword [esp + 0x2d4]
je 0x57d726
mov dword [esp + 0x2f4], edx
mov dword [esp + 0x2f8], esi
jmp 0x57dab1
mov dword [esp + 0x2f4], ebx
mov dword [esp + 0x2f0], edi
mov eax, dword [esp + 0x2cc]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov edi, dword [esp + 0x484]
xor ebx, ebx
test edi, edi
jne 0x57dc73
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x57dcbf
jmp 0x57dc73
mov esi, 0x10
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
adc ebx, 0
mov dword [esp], edi
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, ebx
not eax
and eax, 1
add eax, ebx
setne al
movzx eax, al
cmp ebx, eax
jb 0x57dc50
mov ebx, dword [esp + 0x328]
mov edi, dword [esp + 0x2d4]
mov edx, dword [esp + 0x2f4]
cmp esi, 0x10
je 0x57dcbf
imul esi, esi
and esi, 3
cmp esi, 3
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x32c], eax
mov esi, edx
jne 0x57d347
mov eax, dword [esp + 0x294]
jmp 0x58596e
mov esi, 0x11
mov bl, 0x60
inc eax
mov dword [edx + 4], 0
mov dword [edx], 0
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x57dcd0
mov byte [esp + 0xab], bl
cmp esi, 0x10
je 0x585519
imul esi, esi
and esi, 3
cmp esi, 3
jne 0x57dd30
jmp 0x585519
mov byte [esp + 0xab], 0xd
mov eax, dword [ebp + 0x28]
mov dword [eax + 4], 0
mov dword [eax], 0
mov eax, 4
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
setne byte [esp + 0x157]
je 0x57dd7e
mov al, 0x4a
mov esi, 5
movzx eax, al
cmp eax, 0x2b
je 0x57ff0d
cmp eax, 0x4a
jne 0x57ff25
mov eax, 0x1a
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov esi, dword [esp + 0x2cc]
jmp 0x583963
mov ebx, dword [esp + 0x330]
cmp eax, 3
jne 0x57dddc
mov eax, 8
mov ecx, 9
mov byte [esp + 0x113], 0x73
mov edx, dword [esp + 0xf8]
cmp dword [edx + 0x18], 0
mov edx, dword [esp + 0x204]
mov dword [esp + 0x2c0], edx
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0x2bc], edx
mov edx, dword [esp + 0x22c]
mov dword [esp + 0x2b8], edx
jne 0x581181
jmp 0x57fcfd
mov edi, dword [ebp + 0x10]
mov dl, 0x1c
test edi, edi
sete al
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
setb cl
mov dword [esp + 0x2f4], 0
and cl, al
mov byte [esp + 0x1db], cl
jne 0x57de6d
mov byte [esp + 0x1a1], 0x1c
xor ecx, ecx
jmp 0x57de3f
mov eax, 7
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [edi]
mov dword [esp + 0x2f4], edx
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x57de20
cmp eax, 7
jne 0x57de96
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x57de96
mov dl, byte [esp + 0x1a1]
movzx ecx, dl
cmp ecx, 0x1c
je 0x57ded1
mov byte [esp + 0x1a1], dl
mov eax, 0xa
cmp ecx, 0x79
jne 0x57dfb4
mov dword [esp + 0x330], ebx
jmp 0x58375c
mov byte [esp + 0x2d4], 5
imul eax, dword [esp + 0x310], 0x1c
mov ecx, dword [ebx + eax]
cmp ecx, 1
je 0x57e095
mov dword [esp + 0x330], ebx
mov eax, 9
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
jne 0x5818a2
jmp 0x5835ed
mov edi, 0x10
mov byte [esp + 0x1a1], 0x1c
mov byte [esp + 0x1af], 0x33
call fcn.0044c050
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1b8], edx
lea eax, [esp + 0x408]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x408], 0x28
lea eax, [esp + 0x410]
mov dword [esp + 0x33c], eax
mov eax, dword [esp + 0x40c]
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x1cc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x40c]
mov dword [esp + 0x344], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
jne 0x57e0a1
mov dword [esp + 0x330], ebx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x340], 0x70000003
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x1fc], eax
jne 0x585519
jmp 0x584ae8
mov esi, 0xa
mov byte [esp + 0x1a1], 0x79
mov byte [esp + 0x1af], 0x33
call fcn.0044c050
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1b8], edx
lea eax, [esp + 0x408]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x408], 0x28
lea eax, [esp + 0x410]
mov dword [esp + 0x33c], eax
mov eax, dword [esp + 0x40c]
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x1cc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x40c]
mov dword [esp + 0x344], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
mov dword [esp + 0x340], 0x70000003
je 0x57e0c9
mov dword [esp + 0x330], ebx
mov ecx, eax
mov dword [esp + 0x16c], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x1fc], eax
jne 0x584afb
mov dword [esp + 0x330], ebx
jmp 0x5835ed
mov dword [esp + 0x16c], eax
mov dword [esp + 0x330], ebx
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x1fc], eax
jmp 0x584ae8
mov dword [esp + 0x16c], eax
mov dword [esp + 0x330], ebx
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x1fc], eax
jmp 0x580782
mov byte [esp + 0x1af], 0x33
mov bl, 0x1d
mov esi, dword [esp + 0x344]
mov edi, dword [esp + 0x16c]
mov dword [esi], edi
mov edx, dword [esp + 0x33c]
mov eax, dword [edx]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x1cc]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 0x10
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
test eax, eax
jne 0x57e1a6
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x180], eax
not ecx
mov dword [esp + 0x340], 0x70000003
test ecx, ecx
jne 0x585519
jmp 0x584bda
mov dword [esp + 0x180], eax
jmp 0x584bda
mov byte [esp + 0x202], 0x26
mov dword [esp + 4], ecx
mov esi, dword [esp + 0x180]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1cc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov edx, dword [esp + 0x1fc]
test edx, edx
sete al
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
and cl, al
mov byte [esp + 0xd7], cl
movzx eax, cl
cmp eax, 1
jne 0x584d4e
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
test eax, eax
jne 0x584d4e
mov ecx, 0x10
mov ebx, 0x70000003
jmp 0x581ba0
mov byte [esp + 0x202], 0x26
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x17c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov dword [esp + 0x340], 0x70000003
je 0x57e29d
mov esi, 0x10
mov ecx, eax
mov dword [esp + 0x150], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x584ea0
jmp 0x585519
mov dword [esp + 0x150], eax
jmp 0x585519
lea eax, [esp + 0x3d0]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x70]
mov dword [esp], esi
mov dword [esp + 8], 0x29
call fcn.007c51d0
mov edi, dword [esp + 0x344]
mov eax, dword [edi]
mov ecx, dword [esp + 0x94]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
call fcn.0044c050
mov dword [esp + 0x41c], edx
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x33c]
mov esi, dword [eax]
lea ebx, [esi + esi*2]
lea eax, [ebx*8 + 0x18]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x57e63e
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x57e63e
mov dword [esp + 0x170], ebx
mov ebx, dword [esp + 0x344]
mov dword [ebx], eax
mov edi, dword [esp + 0x33c]
mov ecx, dword [edi]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [edi], edx
shl esi, 3
lea ecx, [esi + esi*2]
mov dword [eax + ecx], 4
mov eax, dword [ebx]
mov dword [eax + ecx + 4], 0
mov eax, dword [ebx]
mov byte [eax + ecx + 8], 0
mov eax, dword [ebx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [ebx]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [ebx]
mov ebx, dword [esp + 0x170]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov esi, eax
test esi, esi
je 0x57e63e
xor eax, eax
test al, al
jne 0x57e63e
mov edi, 0x11
mov byte [esp + 0x165], 0x2c
lea eax, [esp + 0x418]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov dword [eax + ebx*8 + 0x14], esi
test byte [esp + 0xd7], 1
mov bl, byte [esp + 0x294]
jne 0x580611
jmp 0x58594f
mov cl, 0x49
mov eax, 3
movzx ecx, cl
cmp ecx, 0x49
jne 0x584b11
mov dword [esp + 0x340], 0x70000003
jmp 0x585519
mov eax, 0x11
mov byte [esp + 0x1fb], 0x79
mov byte [esp + 0xcf], 0x45
mov ecx, dword [esp + 0x1fc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x57e6bc
mov byte [esp + 0x314], 0x21
mov byte [esp + 0x163], 0x27
mov edx, ecx
mov dword [esp + 0x1f4], edx
mov ecx, 0x15
imul edx, edx
and edx, 3
cmp edx, 2
mov edx, dword [esp + 0x330]
jne 0x583e89
jmp 0x580511
mov dword [esp + 0x1f4], ecx
mov byte [esp + 0x314], 0x21
mov byte [esp + 0x163], 0x27
mov edx, dword [esp + 0x330]
jmp 0x580511
mov eax, 0x10
mov ecx, dword [esp + 0x1f4]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x128], ecx
mov esi, dword [ecx]
cmp esi, 0xfffffff0
jne 0x57e7ae
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
je 0x57e7ae
mov dword [esp + 0x19c], esi
mov esi, 0x16
mov eax, dword [esp + 0x128]
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x31c], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x130], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov dword [esp + 0x340], 0x70000003
je 0x57e7cc
mov byte [esp + 0x294], bl
mov dword [esp + 0xd0], edi
mov edi, 1
mov ecx, eax
mov dword [esp + 0x9c], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x1f4]
mov dword [esp + 0x178], eax
jne 0x58461c
jmp 0x580cfa
mov dword [esp + 0x19c], esi
mov byte [esp + 0x294], bl
mov ecx, dword [esp + 0x1f4]
mov dword [esp + 0x178], ecx
jmp 0x57e7f4
mov byte [esp + 0x294], bl
mov dword [esp + 0x9c], eax
mov dword [esp + 0xd0], edi
mov eax, dword [esp + 0x1f4]
mov dword [esp + 0x178], eax
jmp 0x580cfa
cmp eax, 0xb
jne 0x57e838
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x57e838
mov eax, 0xb
mov bh, 0x65
mov edx, dword [esp + 0x258]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x57e8f9
mov byte [esp + 0xf3], 0x65
jmp 0x582050
mov edi, dword [esp + 0x19c]
mov eax, edi
shr eax, 0x18
mov dword [esp + 0xc0], eax
cmp eax, 1
je 0x57e869
cmp dword [esp + 0xc0], 4
je 0x57e869
cmp edi, 0xffffffce
je 0x57e869
mov al, 1
test al, al
jne 0x57ec57
mov eax, dword [esp + 0x128]
mov esi, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [esp], edi
call fcn.0068e2e0
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x104], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x8c], eax
test eax, eax
je 0x57e92e
xor eax, eax
test al, al
jne 0x57e92e
mov dword [esp + 0x1b4], ebx
movzx eax, byte [esp + 0xcf]
cmp eax, 0x45
jne 0x57e960
mov dword [esp + 0x144], esi
mov eax, 6
mov dword [esp + 0x340], 0x70000003
jmp 0x58303a
mov eax, 0xe
xor ecx, ecx
test cl, cl
je 0x57e94c
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x234]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x260]
mov dword [esp], edi
call fcn.007c51d0
jmp 0x58225a
mov dword [esp + 0x340], 0x70000003
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x144], esi
jmp 0x585519
mov byte [esp + 0xf3], 0x65
mov esi, dword [esp + 0x2cc]
jmp 0x584596
mov dword [esp + 0x144], esi
mov eax, edi
and eax, 0xffffff
mov esi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x344]
mov dword [ebx], esi
mov ecx, dword [esp + 0x33c]
inc dword [ecx]
mov ecx, dword [esp + 0x104]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x90]
mov dword [esi + ecx], edx
mov edx, dword [ebx]
mov dword [edx + ecx + 4], eax
mov eax, dword [ebx]
mov edx, dword [esp + 0xc0]
mov byte [eax + ecx + 8], dl
mov eax, dword [ebx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [ebx]
mov edx, dword [esp + 0x1b4]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [ebx]
mov dword [eax + ecx + 0x14], 0
mov byte [esp + 0xcf], 4
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x21c], eax
test eax, eax
mov dword [esp + 0x340], 0x70000003
je 0x585519
xor eax, eax
test al, al
je 0x57eb87
jmp 0x585519
mov edi, dword [esp + 0x344]
mov dword [edi], edx
mov esi, dword [esp + 0x33c]
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 + 0x130]
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 + 0x31c]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x320], eax
test eax, eax
je 0x57eac9
xor eax, eax
test al, al
jne 0x57ead9
mov eax, 6
mov edx, dword [esp + 0x31c]
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
mov dword [esp + 0x340], 0x70000003
cmp edx, ecx
jne 0x580966
jmp 0x57eb47
mov dword [esp + 0x340], 0x70000003
jmp 0x585519
mov dword [esp + 0x340], 0x70000003
jmp 0x585519
mov eax, 0xe
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x130]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x320]
mov dword [ecx + edx*8 + 0x14], esi
cmp eax, 0xe
je 0x57ec57
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x582a1f
jmp 0x57ec57
mov edi, 6
mov eax, 7
mov edx, dword [esp + 0x1b4]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x340], 0x70000003
cmp edx, ecx
mov esi, dword [esp + 0x2cc]
je 0x5839e9
jmp 0x5809d0
xor esi, esi
mov edi, dword [esp + 0x144]
mov ebx, dword [esp + 0x1b4]
jmp 0x57ec09
mov byte [esp + 0x1fb], 0x79
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov eax, dword [esp + 0x21c]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
not eax
and eax, 1
mov ecx, esi
add ecx, eax
setne cl
movzx ecx, cl
cmp esi, ecx
jb 0x57ebe0
jmp 0x583a87
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x144], edi
mov byte [esp + 0x163], 0x27
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0x104]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x21c]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x178]
mov eax, dword [eax + 4]
test eax, eax
je 0x57ec82
mov dword [esp + 0x1f4], eax
xor eax, eax
test al, al
mov bl, byte [esp + 0x294]
je 0x57e6df
mov dword [esp + 0x1f4], eax
mov bl, byte [esp + 0x294]
jmp 0x580611
mov dl, 0x2c
mov dh, 0x3b
mov eax, dword [ebp + 0x14]
mov esi, dword [eax]
test esi, esi
je 0x57ecb1
mov al, 6
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x57ecd4
mov dword [esp + 0xf4], esi
mov byte [esp + 0x220], 0x3b
mov byte [esp + 0x165], 0x2c
mov byte [esp + 0x294], bl
jmp 0x58076a
mov byte [esp + 0x294], bl
movzx ecx, al
cmp ecx, 0x40
je 0x57edf1
mov eax, 0x1b
cmp ecx, 0x68
jne 0x57eee8
mov byte [esp + 0x220], dh
mov byte [esp + 0x165], dl
mov dword [esp + 0x354], 0
mov dword [esp + 0x350], 0
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x360], eax
mov dword [esp + 0x438], 0
mov dword [esp + 0x434], 0
lea ecx, [esp + 0x420]
mov dword [esp + 0x238], ecx
mov dword [esp + 0x420], 4
lea edx, [esp + 0x424]
mov dword [esp + 0x1ec], edx
mov dword [esp + 0x424], 2
lea edx, [esp + 0x428]
mov dword [esp + 0x1e8], edx
mov dword [esp + 0x428], eax
lea eax, [esp + 0x42c]
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x42c], esi
mov dword [esp + 0xf4], esi
lea eax, [esp + 0x430]
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x430], 0xfffffffc
lea eax, [esp + 0x434]
mov dword [esp + 8], eax
lea eax, [esp + 0x438]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x57ef0e
jmp 0x57f0f8
mov byte [esp + 0x220], dh
mov byte [esp + 0x165], dl
mov edi, 7
mov dword [esp + 0x354], 0
mov dword [esp + 0x350], 0
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x360], eax
mov dword [esp + 0x438], 0
mov dword [esp + 0x434], 0
lea ecx, [esp + 0x420]
mov dword [esp + 0x238], ecx
mov dword [esp + 0x420], 4
lea edx, [esp + 0x424]
mov dword [esp + 0x1ec], edx
mov dword [esp + 0x424], 2
lea edx, [esp + 0x428]
mov dword [esp + 0x1e8], edx
mov dword [esp + 0x428], eax
lea eax, [esp + 0x42c]
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x42c], esi
lea eax, [esp + 0x430]
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x430], 0xfffffffc
lea eax, [esp + 0x434]
mov dword [esp + 8], eax
lea eax, [esp + 0x438]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00593400
test eax, eax
jne 0x57ef02
mov dword [esp + 0xf4], esi
imul eax, eax
and eax, 3
cmp eax, 1
jbe 0x57ef0e
jmp 0x58408c
mov dword [esp + 0xf4], esi
mov byte [esp + 0x220], dh
mov byte [esp + 0x165], dl
jmp 0x57f30c
mov dword [esp + 0xf4], esi
jmp 0x58408c
mov esi, 0x18
mov eax, dword [esp + 0x434]
mov dword [esp + 0x2b0], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x2ac], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0xec], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x98], eax
test eax, eax
jne 0x583eee
jmp 0x57f0f8
imul esi, esi
and esi, 3
cmp esi, 2
je 0x583ef7
mov esi, dword [esp + 0x344]
mov edi, dword [esp + 0x98]
mov dword [esi], edi
mov edx, dword [esp + 0x33c]
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 + 0xec]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 3
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0xfffffffc
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [esp + 0x2b0]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x57f02e
mov byte [esp + 0xe7], 0x46
mov edi, 6
mov ecx, eax
mov dword [esp + 0x100], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x5817da
jmp 0x57f0f8
mov byte [esp + 0xe7], 0x46
mov dword [esp + 0x100], eax
jmp 0x57f0f8
mov esi, 6
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x2b0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2ac]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.007c51d0
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x57f050
mov cl, byte [esp + 0x2fc]
mov eax, dword [esp + 0x26c]
mov edx, dword [esp + 0x250]
jmp 0x584160
mov byte [esp + 0xe7], 0x46
mov ecx, dword [esp + 0x2b0]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x585933
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0xec]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x100]
mov dword [eax + ecx*8 + 0x14], edx
mov esi, 0x12
mov eax, dword [esp + 0x438]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x440], 0
mov dword [esp + 0x43c], 0
mov ecx, dword [esp + 0x238]
mov dword [ecx], 4
mov ecx, dword [esp + 0x1ec]
mov dword [ecx], 2
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x1e8]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1e4]
mov dword [ecx], eax
mov eax, dword [esp + 0x1e0]
mov dword [eax], 0xfffffffd
je 0x57f7b5
cmp esi, 6
je 0x584f86
imul esi, esi
and esi, 3
cmp esi, 3
je 0x584f86
mov ebx, 0x15
mov edi, 0x10
lea eax, [esp + 0x43c]
mov dword [esp + 8], eax
lea eax, [esp + 0x440]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x238]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x58132c
cmp edi, 0x10
je 0x57f2a4
xor eax, eax
test al, al
jne 0x57f2a4
mov eax, dword [esp + 0x36c]
or eax, dword [esp + 0x1d4]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x582be9
mov dword [esp + 0x34c], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x358], 4
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x360], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x364], eax
mov dword [esp + 0x368], 0xfffffffa
lea eax, [esp + 0x348]
mov dword [esp + 4], eax
lea eax, [esp + 0x34c]
mov dword [esp], eax
call fcn.00449120
test eax, eax
je 0x57f4cd
mov ecx, 0x1c
mov edx, eax
and edx, 1
inc edx
xor edx, eax
je 0x57f4cd
mov esi, 7
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0xd8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x68], eax
test eax, eax
je 0x57f958
mov eax, 0xe
xor ecx, ecx
test cl, cl
jne 0x57f958
cmp eax, 0xe
je 0x57f429
imul eax, eax
and eax, 3
cmp eax, 3
je 0x57f429
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x344]
mov dword [edi], edx
mov esi, dword [esp + 0x33c]
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 + 0xd8]
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 ebx, dword [esp + 0x15c]
mov dword [ecx + eax + 0x10], ebx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov esi, 2
mov dword [esp], ebx
call fcn.00492770
test eax, eax
je 0x57f543
mov eax, dword [esp + 0x34c]
mov ecx, dword [esp + 0x348]
lea edx, [esp + 0x3bc]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
lea eax, [esp + 0x358]
mov dword [esp], eax
mov dword [esp + 0x10], 1
mov dword [esp + 4], 0
call fcn.00593f40
mov esi, eax
mov dword [esp + 0x340], esi
mov eax, dword [esp + 0x34c]
mov dword [esp], eax
call fcn.004936c0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp esi, eax
jne 0x585519
mov edi, 0xb
mov byte [esp + 0x294], 0x76
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ebx, eax
jne 0x57f655
mov dword [esp + 0x15c], ebx
mov esi, dword [esp + 0x334]
jmp 0x581643
xor esi, esi
mov edi, dword [esp + 0x7c]
jmp 0x57f685
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov eax, dword [esp + 0x298]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x57f660
mov dword [esp + 0x15c], ebx
mov esi, dword [esp + 0x334]
mov edi, 0x1a
mov al, byte [esp + 0x294]
movzx eax, al
cmp eax, 0xf
je 0x57f6f0
cmp eax, 0x25
mov edx, dword [esp + 0x298]
jne 0x57f700
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0xd8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, 0xf
mov bl, 0x76
mov dword [esp + 0x334], esi
jmp 0x57fb08
mov dword [esp + 0x334], esi
mov eax, dword [esp + 0x340]
jmp 0x57f72b
mov byte [esp + 0x294], 0xf
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0xd8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edx
mov dword [esp + 0x334], esi
jmp 0x57f7b5
cmp edi, 0xd
je 0x57f79d
imul edi, edi
and edi, 3
cmp edi, 2
je 0x57f7a9
mov dword [esp + 0x340], eax
xor eax, eax
mov ecx, dword [esp + 0xd8]
lea ecx, [ecx + ecx*2]
mov esi, dword [esp + 0x298]
mov bl, byte [esp + 0x294]
jmp 0x57f781
mov bl, 0x25
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add eax, edx
mov edx, dword [esp + 0x344]
mov edx, dword [edx]
mov dword [edx + ecx*8 + 0x14], esi
mov edx, 3
sub edx, eax
xor edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jb 0x57f760
mov byte [esp + 0x294], bl
jmp 0x57f7b5
mov dword [esp + 0x340], eax
jmp 0x585519
mov dword [esp + 0x340], eax
jmp 0x585519
mov eax, dword [esp + 0x440]
mov dword [esp], eax
call fcn.004936c0
lea esi, [esp + 0x358]
mov dword [esp + 0x358], 3
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x364], eax
lea eax, [esp + 0x3cc]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00594ba0
test eax, eax
jne 0x57f865
mov al, 0xf
movzx eax, al
cmp eax, 0x1b
je 0x57f888
cmp eax, 0x44
jne 0x57f8e9
lea eax, [esp + 0x358]
mov dword [esp + 0x14c], eax
mov esi, 7
mov byte [esp + 0x213], 0x7f
mov byte [esp + 0xd6], 0x53
mov eax, dword [esp + 0x3cc]
lea ecx, [esp + 0x3c8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov dword [esp + 0x290], 0x7000002b
test eax, eax
je 0x57f96c
jmp 0x5851f6
mov dword [esp + 0x14c], esi
mov eax, 0xd
mov dword [esp + 0x290], 0x7000002b
mov ebx, dword [esp + 0x340]
jmp 0x57fa50
lea edi, [esp + 0x358]
mov esi, 0x13
mov eax, dword [esp + 0x3cc]
lea ecx, [esp + 0x3c8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
test eax, eax
je 0x57f936
mov dword [esp + 0x290], 0x7000002b
mov dword [esp + 0x14c], edi
mov byte [esp + 0x213], 0x7f
mov byte [esp + 0xd6], 0x53
mov eax, 0xa
xor ecx, ecx
test cl, cl
je 0x57fc5e
jmp 0x57f958
lea eax, [esp + 0x358]
mov dword [esp + 0x14c], eax
mov byte [esp + 0x213], 0x7f
mov byte [esp + 0xd6], 0x53
mov eax, dword [esp + 0x3cc]
lea ecx, [esp + 0x3c8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov dword [esp + 0x290], 0x7000002b
test eax, eax
jne 0x5800ec
jmp 0x57f96c
mov dword [esp + 0x290], 0x7000002b
mov dword [esp + 0x14c], edi
mov byte [esp + 0x213], 0x7f
mov byte [esp + 0xd6], 0x53
cmp esi, 7
jne 0x57f96c
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x57f7b5
mov bl, byte [esp + 0xd6]
movzx eax, bl
cmp eax, 3
je 0x57f9c2
cmp eax, 0x38
jne 0x57fa23
xor eax, eax
mov ecx, dword [ebp + 0x18]
lea ecx, [ecx + 0xc]
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x368]
mov dword [esp + 0x124], ecx
jmp 0x57f9ff
mov dword [esp + 0x340], ebx
cmp eax, 0xd
je 0x57fffa
xor eax, eax
test al, al
je 0x585519
jmp 0x57fffa
mov eax, 0x1b
mov dword [esp + 0x354], 0
mov dword [esp + 0x350], 0
mov ecx, dword [esp + 0x3c8]
mov dword [esp + 0xdc], ecx
test ecx, ecx
je 0x57fb68
mov esi, 0x16
xor ecx, ecx
test cl, cl
jne 0x57fb68
cmp esi, 0xd
je 0x585519
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x585519
mov esi, 8
mov eax, 6
mov ecx, dword [esp + 0x84]
mov ecx, dword [ecx]
mov edi, dword [esp + 0xdc]
mov edx, dword [edi]
mov dword [esp + 0x78], edx
shr edx, 0x18
mov dword [esp + 0xbc], edx
cmp dword [ecx + 0x14], 0
mov dword [esp + 0xb4], edi
mov bl, byte [esp + 0x294]
je 0x5813c1
mov byte [esp + 0x294], bl
cmp eax, 6
jne 0x57f7b5
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x57f7b5
mov eax, dword [esp + 0xbc]
lea edx, [eax - 1]
cmp edx, 4
ja case.0x57fb42.3
mov eax, 5
mov ecx, 0x12
jmp dword [edx*4 + 0x7dc434]
mov ecx, dword [esp + 0x78]
cmp ecx, 0xffffffce
je case.0x57fb42.1
cmp eax, 0xb
jne 0x5800ec
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x58418e
jmp 0x5800ec
mov byte [esp + 0x294], bl
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x581432
mov eax, dword [esp + 0xbc]
cmp eax, 5
je case.0x57fb42.1
cmp eax, 2
jne 0x58005d
mov byte [esp + 0xff], 0x25
mov edx, dword [esp + 0x14c]
mov dword [edx], 4
mov eax, dword [esp + 0xb4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x124]
mov dword [ecx], eax
lea eax, [esp + 0x350]
mov dword [esp + 8], eax
lea eax, [esp + 0x354]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00593400
test eax, eax
je 0x57fc0b
mov eax, 7
xor ecx, ecx
test cl, cl
je 0x580aaa
mov eax, 0x11
mov ecx, dword [esp + 0x3c8]
mov edx, 0xffffff
and edx, dword [ecx + 4]
cmp edx, dword [esp + 0x350]
mov edi, dword [esp + 0x354]
je 0x57fce8
xor ebx, ebx
test bl, bl
jne 0x57fce8
mov cl, 0x4e
mov eax, 0x11
movzx ecx, cl
cmp ecx, 4
jne 0x57fe9b
mov dword [esp + 0xe0], edi
mov dword [esp + 0xc4], edx
cmp eax, 0xa
je 0x5800ec
xor eax, eax
test al, al
jne 0x5800ec
xor esi, esi
mov edi, dword [esp + 0xe0]
mov ecx, dword [esp + 0x290]
jmp 0x57fcd0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], edi
call fcn.004936c0
mov dword [esp + 0x354], 0
mov eax, dword [esp + 0x3cc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x3cc], 0
mov ecx, 0x70000001
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x57fc90
jmp 0x57ffec
mov dword [esp + 0xe0], edi
mov dword [esp + 0xc4], edx
mov ebx, dword [esp + 0x330]
mov dword [esp + 0x330], ebx
cmp eax, 8
je 0x581d5a
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x581d5a
mov eax, dword [esp + 0x124]
mov esi, dword [eax]
mov dword [esp], esi
call fcn.0068e2e0
mov ebx, eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x170], eax
lea edi, [eax + eax*2]
lea eax, [edi*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov edx, 0x70000003
je 0x57ff3c
mov dword [esp + 0x64], ebx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x57ff3c
mov ecx, esi
shr ecx, 0x18
mov dword [esp + 0x60], ecx
and esi, 0xffffff
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x344]
mov dword [ebx], eax
mov esi, dword [esp + 0x33c]
mov edx, dword [esi]
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
movzx ecx, cl
add ecx, edx
mov dword [esi], ecx
mov ecx, dword [esp + 0x170]
shl ecx, 3
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x64]
mov dword [eax + ecx], edx
mov eax, dword [ebx]
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx + 4], edx
mov eax, dword [ebx]
mov edx, dword [esp + 0x60]
mov byte [eax + ecx + 8], dl
mov eax, dword [ebx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [ebx]
mov edx, dword [esp + 0xc4]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [ebx]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edx
call fcn.00492770
mov esi, eax
test esi, esi
je 0x57ff37
xor ebx, ebx
test bl, bl
mov edx, 0x70000003
jne 0x57ff3c
mov ecx, dword [esp + 0xc4]
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
je 0x57fe7e
mov dword [esp + 8], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.007c51d0
jmp 0x57fe7e
mov eax, ebx
not eax
and eax, 1
add eax, ebx
setne al
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov dword [eax + edi*8 + 0x14], esi
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
xor edx, edx
cmp ebx, eax
jb 0x57fe60
jmp 0x57ff3c
mov dword [esp + 0xc4], edx
jmp 0x57feff
mov esi, 0x12
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
add ebx, eax
mov dword [esp], edi
call fcn.004936c0
mov dword [esp + 0x354], 0
mov eax, dword [esp + 0x3cc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x3cc], 0
mov dword [esp + 0x290], 0x70000001
test ebx, ebx
je 0x57feb0
mov dword [esp + 0xe0], edi
mov ecx, dword [ebp + 0x2c]
cmp esi, 5
jne 0x57fffa
mov eax, 3
sub eax, esi
xor eax, esi
je 0x57fffa
mov dword [ecx + 4], 0
mov dword [ecx], 0
jmp 0x583a63
mov edx, 0x70000003
mov eax, dword [esp + 0x354]
mov dword [esp], eax
mov esi, edx
call fcn.004936c0
mov ecx, esi
mov dword [esp + 0x354], 0
test ecx, ecx
je 0x58005d
xor ebx, ebx
test bl, bl
jne 0x58005d
mov al, 0x1b
movzx eax, al
mov esi, ecx
cmp eax, 0x1b
je 0x57ffc4
cmp eax, 0x41
mov eax, dword [esp + 0x3cc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x3cc], 0
jmp 0x57ffdc
add eax, ecx
setne al
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x3cc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x3cc], 0
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
mov edx, eax
add edx, ecx
setne dl
movzx edx, dl
cmp ebx, edx
jb 0x57ffa0
mov dword [esp + 0x340], eax
mov dword [esp + 0x290], esi
jmp 0x57fffa
mov dword [esp + 0x290], ecx
mov dword [esp + 0x340], eax
xor ecx, ecx
mov esi, dword [esp + 0x290]
mov edi, dword [esp + 0x340]
jmp 0x580025
mov eax, 0x12
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov edi, esi
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x580010
mov dword [esp + 0x340], edi
cmp eax, 0xd
je 0x5807d5
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x585519
jmp 0x5807d5
movzx eax, byte [esp + 0x193]
cmp eax, 0xa
jne 0x5800b4
mov esi, 3
mov edi, 0xa
mov byte [esp + 0x193], 0x16
mov eax, dword [esp + 0x3cc]
lea ecx, [esp + 0x3c8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5841fe
jmp 0x582da4
mov byte [esp + 0x193], 0xa
mov eax, dword [esp + 0x3cc]
lea ecx, [esp + 0x3c8]
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
je 0x57fa6f
mov al, byte [esp + 0x213]
movzx ecx, al
cmp ecx, 0x22
je 0x5801a4
mov eax, 0xb
cmp ecx, 0x7f
je 0x580240
mov byte [esp + 0x213], 0x7f
mov eax, dword [esp + 0x3cc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x3cc], 0
mov eax, dword [ebp + 0x14]
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 + 0x448], 0
mov dword [esp + 0x444], 0
mov ecx, dword [esp + 0x238]
mov dword [ecx], 4
mov ecx, dword [esp + 0x1ec]
mov dword [ecx], 2
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x1e8]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1e4]
mov dword [ecx], eax
mov eax, dword [esp + 0x1e0]
mov dword [eax], 0xfffffff9
je 0x58075b
jmp 0x58037d
mov esi, 7
mov byte [esp + 0x213], 0x22
mov eax, dword [esp + 0x3cc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x3cc], 0
mov eax, dword [ebp + 0x14]
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 + 0x448], 0
mov dword [esp + 0x444], 0
mov ecx, dword [esp + 0x238]
mov dword [ecx], 4
mov ecx, dword [esp + 0x1ec]
mov dword [ecx], 2
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x1e8]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1e4]
mov dword [ecx], eax
mov eax, dword [esp + 0x1e0]
mov dword [eax], 0xfffffff9
jne 0x58037d
jmp 0x580a19
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jne 0x5802c0
mov esi, 6
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x1a8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x580356
mov byte [esp + 0x248], 0x15
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x158], eax
not ecx
mov dword [esp + 0x340], 0x70000003
test ecx, ecx
jne 0x585519
jmp 0x584797
mov edi, 0x10
mov byte [esp + 0x213], 0x39
mov eax, dword [esp + 0x3cc]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x3cc], 0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x448], 0
mov dword [esp + 0x444], 0
mov ecx, dword [esp + 0x238]
mov dword [ecx], 4
mov ecx, dword [esp + 0x1ec]
mov dword [ecx], 2
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x1e8]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1e4]
mov dword [ecx], eax
mov eax, dword [esp + 0x1e0]
mov dword [eax], 0xfffffff9
je 0x58075b
jmp 0x58036a
mov byte [esp + 0x248], 0x15
mov dword [esp + 0x158], eax
jmp 0x584797
cmp edi, 4
je 0x585519
xor eax, eax
test al, al
jne 0x585519
mov esi, 0xe
lea eax, [esp + 0x444]
mov dword [esp + 8], eax
lea eax, [esp + 0x448]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x238]
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 0x584c24
mov edi, 0x10
mov eax, dword [esp + 0x444]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x12c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x5805f2
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x5805fe
mov ecx, 3
cmp ecx, 3
mov bl, byte [esp + 0xab]
jne 0x5804e3
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
je 0x5804e3
mov edi, dword [esp + 0x344]
mov dword [edi], eax
mov esi, dword [esp + 0x33c]
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 + 0x12c]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x22
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0xfffffff9
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 + 0x258]
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 0x5805e6
mov dword [esp + 0x260], eax
mov eax, 0xb
xor ecx, ecx
test cl, cl
je 0x57e7f4
jmp 0x58075b
mov eax, 6
movzx ecx, bl
cmp ecx, 0xd
je 0x580503
cmp ecx, 0x20
jne 0x57dd18
xor eax, eax
mov edx, dword [ebp + 0x28]
jmp 0x57dce5
mov edx, dword [esp + 0x330]
mov bl, byte [esp + 0x294]
cmp eax, 6
jne 0x58060a
mov dword [esp + 0x330], edx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x580611
mov byte [esp + 0x294], bl
mov eax, 0x11
mov byte [esp + 0xab], 0x20
mov ecx, dword [ebp + 0x28]
mov dword [ecx + 4], 0
mov dword [ecx], 0
cmp eax, 4
jne 0x57dd30
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x57dd30
mov byte [esp + 0x18b], 0x14
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x1b0], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5805cf
mov dword [esp + 0x340], 0x70000003
mov ecx, eax
mov dword [esp + 0x138], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x585519
jmp 0x582cc8
mov dword [esp + 0x340], 0x70000003
mov dword [esp + 0x138], eax
jmp 0x582cc8
mov dword [esp + 0x260], eax
jmp 0x58075b
mov esi, dword [esp + 0x2cc]
jmp 0x583b5f
mov esi, dword [esp + 0x2cc]
jmp 0x583b5f
mov dword [esp + 0x330], edx
movzx eax, byte [esp + 0x165]
cmp eax, 0x2c
jne 0x57ec95
mov dl, 0xb
mov dh, 0x3b
mov al, 6
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx]
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp esi, ecx
jne 0x57ecd4
mov dword [esp + 0xf4], esi
mov byte [esp + 0x220], 0x3b
mov byte [esp + 0x165], 0xb
mov byte [esp + 0x294], bl
jmp 0x58076a
mov edi, 0x10
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x234]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x260]
mov dword [esp], eax
call fcn.007c51d0
mov eax, 3
sub eax, ebx
mov ecx, ebx
xor ecx, eax
setne cl
movzx ecx, cl
cmp ebx, ecx
jb 0x580670
mov dword [esp + 0x2cc], esi
mov ebx, dword [esp + 0x330]
cmp edi, 8
jne 0x580729
xor eax, eax
mov ecx, 0xffffffff
imul edx, dword [esp + 0x310], 0x1c
lea esi, [ebx + edx]
mov dword [esp + 0x330], ebx
mov bh, byte [esp + 0x318]
jmp 0x58070c
mov bh, 0x76
inc eax
mov edi, dword [esp + 0x330]
mov edi, dword [edi + edx]
mov dword [esp + 0x2a4], edi
dec ecx
mov dword [esp + 0x2a0], esi
mov edi, eax
and edi, 1
xor edi, ecx
setne bl
movzx edi, bl
cmp eax, edi
jb 0x5806f0
mov byte [esp + 0x318], bh
jmp 0x583921
mov dword [esp + 0x330], ebx
jmp 0x58224c
mov byte [esp + 0xf3], 0x3f
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0x12c]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov dword [esp + 0x260], edi
mov eax, dword [esp + 0x448]
mov dword [esp], eax
call fcn.004936c0
mov esi, 0x13
mov al, byte [esp + 0x220]
movzx eax, al
cmp eax, 0x3b
jne 0x580858
cmp esi, 0xa
je 0x585519
xor eax, eax
test al, al
jne 0x585519
mov eax, dword [ebp + 0x18]
lea ecx, [eax + 0xc]
mov edx, dword [eax + 0xc]
mov eax, dword [edx + 0x14]
test eax, eax
je 0x580899
mov dword [esp + 0x20c], edx
mov byte [esp + 0x220], 0x6e
mov byte [esp + 0x254], 0x4c
mov dword [esp + 0x274], ecx
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x580c0c
mov edi, 0xb
mov dword [esp + 0x450], 0
mov dword [esp + 0x44c], 0
mov dword [esp + 0x420], 4
mov dword [esp + 0x424], 2
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x428], eax
mov dword [esp + 0x42c], 0
mov dword [esp + 0x430], 1
lea eax, [esp + 0x44c]
mov dword [esp + 8], eax
lea eax, [esp + 0x450]
mov dword [esp + 4], eax
lea eax, [esp + 0x420]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x580bed
jmp 0x582a91
mov eax, dword [ebp + 0x18]
lea ecx, [eax + 0xc]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x14], 0
je 0x5808aa
mov dword [esp + 0x20c], eax
mov byte [esp + 0x220], 0x3b
mov byte [esp + 0x254], 0x4c
mov dword [esp + 0x274], ecx
mov eax, 0xd
xor ecx, ecx
test cl, cl
je 0x580040
jmp 0x580c0c
mov dword [esp + 0x20c], edx
mov byte [esp + 0x220], 0x6e
jmp 0x5808b9
mov dword [esp + 0x20c], eax
mov byte [esp + 0x220], 0x3b
mov byte [esp + 0x254], 0x4c
mov dword [esp + 0x274], ecx
jmp 0x580c0c
mov edx, dword [esp + 0xa0]
mov edi, dword [esp + 0x344]
mov dword [edi], edx
mov esi, dword [esp + 0x33c]
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 + 0xac]
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 esi, dword [esp + 0xa4]
mov dword [ecx + eax + 0x10], esi
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], esi
call fcn.00492770
mov edi, eax
test edi, edi
je 0x580a30
mov eax, 0xd
test esi, esi
jne 0x580a39
mov dword [esp + 0x6c], edi
cmp eax, 6
jne 0x580a52
mov esi, 0x12
mov bl, byte [esp + 0x314]
movzx ecx, bl
cmp ecx, 0x21
je 0x580a19
cmp ecx, 0x36
je 0x580b2d
mov eax, 0x13
cmp ecx, 0x59
je 0x584e4b
cmp edi, 6
jne 0x57eb47
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
je 0x57eb47
mov ecx, 0x12
movzx eax, byte [esp + 0x1fb]
cmp eax, 0x79
je 0x57ebc8
mov edx, dword [esp + 0x25c]
mov bl, byte [esp + 0x1a2]
mov esi, dword [esp + 0x264]
jmp 0x582839
cmp esi, 7
je 0x58075b
xor edi, edi
mov ebx, dword [esp + 0xd0]
jmp 0x57eb2f
mov dword [esp + 0x6c], edi
jmp 0x580bed
mov dword [esp + 8], esi
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.007c51d0
jmp 0x580a56
mov edi, dword [esp + 0x6c]
xor ecx, ecx
mov eax, dword [esp + 0xac]
lea edx, [eax + eax*2]
jmp 0x580a93
mov eax, 2
mov esi, 3
sub esi, ecx
xor esi, ecx
setne bl
movzx esi, bl
add ecx, esi
mov esi, dword [esp + 0x344]
mov esi, dword [esi]
mov dword [esi + edx*8 + 0x14], edi
mov esi, ecx
not esi
and esi, 1
add esi, ecx
setne bl
movzx esi, bl
cmp ecx, esi
jb 0x580a70
mov dword [esp + 0x6c], edi
cmp eax, 2
je 0x580bed
xor esi, esi
mov edi, dword [esp + 0xd0]
jmp 0x580b6a
mov esi, 0xe
mov eax, dword [esp + 0x44c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0xac], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0xa0], eax
test eax, eax
jne 0x580db9
mov eax, dword [esp + 0x450]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x274]
mov eax, dword [eax]
mov dword [esp + 0x20c], eax
mov eax, 0xf
mov bl, byte [esp + 0x254]
movzx ecx, bl
cmp ecx, 0x4c
jne 0x580c63
mov eax, 0x17
mov edx, dword [esp + 0x20c]
mov ecx, dword [edx + 4]
test ecx, ecx
jne 0x580c6f
mov byte [esp + 0x248], 0x15
mov byte [esp + 0x254], 0xe
mov esi, 0x13
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x174], edx
jb 0x5856d9
jmp 0x581963
mov esi, dword [esp + 0x334]
jmp 0x5847f1
mov byte [esp + 0x248], 0x15
mov byte [esp + 0x254], 0xe
mov dword [esp + 0x174], edx
jmp 0x581963
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x334], esi
mov esi, dword [esp + 0x2cc]
jne 0x584492
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x580ccd
cmp esi, 0xf
jne 0x585519
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x585519
mov esi, 0x16
lea eax, [esp + 0x36c]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x80]
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
mov dword [esp + 0x340], eax
test eax, eax
jne 0x585519
cmp esi, 0xe
je 0x5808cd
imul esi, esi
and esi, 3
cmp esi, 2
je 0x5808cd
mov eax, 8
mov ecx, dword [esp + 0x36c]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x580e09
mov edx, dword [esp + 0x25c]
mov bl, byte [esp + 0x1a2]
mov esi, dword [esp + 0x264]
jmp 0x5828a2
mov al, 0x1c
movzx eax, al
cmp eax, 0x1c
jne 0x580eab
mov esi, 7
mov bl, 0x68
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 + 0x3c0]
xor edx, edx
call fcn.0054c950
mov dword [esp + 0x340], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x580f19
mov edi, dword [esp + 0x2d8]
mov ebx, dword [esp + 0x330]
jmp 0x580f98
mov bl, 0x68
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 + 0x3c0]
xor edx, edx
call fcn.0054c950
mov dword [esp + 0x340], eax
test eax, eax
jne 0x585519
mov eax, 4
movzx ecx, bl
cmp ecx, 0x68
je 0x580554
mov edi, 0x11
mov ebx, 0xd
mov byte [esp + 0x18b], 0x14
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x1b0], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x138], eax
mov dword [esp + 0x340], 0x70000003
test eax, eax
mov eax, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1d4]
jne 0x582b8a
jmp 0x582763
cmp esi, 7
je 0x58402f
mov dword [esp + 0x330], ebx
mov dword [esp + 0x2d8], edi
xor eax, eax
test al, al
je 0x58418e
jmp 0x585519
mov bl, 0x4c
inc eax
movsd xmm0, qword [esi]
movsd qword [edi], xmm0
dec ecx
mov edx, eax
xor edx, ecx
setne dl
movzx edx, dl
cmp eax, edx
jb 0x5810a0
mov byte [esp + 0x228], bl
mov esi, 4
mov dword [esp + 0x458], 0
mov dword [esp + 0x454], 0
mov dword [esp + 0x420], 4
mov dword [esp + 0x424], 2
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x428], eax
mov dword [esp + 0x42c], 0
mov dword [esp + 0x430], 2
lea eax, [esp + 0x454]
mov dword [esp + 8], eax
lea eax, [esp + 0x458]
mov dword [esp + 4], eax
lea eax, [esp + 0x420]
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 0x58368e
mov al, 0x3a
movzx edx, al
cmp edx, 0xf
je 0x5812b7
cmp edx, 0x3a
je 0x58134a
mov edi, 0x10
mov ecx, 2
cmp edx, 0x7d
mov ebx, dword [esp + 0x330]
jne 0x581210
cmp ecx, 2
jne 0x5812ab
mov dword [esp + 0x330], ebx
mov esi, 9
mov eax, dword [esp + 0x454]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x30c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5813b3
mov ecx, 0x14
mov edx, 3
sub edx, eax
xor edx, eax
mov dword [esp + 0x11c], eax
mov bl, byte [esp + 0x294]
jne 0x58181b
jmp 0x5813c1
cmp edi, 9
je 0x5813d3
xor eax, eax
test al, al
jne 0x5813df
mov edi, 7
mov esi, dword [esp + 0x454]
mov eax, dword [esp + 0x458]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x30c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x581411
mov dword [esp + 0x330], ebx
mov dword [esp + 0x1a4], esi
mov esi, 0x19
mov ecx, eax
mov dword [esp + 0x11c], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov bl, byte [esp + 0x228]
jne 0x584469
jmp 0x582721
mov dword [esp + 0x330], ebx
jmp 0x582a1f
mov esi, 0xa
mov edi, dword [esp + 0x454]
mov eax, dword [esp + 0x458]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x30c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x5813eb
mov dword [esp + 0x1a4], edi
mov ebx, 0x10
mov ecx, eax
mov dword [esp + 0x11c], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x58355a
cmp ebx, 0x10
jne 0x57f7b5
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
jne 0x581432
jmp 0x57f7b5
mov esi, dword [esp + 0x454]
mov eax, dword [esp + 0x458]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x30c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x5813fe
mov dword [esp + 0x1a4], esi
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x11c], eax
jne 0x581432
jmp 0x5852ce
mov dword [esp + 0x11c], eax
mov bl, byte [esp + 0x294]
cmp esi, 8
je 0x57fb86
mov byte [esp + 0x294], bl
jmp 0x581432
mov dword [esp + 0x330], ebx
jmp 0x57e4e5
mov dword [esp + 0x330], ebx
jmp 0x57e4e5
mov dword [esp + 0x11c], eax
mov dword [esp + 0x1a4], edi
jmp 0x58355a
mov dword [esp + 0x11c], eax
mov dword [esp + 0x1a4], esi
jmp 0x5852ce
mov dword [esp + 0x330], ebx
mov dword [esp + 0x11c], eax
mov dword [esp + 0x1a4], esi
mov bl, byte [esp + 0x228]
jmp 0x582721
mov esi, dword [esp + 0x11c]
mov ebx, dword [esp + 0x344]
mov dword [ebx], esi
mov edx, dword [esp + 0x33c]
mov eax, dword [edx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [edx], eax
mov eax, dword [esp + 0x30c]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esi + eax], 6
mov ecx, dword [ebx]
mov dword [ecx + eax + 4], 2
mov ecx, dword [ebx]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [ebx]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [ebx]
mov edi, dword [esp + 0x1a4]
mov dword [ecx + eax + 0x10], edi
mov ecx, dword [ebx]
mov dword [ecx + eax + 0x14], 0
mov esi, 0xd
mov dword [esp], edi
call fcn.00492770
mov dword [esp + 0x32c], eax
test eax, eax
je 0x5852b7
mov al, 0x25
mov ecx, 0x14
movzx eax, al
cmp eax, 0x6a
jne 0x5814e3
mov eax, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1d4]
jmp 0x582bc1
mov byte [esp + 0x240], 0x26
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp edi, eax
je 0x5846b6
mov esi, 0xd
mov eax, dword [esp + 0x1a4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x32c]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
je 0x57eb47
jmp 0x5846b6
cmp ecx, 0x10
jne 0x5815b3
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x5815b3
mov byte [esp + 0x228], bl
jmp 0x5852ce
mov byte [esp + 0x228], 0x63
mov eax, dword [esp + 0x2d8]
movsd xmm0, qword [eax]
mov eax, dword [ebp + 0x2c]
movsd qword [eax], xmm0
jmp 0x5810c1
mov edi, 3
mov byte [esp + 0x248], 0x32
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x1a8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x340], 0x70000003
test eax, eax
jne 0x58163c
mov ecx, 0xa
mov edx, eax
and edx, 1
xor edx, eax
mov dword [esp + 0x158], eax
not edx
test edx, edx
jne 0x58496b
jmp 0x581643
mov dword [esp + 0x158], eax
cmp edi, 3
je 0x58165f
mov eax, edi
and eax, 1
inc eax
xor eax, edi
mov dword [esp + 0x334], esi
jne 0x57f6a6
jmp 0x58169b
mov dword [esp + 0x334], esi
jmp 0x58169b
mov byte [esp + 0x248], 0x56
mov edx, eax
or edx, 2
mov ecx, eax
mov dword [esp + 0x158], eax
xor ecx, 2
add ecx, edx
mov dword [esp + 0x340], 0x70000003
mov dword [esp + 0x334], esi
jne 0x585519
mov ebx, dword [ebp + 0x24]
mov edx, dword [esp + 0x158]
mov edi, dword [esp + 0x344]
mov dword [edi], edx
mov esi, dword [esp + 0x33c]
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 + 0x1a8]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 8
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], ebx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov edi, 1
mov dword [esp], ebx
call fcn.00492770
mov esi, eax
test esi, esi
mov dword [esp + 0x340], 0x70000003
je 0x5817da
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x5817da
test ebx, ebx
je 0x581755
mov eax, dword [ebp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.007c51d0
mov edi, 0x15
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1a8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
lea eax, [esp + 0x408]
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
test eax, eax
jne 0x581830
mov ebx, 0xe
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x340], eax
not ecx
test ecx, ecx
jne 0x581ad9
jmp 0x581a81
cmp edi, 1
je 0x585519
movzx eax, byte [esp + 0xe7]
cmp eax, 0x46
jne 0x57f0b2
mov eax, 0x14
mov ecx, 8
mov byte [esp + 0xe7], 0x36
cmp dword [esp + 0x2b0], 0
mov bl, byte [esp + 0x294]
jne 0x5858db
mov byte [esp + 0x294], bl
cmp ecx, 8
je 0x57f0da
jmp 0x5852ce
mov dword [esp + 0x340], eax
jmp 0x581a81
mov ecx, ebx
or ecx, 2
xor ebx, 2
add ebx, ecx
je 0x581ae2
mov edi, 0xd
lea eax, [esp + 0x404]
mov dword [esp + 8], eax
lea eax, [esp + 0x408]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0059a8d0
test eax, eax
jne 0x57f72b
mov dword [esp + 0x340], eax
mov eax, 7
mov ecx, dword [esp + 0x404]
mov dword [esp + 0x1d0], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x204], ecx
test ecx, ecx
je 0x5818d8
cmp eax, 7
je 0x5818b5
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x584f86
mov dl, 0x4c
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax + 8]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x328], 0
jmp 0x581a23
mov eax, 0xc
mov byte [esp + 0x137], 0x7f
mov esi, dword [esp + 0x1fc]
test esi, esi
setne dl
mov ecx, esi
not ecx
and ecx, 1
add ecx, esi
setne dh
test byte [esp + 0x1db], 1
mov esi, dword [esp + 0x22c]
jne 0x581940
mov ecx, 0x1f
and dl, dh
mov edx, dword [esp + 0x204]
mov dword [esp + 0x2c0], edx
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0x2bc], edx
mov dword [esp + 0x2b8], esi
je 0x583db9
jmp 0x581963
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x2c0], ecx
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0x2bc], ecx
mov dword [esp + 0x2b8], esi
cmp eax, 0xc
je 0x582a1f
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x580ca8
jmp 0x582a1f
mov byte [esp + 0x167], 0x4b
imul eax, dword [esp + 0x114], 0x1c
mov ecx, dword [esp + 0x1dc]
mov eax, dword [ecx + eax + 0x18]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov dword [esp + 0x340], 0
cmp eax, ecx
je 0x5818d8
jmp 0x585519
mov eax, 1
mov edi, dword [esp + 0x194]
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc edi, 0
cmp edi, dword [esp + 0x204]
jae 0x585827
mov ecx, 0x10
mov edx, edi
not edx
and edx, 1
add edx, edi
je 0x585827
cmp ecx, 0x10
jne 0x581bdc
mov eax, dword [esp + 0x328]
mov dword [esp + 0x24c], eax
mov dword [esp + 0x328], edi
mov dl, byte [esp + 0x164]
movzx ecx, dl
cmp ecx, 0x4c
je 0x581a8f
mov edi, 8
cmp ecx, 0x5f
jne 0x581af5
mov edi, 0xa
mov byte [esp + 0x164], 0x4c
mov edx, dword [esp + 0x328]
imul eax, edx, 0x1c
mov ecx, dword [esp + 0x1dc]
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
mov dword [esp + 0x194], edx
mov dword [esp + 0x24c], edx
jne 0x5819c3
cmp edi, 0xa
jne 0x585519
jmp 0x581b66
mov ebx, 0x13
mov byte [esp + 0x164], 0x5f
mov edi, dword [esp + 0x328]
imul ecx, edi, 0x1c
mov edx, dword [esp + 0x1dc]
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 dword [esp + 0x24c], edi
mov dword [esp + 0x194], edi
je 0x581b66
cmp ebx, 0xe
je 0x58183c
mov eax, dword [esp + 0x24c]
mov dword [esp + 0x328], eax
jmp 0x5819c3
mov byte [esp + 0x164], dl
mov ebx, dword [esp + 0x15c]
cmp edi, 8
jne 0x57f620
mov ecx, edi
and ecx, 1
xor ecx, edi
not ecx
test ecx, ecx
je 0x57f620
mov dword [esp + 0x15c], ebx
mov byte [esp + 0x164], 0x27
mov edx, dword [esp + 0x328]
imul eax, edx, 0x1c
mov ecx, dword [esp + 0x1dc]
mov eax, dword [ecx + eax + 4]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x24c], edx
mov dword [esp + 0x194], edx
jne 0x5819c3
mov eax, 0x11
mov ecx, 0xf
mov byte [esp + 0x167], 9
mov edi, dword [esp + 0x24c]
imul edx, edi, 0x1c
mov ebx, 0x30000003
mov esi, dword [esp + 0x1dc]
cmp dword [esi + edx + 0x14], 4
mov dword [esp + 0x114], edi
jne 0x57fa50
cmp ecx, 0xf
jne 0x584d46
movzx edx, byte [esp + 0x167]
cmp edx, 0x4b
je 0x581bff
mov dword [esp + 0x340], ebx
mov ecx, 0xa
mov eax, 6
cmp edx, 0x67
mov edi, dword [esp + 0x328]
je 0x5857c8
jmp 0x5854f4
mov dword [esp + 0x340], 0x700002bb
mov eax, 0xe
mov ecx, dword [esp + 0x328]
mov dword [esp + 0x24c], ecx
jmp 0x584255
mov byte [esp + 0x167], 9
imul eax, dword [esp + 0x114], 0x1c
mov ecx, dword [esp + 0x1dc]
mov eax, dword [ecx + eax + 0x18]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jmp 0x5819a5
mov eax, 0xc
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x2d8]
mov esi, dword [edx]
mov edi, dword [edx + 4]
mov edx, dword [edx + 8]
lea ebx, [esp + 0x478]
mov dword [esp + 0x288], ebx
lea ebx, [esp + 0x470]
mov dword [esp + 0x28c], ebx
mov ebx, dword [esp + 0x1b8]
mov dword [esp + 0x47c], ebx
mov ebx, dword [esp + 0x1bc]
mov dword [esp + 0x478], ebx
mov dword [esp + 0x474], edi
mov dword [esp + 0x470], esi
mov dword [esp + 0x46c], 0
mov dword [esp + 0x468], 0
lea esi, [esp + 0x464]
mov dword [esp + 0x284], esi
mov dword [esp + 0x464], 0
lea esi, [esp + 0x460]
mov dword [esp + 0x280], esi
mov dword [esp + 0x460], 0
mov dword [esp + 0x45c], 0
test ecx, ecx
lea esi, [esp + 0x45c]
mov dword [esp + 0x27c], esi
je 0x585692
xor ebx, ebx
test bl, bl
jne 0x585692
mov al, 0x3e
movzx eax, al
cmp eax, 0x22
jne 0x581ef9
lea eax, [esp + 0x45c]
mov dword [esp + 0x27c], eax
lea eax, [esp + 0x460]
mov dword [esp + 0x280], eax
lea eax, [esp + 0x464]
mov dword [esp + 0x284], eax
lea eax, [esp + 0x470]
mov dword [esp + 0x28c], eax
lea eax, [esp + 0x478]
mov dword [esp + 0x288], eax
mov dword [esp + 0x420], 4
mov dword [esp + 0x424], 2
mov dword [esp + 0x428], edx
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x430], 0xfffffffe
lea eax, [esp + 0x468]
mov dword [esp + 8], eax
lea eax, [esp + 0x46c]
mov dword [esp + 4], eax
lea eax, [esp + 0x420]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x581fc4
mov bl, byte [esp + 0x230]
jmp 0x582418
lea eax, [esp + 0x45c]
mov dword [esp + 0x27c], eax
lea eax, [esp + 0x460]
mov dword [esp + 0x280], eax
lea eax, [esp + 0x464]
mov dword [esp + 0x284], eax
lea eax, [esp + 0x470]
mov dword [esp + 0x28c], eax
mov dword [esp + 0x420], 4
mov dword [esp + 0x424], 2
mov dword [esp + 0x428], edx
lea eax, [esp + 0x478]
mov dword [esp + 0x288], eax
mov dword [esp + 0x42c], ecx
mov esi, 0xd
mov dword [esp + 0x430], 0xfffffffe
lea eax, [esp + 0x468]
mov dword [esp + 8], eax
lea eax, [esp + 0x46c]
mov dword [esp + 4], eax
lea eax, [esp + 0x420]
mov dword [esp], eax
call fcn.00593400
mov dword [esp + 0x338], 0
test eax, eax
je 0x581fdb
mov ecx, eax
mov dword [esp + 0x218], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x582783
jmp 0x5825f0
mov dword [esp + 0x218], eax
mov dword [esp + 0x338], 0
jmp 0x582783
mov dword [esp + 0x218], eax
jmp 0x5825f0
mov dword [esp + 0x468], 0x1c
mov dword [esp + 4], 1
mov dword [esp], 0x1c
call fcn.00493840
mov dword [esp + 0x278], eax
mov dword [esp + 0x46c], eax
test eax, eax
je 0x5822d6
mov dword [esp + 0x338], 0
mov dword [esp + 0x218], 0x70000003
mov dword [esp + 0x1c8], edi
mov byte [esp + 0x230], 0x64
mov eax, 2
xor ecx, ecx
test cl, cl
jne 0x582783
cmp eax, 2
jne 0x58224c
xor edi, edi
mov bl, byte [esp + 0x230]
movzx ecx, bl
cmp ecx, 0x39
je 0x582300
cmp ecx, 0x5c
je 0x58223f
mov eax, 0xa
cmp ecx, 0x7a
jne 0x58240c
mov bl, 0x64
mov dword [esp + 0x464], 0x636f6964
mov dword [esp + 0x45c], 1
mov eax, dword [esp + 0x284]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x278]
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 4
mov ecx, dword [esp + 0x28c]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 0xc
mov ecx, dword [esp + 0x280]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 0x10
mov ecx, dword [esp + 0x27c]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 0x14
mov ecx, dword [esp + 0x288]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
jmp 0x582418
mov bl, 0x7a
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp + 0x464], 0x636f6964
mov dword [esp + 0x45c], 1
mov eax, dword [esp + 0x284]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x278]
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 4
mov ecx, dword [esp + 0x28c]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 0xc
mov ecx, dword [esp + 0x280]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 0x10
mov ecx, dword [esp + 0x27c]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 0x14
mov ecx, dword [esp + 0x288]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
test edi, edi
je 0x582160
jmp 0x582418
mov bh, byte [esp + 0xf3]
mov edi, dword [esp + 0x260]
movzx eax, bh
cmp eax, 0x3f
je 0x580735
xor ecx, ecx
mov eax, dword [esp + 0x12c]
lea edx, [eax + eax*2]
jmp 0x5822a2
mov eax, 0xf
mov bh, 0x65
mov esi, ecx
imul esi, esi
and esi, 3
cmp esi, 2
adc ecx, 0
mov esi, dword [esp + 0x344]
mov esi, dword [esi]
mov dword [esi + edx*8 + 0x14], edi
mov esi, ecx
not esi
and esi, 1
add esi, ecx
setne bl
movzx esi, bl
cmp ecx, esi
jb 0x582280
mov dword [esp + 0x260], edi
mov byte [esp + 0xf3], bh
mov ecx, dword [esp + 0x218]
mov esi, dword [esp + 0x338]
jmp 0x58252c
mov dword [esp + 0x338], 0
mov dword [esp + 0x218], 0x70000003
mov dword [esp + 0x1c8], edi
mov byte [esp + 0x230], 0x64
jmp 0x582783
mov ebx, 3
jmp 0x5823eb
mov esi, 0x16
mov byte [esp + 0x230], 0x39
inc edi
mov dword [esp + 0x464], 0x636f6964
mov dword [esp + 0x45c], 1
mov eax, dword [esp + 0x284]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x278]
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 4
mov ecx, dword [esp + 0x28c]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 0xc
mov ecx, dword [esp + 0x280]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 0x10
mov ecx, dword [esp + 0x27c]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x46c]
add eax, 0x14
mov ecx, dword [esp + 0x288]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
dec ebx
test edi, edi
jne 0x5823f9
mov eax, edi
xor eax, ebx
jne 0x582310
mov bl, byte [esp + 0x230]
mov bh, byte [esp + 0x240]
jmp 0x5847bb
mov ebx, dword [esp + 0x340]
jmp 0x582c20
mov dword [esp + 4], 0x1c
mov dword [esp], 1
call fcn.00493840
mov esi, eax
test esi, esi
jne 0x582489
cmp eax, 2
jne 0x582783
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x58318e
jmp 0x582783
cmp eax, 4
je 0x58254f
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
je 0x582645
mov bl, byte [esp + 0x230]
jmp 0x582418
mov ecx, dword [esp + 0x23c]
lea eax, [ecx + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov esi, dword [esp + 0x208]
mov dword [esp], esi
call fcn.007c5200
mov dword [esp + 0x25c], 0
mov dword [esp + 0x270], esi
jmp 0x582805
mov byte [esp + 0x228], bl
cmp edi, 5
je 0x582805
xor eax, eax
test al, al
je 0x5852ce
jmp 0x582805
cmp edi, 0xe
jne 0x585519
jmp 0x582783
xor esi, esi
mov ecx, dword [esp + 0x25c]
mov edx, dword [esp + 0x270]
mov edi, dword [esp + 0x22c]
mov ebx, dword [esp + 0x218]
jmp 0x5827e3
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x46c]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x338]
mov dword [esp], eax
call fcn.004936c0
mov edx, edi
mov ecx, ebx
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x5827b0
mov dword [esp + 0x270], edx
mov dword [esp + 0x25c], ecx
mov eax, 0x15
mov bl, 0x18
mov edx, dword [esp + 0x25c]
test edx, edx
je 0x582894
mov ecx, 0xe
mov esi, edx
imul edx, edx
and edx, 3
cmp edx, 2
mov edx, esi
mov dword [esp + 0x340], edx
mov esi, dword [esp + 0x270]
je 0x5828a2
mov dword [esp + 0x264], esi
mov byte [esp + 0x1a2], bl
mov dword [esp + 0x25c], edx
cmp ecx, 0xe
jne 0x582862
mov eax, 3
sub eax, ecx
xor eax, ecx
jne 0x585519
mov byte [esp + 0x1fb], 0x27
mov ebx, dword [esp + 0x1b4]
mov dword [esp + 8], ebx
mov edi, dword [esp + 0x144]
mov dword [esp + 4], edi
mov eax, dword [esp + 0x21c]
mov dword [esp], eax
call fcn.007c51d0
jmp 0x583a87
mov dword [esp + 0x340], edx
mov esi, dword [esp + 0x270]
mov dword [esp + 0x264], esi
mov dword [esp + 0x25c], edx
cmp eax, 8
je 0x5828f0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x5828fc
xor edx, edx
movsx eax, bl
cmp eax, 0x36
jg 0x582908
mov byte [esp + 0x1a2], bl
jmp 0x5810c1
mov byte [esp + 0x1a2], bl
jmp 0x5810c1
mov edi, 0xe
mov eax, dword [esp + 0x274]
mov eax, dword [eax]
cmp dword [eax + 0x14], 0
sete dl
mov byte [esp + 0x203], dl
movzx ecx, dl
imul ecx, ecx
cmp ecx, 2
setb cl
xor cl, dl
movzx ecx, cl
mov dword [esp + 0x268], ecx
mov edx, dword [esp + 0x2c0]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
xor esi, esi
cmp edx, ecx
mov ecx, dword [esp + 0x2bc]
mov dword [esp + 0x2f0], ecx
mov ecx, dword [esp + 0x2b8]
mov dword [esp + 0x2ec], ecx
je 0x582b6f
cmp edi, 0xb
je 0x580b8e
imul edi, edi
and edi, 3
cmp edi, 2
je 0x580b8e
xor eax, eax
mov esi, dword [esp + 0x2d8]
lea ecx, [esi + 0x1ac]
mov edi, dword [esp + 0x198]
mov ebx, dword [esp + 0x244]
jmp 0x582b53
mov byte [esp + 0x2fc], 0x18
mov byte [esp + 0x2f8], 0xc
mov byte [esp + 0x304], 0x76
mov byte [esp + 0x2d0], 0x77
mov byte [esp + 0x318], 0x4f
mov byte [esp + 0x2e0], 0x39
mov byte [esp + 0x2dc], 0x4e
mov byte [esp + 0x2d4], 5
mov byte [esp + 0x300], 0x4a
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
adc eax, 0
mov dword [esp + 0x2e4], 0
mov edx, dword [esp + 0x2f0]
mov dword [esp + 0x2e8], edx
mov dword [esp + 0x308], 0
mov edi, ecx
mov ebx, dword [esp + 0x2ec]
mov edx, eax
not edx
and edx, 1
add edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jb 0x582ad0
jmp 0x582ffd
mov ecx, 0xd
mov edx, dword [eax + 4]
test edx, edx
je 0x582bc1
mov ebx, 2
mov edi, edx
and edi, 1
inc edi
xor edi, edx
je 0x582bc1
cmp ebx, 2
jne 0x582cba
mov edi, 0x18
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x582ecc
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1d4], esi
jne 0x582be9
jmp 0x57f1d9
cmp ecx, 0xd
jne 0x582c6c
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
je 0x582c6c
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1d4], esi
mov eax, dword [esp + 0x3c0]
or eax, dword [esp + 0x3c4]
je 0x582caa
xor ebx, ebx
mov ecx, 8
test bl, bl
jne 0x582e81
xor esi, esi
cmp eax, 3
jne 0x582edf
mov dword [esp + 0x340], ebx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x582ef2
mov ecx, 8
mov edx, dword [esp + 0x1a4]
test edx, edx
je 0x582e91
mov byte [esp + 0x240], 0x26
imul edx, edx
and edx, 3
cmp edx, 2
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1d4], esi
jne 0x581504
jmp 0x584690
mov dword [esp + 0x340], 0
jmp 0x585519
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1d4], esi
movzx eax, byte [esp + 0x18b]
cmp eax, 0x14
je 0x582db2
mov edi, 0xf
cmp eax, 0x2e
jne 0x582da4
mov byte [esp + 0x18b], 0x3b
mov byte [esp + 0x1ae], 0x38
mov edx, dword [esp + 0x138]
mov edi, dword [esp + 0x344]
mov dword [edi], edx
mov esi, dword [esp + 0x33c]
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 + 0x1b0]
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 0x582e9e
cmp edi, 0xa
jne 0x580fbe
mov edx, dword [esp + 0x138]
mov edi, dword [esp + 0x344]
mov dword [edi], edx
mov esi, dword [esp + 0x33c]
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 + 0x1b0]
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 esi, 0xb
mov byte [esp + 0x18b], 0x2e
mov byte [esp + 0x1ae], 0x38
mov dword [esp], 8
call fcn.00492770
test eax, eax
jne 0x582eb5
mov dword [esp + 0x340], 0x70000003
mov edx, 6
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x168], eax
not ecx
test ecx, ecx
je 0x58365e
mov byte [esp + 0x240], 0x26
jmp 0x584690
mov dword [esp + 0x340], 0x70000003
mov dword [esp + 0x168], eax
jmp 0x58365e
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1d4], esi
jmp 0x57f1d9
mov dword [esp + 0x340], ebx
mov bl, byte [esp + 0x230]
jmp 0x582fdf
mov cl, byte [esp + 0x300]
mov eax, 0xb
mov dl, cl
movzx ecx, dl
cmp ecx, 0x4a
jne 0x58310f
mov byte [esp + 0x300], dl
mov dword [esp + 0x244], ebx
mov dword [esp + 0x198], edi
mov dword [esp + 0x2d8], esi
mov edi, dword [esp + 0x19c]
cmp eax, 6
jne 0x58322f
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x58322f
mov eax, edi
mov dword [esp + 0x19c], edi
and eax, 0xffffff
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x344]
mov dword [edi], esi
mov ebx, dword [esp + 0x33c]
mov ecx, dword [ebx]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [ebx], edx
mov ecx, dword [esp + 0x104]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x90]
mov dword [esi + ecx], edx
mov edx, dword [edi]
mov dword [edx + ecx + 4], eax
mov eax, dword [edi]
mov edx, dword [esp + 0xc0]
mov byte [eax + ecx + 8], dl
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x1b4]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov esi, 0x1c
mov byte [esp + 0xcf], 0x45
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x21c], eax
mov dword [esp + 0x340], 0x70000003
test eax, eax
jne 0x584bf0
jmp 0x585519
mov byte [esp + 0x300], 0x4a
mov eax, dword [esp + 0x2e8]
mov ecx, dword [eax + 8]
mov dword [esp + 0x330], ecx
imul eax, dword [esp + 0x308], 0x1c
mov eax, dword [ecx + eax + 4]
cmp eax, 1
je 0x5832c4
cmp eax, 0x10
je 0x5832e2
mov dword [esp + 0x244], ebx
mov dword [esp + 0x198], edi
mov dword [esp + 0x2d8], esi
cmp eax, 0x33
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x29c], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 0x310], eax
jne 0x584f86
mov eax, dword [esp + 0x310]
imul ecx, eax, 0x1c
mov esi, dword [esp + 0x330]
mov eax, dword [esi + ecx]
mov edx, 3
sub edx, eax
xor edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jne 0x5832af
movzx edx, byte [esp + 0x2d0]
cmp edx, 1
je 0x58339b
mov eax, 0xc
cmp edx, 0x77
jne 0x58341d
cmp eax, 0xa
je 0x584781
xor eax, eax
test al, al
jne 0x584781
mov byte [esp + 0x300], 0x42
mov eax, dword [esp + 0x2e8]
mov ebx, dword [eax + 8]
imul eax, dword [esp + 0x308], 0x1c
mov ecx, dword [ebx + eax + 4]
cmp ecx, 1
je 0x583307
mov dword [esp + 0x19c], edi
cmp ecx, 0x10
je 0x58333f
mov dword [esp + 0x330], ebx
mov esi, 6
mov eax, 2
cmp ecx, 0x33
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x29c], ecx
mov ecx, dword [esp + 0x308]
mov dword [esp + 0x310], ecx
jne 0x57f179
jmp 0x58246c
add ecx, esi
mov dword [esp + 0x2a0], ecx
mov dword [esp + 0x2a4], eax
jmp 0x583921
mov dword [esp + 0x10c], eax
mov dword [esp + 0x244], ebx
mov dword [esp + 0x198], edi
mov dword [esp + 0x2d8], esi
jmp 0x58331c
mov dword [esp + 0x10c], eax
mov dword [esp + 0x244], ebx
mov dword [esp + 0x198], edi
mov dword [esp + 0x2d8], esi
mov ebx, dword [esp + 0x330]
jmp 0x583346
mov dword [esp + 0x19c], edi
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x330], ebx
mov eax, dword [esp + 0x2e4]
mov esi, eax
mov dword [esp + 0x29c], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 0x310], eax
jmp 0x584344
mov dword [esp + 0x10c], ecx
movzx ecx, byte [esp + 0x2d4]
cmp ecx, 5
je 0x583500
mov eax, 8
cmp ecx, 0x29
je 0x583575
mov eax, 0xb
cmp ecx, 0x3c
jne 0x58359d
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x29c], ecx
mov ecx, dword [esp + 0x308]
mov dword [esp + 0x310], ecx
jmp 0x58349b
mov byte [esp + 0x2d0], 2
cmp dword [esi + ecx + 0x14], 4
je 0x58343b
mov al, 1
test al, al
je 0x58343b
mov ecx, 0xf
mov ebx, 0x30000003
cmp ecx, 0xf
je 0x5834f4
mov byte [esp + 0x2d0], 1
mov dword [esp + 0x340], 0x30000003
cmp dword [esi + ecx + 0x14], 4
jne 0x585519
xor ecx, ecx
imul edx, dword [esp + 0x310], 0x1c
mov edi, dword [esp + 0x198]
mov ebx, dword [esp + 0x330]
jmp 0x58347c
mov esi, ecx
imul esi, esi
and esi, 3
cmp esi, 2
sbb esi, esi
and esi, 1
cmp ecx, esi
jb 0x583460
cmp eax, 0xb
je 0x5834be
imul eax, eax
and eax, 3
cmp eax, 3
je 0x5834be
mov dword [esp + 0x330], ebx
mov esi, dword [esp + 0x2cc]
jmp 0x584344
mov byte [esp + 0x2d4], 0x3c
imul eax, dword [esp + 0x310], 0x1c
mov eax, dword [ebx + eax]
mov dword [esp + 0x330], ebx
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x584f86
jmp 0x5835ed
mov esi, 0x10
mov edi, 4
mov byte [esp + 0x2d4], 0x2b
mov edx, dword [esp + 0x308]
imul eax, edx, 0x1c
mov eax, dword [ebx + eax]
mov dword [esp + 0x330], ebx
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x310], edx
jne 0x584f77
cmp esi, 0xa
jne 0x5835ed
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x5852ce
jmp 0x5835ed
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x29c], ecx
mov ecx, dword [esp + 0x308]
mov dword [esp + 0x310], ecx
jmp 0x57de55
mov byte [esp + 0x2d4], 0x29
mov edx, dword [esp + 0x308]
imul eax, edx, 0x1c
mov eax, dword [ebx + eax]
mov dword [esp + 0x330], ebx
cmp eax, 1
jne 0x58373b
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x310], edx
je 0x584f86
mov ecx, 0x10
movzx edx, byte [esp + 0x2dc]
cmp edx, 1
mov ebx, dword [esp + 0x330]
je 0x583647
mov eax, 1
cmp edx, 0x7c
jne 0x5840ab
mov esi, 5
mov byte [esp + 0x2dc], 1
imul eax, dword [esp + 0x310], 0x1c
cmp dword [ebx + eax + 0x14], 8
je 0x583653
mov dword [esp + 0x340], 0x30000003
xor eax, eax
test al, al
je 0x585519
jmp 0x58365e
mov esi, dword [esp + 0x2cc]
jmp 0x583c62
mov dword [esp + 0x340], 0x30000003
cmp esi, 5
jne 0x583673
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x584279
mov eax, 0xc
mov esi, 0x11
movzx ecx, byte [esp + 0x1ae]
cmp ecx, 0x38
jne 0x583c8f
cmp esi, 4
jne 0x5836a4
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
jne 0x5852ce
mov esi, 3
mov byte [esp + 0x1ae], 0x38
mov byte [esp + 0x228], 0x4c
lea eax, [esp + 0x3c0]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x168]
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1b0]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x3c4]
mov edi, dword [esp + 0x2d8]
mov edx, dword [edi]
mov edi, dword [edi + 4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], edx
mov dword [esp], str.Renaming_SL_Provisional__llu_to__llu_n
call fcn.004414c0
test byte [esp + 0x157], 1
je 0x5810c1
jmp 0x584433
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x310], edx
jmp 0x584f86
cmp eax, 0xa
jne 0x58383c
mov bh, 0x4f
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx eax, al
add ecx, eax
imul eax, dword [esp + 0x310], 0x1c
lea edi, [edx + eax]
mov esi, dword [edx + eax]
mov eax, 3
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
cmp ecx, eax
jb 0x5838d0
mov byte [esp + 0x318], bh
mov dword [esp + 0x2a0], edi
mov dword [esp + 0x2a4], esi
mov dword [esp + 0x330], edx
mov esi, dword [esp + 0x29c]
mov ecx, dword [esp + 0x2a4]
lea eax, [ecx - 1]
cmp eax, 2
jae 0x5839c6
mov eax, 0xb
test byte [esp + 0x203], 1
mov dword [esp + 0x29c], esi
mov ecx, dword [esp + 0x2a0]
mov dword [esp + 0x120], ecx
je 0x583be2
cmp eax, 0xb
jne 0x583a5c
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x583a5c
mov ecx, dword [esp + 0x10c]
cmp ecx, 0x22
jg 0x583afa
mov eax, 0xa
cmp ecx, 3
mov ecx, dword [esp + 0x2a0]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x29c], esi
jne 0x584344
cmp eax, 7
je 0x583a72
xor eax, eax
test al, al
jne 0x583a72
mov edi, 9
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x120]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x244]
mov dword [esp], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x268]
call fcn.004dd150
mov dword [esp + 0x340], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x29c]
mov esi, eax
mov dword [esp + 0x2cc], eax
jne 0x585232
mov dword [esp + 0x2cc], esi
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x330]
jmp 0x57dddf
mov dword [esp + 0x2cc], esi
mov edi, dword [esp + 0x144]
mov ebx, dword [esp + 0x1b4]
mov dl, byte [esp + 0x163]
movzx eax, dl
cmp eax, 0x24
je 0x57ec23
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x144], edi
xor eax, eax
mov ecx, dword [esp + 0x104]
lea ecx, [ecx + ecx*2]
mov edi, dword [esp + 0x21c]
mov bh, dl
jmp 0x583ad9
cmp edi, 0x10
mov dword [esp + 0x2cc], esi
je 0x58075b
jmp 0x583be2
mov eax, 0xa
movzx edx, byte [esp + 0x304]
cmp edx, 0x26
je 0x583c88
cmp edx, 0x48
je 0x583d7d
mov ecx, 7
cmp edx, 0x71
jne 0x583e74
mov ecx, 1
mov eax, 0xb
mov byte [esp + 0x304], 0x48
mov edx, dword [ebp + 0x14]
mov edx, dword [edx]
mov edi, edx
imul edi, edi
and edi, 3
cmp edi, 2
sete bl
movzx edi, bl
cmp edx, edi
mov dword [esp + 0x2cc], esi
mov edx, dword [esp + 0x330]
mov dword [esp + 0x26c], edx
mov edx, dword [esp + 0x29c]
mov dword [esp + 0x250], edx
jne 0x57fb68
mov eax, ecx
or eax, 2
mov edx, ecx
xor edx, 2
add edx, eax
setne al
movzx eax, al
cmp ecx, eax
jne 0x584042
mov dword [esp + 0x2cc], esi
jmp 0x583ef7
mov dword [esp + 0x2cc], esi
cmp eax, 0xa
mov edi, dword [esp + 0x2d8]
jne 0x583cf2
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x583cf2
mov esi, 0x16
mov byte [esp + 0x304], 0x26
mov eax, dword [ebp + 0x14]
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 ebx, dword [esp + 0x330]
mov dword [esp + 0x26c], ebx
mov eax, dword [esp + 0x29c]
mov dword [esp + 0x250], eax
jne 0x580f98
jmp 0x583f05
mov byte [esp + 0x1ae], 0x68
mov byte [esp + 0x228], 0x4c
lea eax, [esp + 0x3c0]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x168]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1b0]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x3c4]
mov edx, dword [edi]
mov esi, dword [edi + 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 + 0x157], 1
je 0x5810c1
jmp 0x58444c
mov ecx, 0x10
mov byte [esp + 0x304], 0x71
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
mov eax, dword [esp + 0x330]
mov dword [esp + 0x26c], eax
mov eax, dword [esp + 0x29c]
mov dword [esp + 0x250], eax
mov dword [esp + 0x2cc], esi
jne 0x58418e
cmp ecx, 0x10
jne 0x583dcd
mov eax, 3
sub eax, ecx
xor eax, ecx
jne 0x583ef7
movzx eax, byte [esp + 0x137]
cmp eax, 4
jne 0x581c2c
mov dword [esp + 0x2cc], esi
mov edx, dword [esp + 0x330]
mov bl, byte [esp + 0x294]
cmp ecx, 7
je 0x583ea0
xor eax, eax
test al, al
jne 0x583ea0
mov dword [esp + 0x330], edx
jmp 0x57e6df
mov byte [esp + 0x294], bl
mov esi, 0xb
mov byte [esp + 0x304], 0x76
mov eax, dword [ebp + 0x14]
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 + 0x26c], edx
mov dword [esp + 0x330], edx
mov eax, dword [esp + 0x29c]
mov dword [esp + 0x250], eax
jne 0x58418e
cmp esi, 0xb
jne 0x57ef72
mov edi, dword [esp + 0x2d8]
mov ebx, dword [esp + 0x330]
movzx eax, byte [esp + 0x2f8]
cmp eax, 0x35
jne 0x583f1c
mov byte [esp + 0x2f8], 0xc
jmp 0x583f24
mov byte [esp + 0x2f8], 0x35
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x1b8]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1bc]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x268]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
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 dword [esp + 0x340], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x58402f
mov eax, 0xe
movzx ecx, byte [esp + 0x2fc]
cmp ecx, 0x16
je 0x5840a4
cmp ecx, 0x18
jne 0x58413c
mov dword [esp + 0x330], ebx
mov dword [esp + 0x2d8], edi
xor eax, eax
mov dl, byte [esp + 0x2fc]
mov esi, dword [esp + 0x26c]
mov edi, dword [esp + 0x250]
jmp 0x584002
mov dl, 0x49
inc eax
mov ecx, dword [esp + 0x404]
mov esi, dword [ecx + 8]
mov edi, 1
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x583ff0
mov dword [esp + 0x250], edi
mov dword [esp + 0x26c], esi
mov byte [esp + 0x2fc], dl
jmp 0x58418e
mov dword [esp + 0x330], ebx
mov dword [esp + 0x2d8], edi
jmp 0x585519
mov byte [esp + 0x2dc], 0x4e
imul eax, dword [esp + 0x310], 0x1c
mov ecx, dword [esp + 0x330]
mov eax, dword [ecx + eax + 0x14]
mov dword [esp + 0x340], 0x30000003
cmp eax, 8
jne 0x5842be
mov edi, 0xd
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x2cc], esi
je 0x585519
cmp edi, 7
je 0x57f0f8
xor eax, eax
test al, al
je 0x584279
mov dword [esp + 0x2d8], edi
cmp eax, 1
jne 0x58410f
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x58410f
mov eax, 0x1b
mov byte [esp + 0x2dc], 0x7c
imul ecx, dword [esp + 0x310], 0x1c
mov ecx, dword [ebx + ecx + 0x14]
cmp ecx, 8
mov dword [esp + 0x340], 0x30000003
je 0x584247
mov dword [esp + 0x330], ebx
mov esi, 0xf
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov edi, dword [esp + 0x328]
jne 0x584f5a
jmp 0x584255
mov dword [esp + 0x330], ebx
mov byte [esp + 0x2fc], 0x18
mov eax, dword [esp + 0x404]
mov eax, dword [eax + 8]
mov dword [esp + 0x26c], eax
mov dword [esp + 0x250], 1
jmp 0x58418e
mov dword [esp + 0x330], ebx
mov dword [esp + 0x2d8], edi
mov esi, 3
mov cl, 0x16
mov eax, dword [esp + 0x404]
mov eax, dword [eax + 8]
mov edx, 1
cmp esi, 3
jne 0x58422d
mov dword [esp + 0x250], edx
mov dword [esp + 0x26c], eax
mov byte [esp + 0x2fc], cl
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
je 0x57f0da
mov eax, dword [esp + 0x310]
imul eax, eax, 0x1c
mov ecx, dword [esp + 0x26c]
add eax, ecx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x244]
mov dword [esp], eax
mov dword [esp + 0xc], 1
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x268]
call fcn.004fddc0
test eax, eax
jne 0x584213
mov esi, 0x12
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x340], eax
not ecx
test ecx, ecx
mov eax, dword [esp + 0x250]
mov dword [esp + 0x2cc], eax
je 0x585519
cmp esi, 3
mov esi, dword [esp + 0x2cc]
je 0x5800ec
mov dword [esp + 0x340], eax
mov eax, dword [esp + 0x250]
mov dword [esp + 0x2cc], eax
jmp 0x585519
mov dword [esp + 0x250], edx
mov dword [esp + 0x26c], eax
mov byte [esp + 0x2fc], cl
jmp 0x57f0da
mov dword [esp + 0x330], ebx
mov edi, dword [esp + 0x328]
cmp eax, 0xe
jne 0x584272
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x328], edi
jb 0x585519
mov dword [esp + 0x328], edi
mov eax, 4
movzx ecx, byte [esp + 0x2e0]
cmp ecx, 0x1a
mov edx, dword [esp + 0x330]
jne 0x5842a5
mov dword [esp + 0x2cc], esi
jmp 0x585519
mov edi, dword [esp + 0x310]
lea ebx, [edi + 1]
mov eax, dword [esp + 0x404]
xor edx, edx
cmp ebx, dword [eax + 4]
jae 0x58439f
mov dword [esp + 0x2e8], eax
mov ecx, 0xe
mov eax, ebx
not eax
and eax, 1
lea eax, [edi + eax + 1]
test eax, eax
mov edi, dword [esp + 0x274]
je 0x5843c3
mov dword [esp + 0x308], ebx
mov dword [esp + 0x2e4], esi
mov dword [esp + 0x2cc], esi
mov ebx, dword [esp + 0x330]
jmp 0x584fb8
mov dword [esp + 0x2e8], eax
mov edi, dword [esp + 0x274]
jmp 0x5843c3
test edx, edx
jne 0x5843d4
mov ecx, edx
and ecx, 1
xor ecx, edx
not ecx
test ecx, ecx
jne 0x5843b0
mov dword [esp + 0x308], ebx
mov dword [esp + 0x274], edi
mov dword [esp + 0x2e4], esi
mov dword [esp + 0x2cc], esi
jmp 0x582b6f
mov byte [esp + 0x143], 0x21
mov byte [esp + 0x166], 0xb
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0xe8], eax
test eax, eax
mov dword [esp + 0x340], 0x700002bb
je 0x585519
mov esi, 0xa
xor eax, eax
test al, al
jne 0x585519
cmp esi, 3
mov eax, dword [esp + 0x2cc]
jne 0x584490
imul esi, esi
and esi, 3
cmp esi, 2
mov esi, eax
jae 0x584492
mov ecx, 0x15
mov esi, 0xc
mov bl, byte [esp + 0x228]
movzx edx, bl
cmp edx, 0x63
jne 0x581597
cmp esi, 0xc
jne 0x584484
xor eax, eax
mov ecx, 3
mov esi, dword [esp + 0x2d8]
mov edi, dword [ebp + 0x2c]
jmp 0x5810ac
mov byte [esp + 0x228], bl
jmp 0x581432
mov esi, eax
movzx eax, byte [esp + 0x166]
cmp eax, 0x44
je 0x5844fb
cmp eax, 0x51
jne 0x584557
mov byte [esp + 0x1c3], 0x1b
mov eax, dword [esp + 0xe8]
mov edx, dword [eax]
test edx, edx
jne 0x5845b5
mov dword [esp + 0x340], 0x700002bb
mov byte [esp + 0x166], 0x44
mov eax, 5
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x224], edx
mov dword [esp + 0x2cc], esi
jne 0x584ff7
jmp 0x584714
mov eax, 5
mov byte [esp + 0x166], 0x51
mov byte [esp + 0x1c3], 0x1b
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx]
mov dword [esp + 0x224], ecx
mov dword [esp + 0x340], 0x700002bb
test ecx, ecx
jne 0x584714
cmp eax, 5
jne 0x583be2
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x2cc], esi
jne 0x585519
jmp 0x583be2
mov eax, 0x17
mov byte [esp + 0x166], 0xb
mov byte [esp + 0x1c3], 0x1b
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx]
mov dword [esp + 0x224], ecx
mov dword [esp + 0x340], 0x700002bb
test ecx, ecx
mov dword [esp + 0x2cc], esi
je 0x585519
cmp eax, 0xe
jne 0x584714
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x584714
xor ebx, ebx
jmp 0x5806a4
mov dword [esp + 0x340], 0x700002bb
mov dword [esp + 0x224], edx
mov byte [esp + 0x166], 0x44
jmp 0x584714
xor eax, eax
test al, al
mov dword [esp + 0x334], esi
je 0x585519
mov ecx, 0x15
mov eax, dword [esp + 0x148]
mov eax, dword [eax + 4]
test eax, eax
jne 0x584642
mov dword [esp + 0x340], 0x700002bb
mov edi, 0xf
mov edx, eax
mov dword [esp + 0x224], eax
imul edx, edx
and edx, 3
cmp edx, 2
jae 0x584654
cmp edi, 1
jne 0x585519
mov ecx, edi
and ecx, 1
xor ecx, edi
not ecx
test ecx, ecx
mov edx, dword [esp + 0x9c]
jne 0x57ea0f
jmp 0x585519
mov dword [esp + 0x340], 0x700002bb
mov dword [esp + 0x224], eax
cmp ecx, 8
jne 0x58470d
mov ecx, 2
mov byte [esp + 0x143], 0x21
mov al, byte [esp + 0x203]
not al
or al, byte [esp + 0x1db]
test al, 1
mov eax, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1d4]
je 0x584781
cmp ecx, 2
je 0x584aaa
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1d4], esi
je 0x5850ff
mov esi, 0x10
mov bh, byte [esp + 0x240]
movzx ecx, bh
cmp ecx, 0x26
je 0x5847b4
mov eax, 0x1e
cmp ecx, 0x73
jne 0x5847e3
mov eax, 9
mov bl, 0x19
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x30c]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x32c]
mov dword [ecx + edx*8 + 0x14], esi
mov bh, byte [esp + 0x318]
jmp 0x585043
mov esi, dword [esp + 0x2cc]
movzx ecx, byte [esp + 0x1c3]
cmp ecx, 0x1b
je 0x58490a
mov eax, 0x13
cmp ecx, 0x68
mov ebx, dword [esp + 0x224]
jne 0x584980
mov byte [esp + 0x1c3], 0x1b
mov byte [esp + 0x1f3], 0x12
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x184], eax
mov eax, dword [eax]
cmp eax, 0xfffffffe
jne 0x584dda
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x148], ebx
jne 0x5855f7
jmp 0x5845e5
mov esi, 4
movzx eax, byte [esp + 0x143]
cmp eax, 2
jne 0x584a2f
cmp esi, 4
je 0x5843f5
imul esi, esi
and esi, 3
cmp esi, 2
jne 0x58169b
jmp 0x5843f5
mov bl, byte [esp + 0x230]
cmp esi, 0x10
jne 0x584a9e
mov byte [esp + 0x230], bl
xor eax, eax
mov ecx, dword [esp + 0x30c]
lea edx, [ecx + ecx*2]
mov edi, dword [esp + 0x32c]
jmp 0x581575
mov esi, dword [esp + 0x334]
mov bl, byte [esp + 0x254]
xor ecx, ecx
cmp eax, 0xf
jne 0x584835
mov edx, 3
sub edx, eax
xor edx, eax
je 0x584835
mov eax, 0xa
mov byte [esp + 0x254], 0x4c
mov byte [esp + 0x248], 0x15
mov ecx, dword [esp + 0x20c]
cmp dword [ecx + 4], 0
mov dword [esp + 0x174], ecx
jne 0x5850aa
jmp 0x5852e4
mov byte [esp + 0x254], bl
mov bl, byte [esp + 0x240]
jmp 0x58487b
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov edi, dword [esp + 0x30c]
lea edi, [edi + edi*2]
mov ebx, dword [esp + 0x32c]
mov dword [eax + edi*8 + 0x14], ebx
cmp edx, 2
mov eax, 3
mov bl, 0x73
adc ecx, 0
mov edx, ecx
imul edx, edx
and edx, 3
test ecx, ecx
je 0x584850
cmp edx, 3
je 0x584850
mov byte [esp + 0x240], bl
mov dword [esp + 0x334], esi
cmp eax, 2
je 0x5848ad
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x5852ce
mov eax, 4
mov byte [esp + 0x113], 3
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x584e21
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x2c0], ecx
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0x2bc], ecx
mov ecx, dword [esp + 0x22c]
mov dword [esp + 0x2b8], ecx
jne 0x582a1f
jmp 0x584e4b
mov eax, 0xd
mov byte [esp + 0x1c3], 0x68
mov byte [esp + 0x1f3], 0x12
mov ebx, dword [esp + 0x224]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x184], ecx
mov edx, dword [ecx]
cmp edx, 0xfffffffe
je 0x584ded
mov ecx, 7
imul edx, edx
and edx, 3
cmp edx, 2
mov edi, dword [esp + 0x328]
mov dword [esp + 0x148], ebx
mov dword [esp + 0x2cc], esi
mov esi, dword [esp + 0x334]
je 0x5855e0
cmp ecx, 7
jne 0x5845d4
mov dword [esp + 0x334], esi
jmp 0x5845e5
mov edx, dword [esp + 0x330]
cmp eax, 4
jne 0x5849d3
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x5849d3
mov dword [esp + 0x224], ebx
mov byte [esp + 0x2e0], 0x39
imul eax, dword [esp + 0x310], 0x1c
mov eax, dword [edx + eax + 0x18]
mov dword [esp + 0x330], edx
movsd xmm0, qword [eax]
movsd qword [esp + 0x3c0], xmm0
mov esi, dword [esp + 0x29c]
jmp 0x584344
mov edi, 0x1a
mov byte [esp + 0x1c3], 0x31
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx]
cmp eax, 0xfffffffe
jne 0x584abd
mov byte [esp + 0x1f3], 0x12
mov dword [esp + 0x330], edx
mov dword [esp + 0x184], ecx
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov dword [esp + 0x148], ebx
mov dword [esp + 0x224], ebx
mov dword [esp + 0x2cc], esi
jne 0x5855f7
jmp 0x584ae8
mov eax, 0x18
mov byte [esp + 0x143], 2
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx]
test edi, edi
jne 0x585089
mov dword [esp + 0x340], 0x700002bb
mov byte [esp + 0x166], 0xb
mov ecx, 0x10
mov edx, edi
or edx, 2
mov esi, edi
mov dword [esp + 0xe8], edi
xor esi, 2
add esi, edx
mov esi, dword [esp + 0x334]
je 0x5850aa
cmp ecx, 0x10
je 0x585519
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x5850ff
jmp 0x585519
mov byte [esp + 0x240], bh
jmp 0x582418
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1d4], esi
jmp 0x5850ff
mov byte [esp + 0x1f3], 0x12
mov dword [esp + 0x330], edx
mov dword [esp + 0x184], ecx
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x148], ebx
mov dword [esp + 0x224], ebx
cmp edi, 0x10
je 0x584afb
mov eax, edi
and eax, 1
inc eax
xor eax, edi
jne 0x5845e5
mov eax, 0xf
movzx ecx, byte [esp + 0x1af]
cmp ecx, 0x33
jne 0x57e0f1
cmp eax, 3
jne 0x584b26
mov dword [esp + 0x340], 0x70000003
jmp 0x585519
mov byte [esp + 0x1af], 0x73
mov esi, dword [esp + 0x344]
mov edi, dword [esp + 0x16c]
mov dword [esi], edi
mov edx, dword [esp + 0x33c]
mov eax, dword [edx]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x1cc]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 0x10
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
test eax, eax
je 0x584dc3
mov dword [esp + 0x340], 0x70000003
mov bl, 0x1d
mov ecx, eax
mov dword [esp + 0x180], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x585519
movzx eax, bl
cmp eax, 4
je 0x584c14
mov esi, 0xe
cmp eax, 0x47
jne 0x584cdc
cmp esi, 0xe
mov ecx, dword [esp + 0x2d8]
jne 0x57eb87
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x57e1b2
jmp 0x57eb87
mov esi, 0xc
mov dword [esp + 0x340], 0x70000003
mov ebx, dword [esp + 0x2d8]
cmp esi, 0xc
je 0x584c47
imul esi, esi
and esi, 3
cmp esi, 3
je 0x584c47
mov dword [esp + 0x2d8], ebx
jmp 0x58075b
mov dword [esp + 0x170], 0xd
mov byte [esp + 0x202], 0x26
mov dword [esp + 4], ebx
mov esi, dword [esp + 0x180]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1cc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
mov edi, dword [esp + 0x1fc]
test edi, edi
sete dl
mov esi, 3
sub esi, edi
xor esi, edi
setne ch
and ch, dl
mov byte [esp + 0xd7], ch
movzx edx, ch
cmp edx, 1
jne 0x584e07
mov dword [esp + 0x2d8], ebx
movzx ecx, cl
cmp eax, ecx
je 0x584d46
jmp 0x584e0e
mov byte [esp + 0x202], 0x26
mov eax, dword [esp + 0x2d8]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x180]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1cc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
cmp dword [esp + 0x1fc], 0
sete byte [esp + 0xd7]
jne 0x584d4e
movzx ecx, cl
cmp eax, ecx
jne 0x584d4e
or byte [esp + 0x400], 2
movzx ecx, byte [esp + 0x202]
cmp ecx, 0x26
je 0x57e235
mov eax, 0x16
cmp ecx, 0x74
je 0x58375c
mov byte [esp + 0x202], 0x74
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x17c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x150], eax
mov dword [esp + 0x340], 0x70000003
test eax, eax
jne 0x584eb8
jmp 0x585519
mov dword [esp + 0x340], 0x70000003
mov dword [esp + 0x180], eax
jmp 0x585519
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x148], ebx
jmp 0x5845e5
mov edi, dword [esp + 0x328]
mov dword [esp + 0x148], ebx
mov dword [esp + 0x2cc], esi
jmp 0x5855e0
mov dword [esp + 0x2d8], ebx
cmp dword [esp + 0x170], 0xd
jne 0x57ef0e
jmp 0x584d4e
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x2c0], ecx
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0x2bc], ecx
mov ecx, dword [esp + 0x22c]
mov dword [esp + 0x2b8], ecx
cmp eax, 4
je 0x581d5a
xor edi, edi
mov ebx, dword [esp + 0xd0]
jmp 0x584e8c
mov esi, 0xf
mov byte [esp + 0x314], 0x1e
inc edi
mov eax, dword [esp + 0x31c]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x320]
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 0x584e60
cmp esi, 0xf
je 0x57eb47
imul esi, esi
and esi, 3
cmp esi, 3
je 0x57eb47
mov esi, dword [esp + 0x150]
mov ebx, dword [esp + 0x344]
mov dword [ebx], esi
mov edi, dword [esp + 0x33c]
mov eax, dword [edi]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edi], ecx
mov eax, dword [esp + 0x17c]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esi + eax], 0xe
mov ecx, dword [ebx]
mov dword [ecx + eax + 4], 0
mov ecx, dword [ebx]
mov byte [ecx + eax + 8], 0
mov ecx, dword [ebx]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [ebx]
mov dword [ecx + eax + 0x10], 4
mov ecx, dword [ebx]
mov dword [ecx + eax + 0x14], 0
mov esi, 0x12
mov edi, 9
mov dword [esp], 4
call fcn.00492770
mov dword [esp + 0xb0], eax
mov dword [esp + 0x340], 0x70000003
test eax, eax
je 0x584f77
cmp esi, 0xf
je 0x585519
cmp edi, 4
je 0x584f86
xor eax, eax
test al, al
je 0x585519
mov eax, 2
mov bh, byte [esp + 0x318]
movzx edx, bh
cmp edx, 0x4f
je 0x58503c
mov edi, 8
mov ecx, 0x10
cmp edx, 0x76
mov ebx, dword [esp + 0x330]
jne 0x5806c7
cmp ecx, 0xe
je 0x58501b
cmp eax, 5
je 0x585519
imul eax, eax
and eax, 3
cmp eax, 3
mov esi, dword [esp + 0x29c]
jne 0x583928
jmp 0x585519
mov bl, byte [esp + 0x240]
xor ecx, ecx
cmp eax, 2
je 0x585068
mov byte [esp + 0x240], bl
imul eax, eax
and eax, 3
cmp eax, 3
je 0x58506f
mov byte [esp + 0x318], bh
jmp 0x5852ce
mov byte [esp + 0x240], bl
mov edx, dword [esp + 0x330]
mov esi, dword [esp + 0x2a4]
mov edi, dword [esp + 0x2a0]
jmp 0x5838f2
mov dword [esp + 0x340], 0x700002bb
mov byte [esp + 0x166], 0xb
mov dword [esp + 0xe8], edi
mov esi, dword [esp + 0x334]
cmp eax, 0xa
jne 0x580c8b
mov dword [esp + 0x334], esi
jmp 0x580ca8
mov bl, 0x12
test edx, edx
jne 0x585619
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
je 0x585619
mov byte [esp + 0x1a3], 0x7f
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x58520e
mov dword [esp + 0x358], 4
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x360], ecx
mov dword [esp + 0x364], eax
mov dword [esp + 0x368], 0xfffffffe
lea edi, [esp + 0x3bc]
mov dword [esp + 0x10], edi
lea ebx, [esp + 0x370]
mov dword [esp + 0xc], ebx
lea esi, [esp + 0x358]
mov dword [esp], esi
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.005938f0
test eax, eax
jne 0x585509
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x585512
lea eax, [esp + 0x374]
lea ecx, [esp + 0x3c0]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
mov dword [esp], esi
mov esi, 0xf
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.00593f40
mov dword [esp + 0x340], eax
test eax, eax
jne 0x585519
cmp esi, 7
je 0x5800ec
imul esi, esi
and esi, 3
cmp esi, 3
je 0x5800ec
mov esi, 0x1c
movzx eax, byte [esp + 0x1a3]
cmp eax, 0x36
je 0x5852b7
mov edi, 0x11
cmp eax, 0x5c
jne 0x585457
cmp edi, 9
je 0x585519
imul edi, edi
and edi, 3
cmp edi, 2
je 0x585519
mov ecx, 0xa
mov byte [esp + 0x1a3], 0x36
mov edx, dword [esp + 0x3c0]
mov dword [esp + 0x108], edx
mov esi, dword [esp + 0x3c4]
mov dword [esp + 0x2a8], esi
mov eax, dword [esp + 0x2d8]
mov dword [eax + 4], esi
mov dword [eax], edx
mov dword [esp + 0x340], 0
test byte [esp + 0xbb], 1
je 0x585519
cmp ecx, 0xa
jne case.0x57fb42.1
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
jne 0x58549c
jmp case.0x57fb42.1
mov ecx, dword [esp + 0x2d8]
cmp esi, 0xd
jne 0x58539b
mov dword [esp + 0x2d8], ecx
mov eax, dword [esp + 0x458]
mov dword [esp], eax
call fcn.004936c0
mov esi, dword [esp + 0x334]
mov al, byte [esp + 0x248]
movzx edx, al
cmp edx, 0x15
je 0x585405
mov eax, 1
mov ecx, 0x10
cmp edx, 0x32
mov dword [esp + 0x334], esi
je 0x580240
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ecx, eax
jne 0x5815d2
xor eax, eax
mov edx, dword [ebp + 0x10]
mov bl, byte [esp + 0x1a2]
mov edi, dword [esp + 0x264]
jmp 0x585374
mov bl, 0x37
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
mov dword [edx], edi
mov ecx, dword [esp + 0x404]
mov dword [esp + 0x2bc], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x2c0], ecx
mov dword [esp + 0x2b8], edi
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jb 0x585340
mov byte [esp + 0x1a2], bl
mov dword [esp + 0x334], esi
jmp 0x582a1f
mov eax, 1
mov byte [esp + 0x1a3], 0x5c
mov edx, dword [esp + 0x3c0]
mov dword [esp + 0x108], edx
mov esi, dword [esp + 0x3c4]
mov dword [esp + 0x2a8], esi
mov dword [ecx + 4], esi
mov dword [ecx], edx
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x340], 0
test byte [esp + 0xbb], 1
je 0x585519
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jne case.0x57fb42.1
jmp 0x58549c
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x1a8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x581668
mov byte [esp + 0x248], 0x56
mov dword [esp + 0x158], eax
mov dword [esp + 0x334], esi
jmp 0x58169b
mov byte [esp + 0x1a3], 0x7f
mov ecx, dword [esp + 0x3c0]
mov dword [esp + 0x108], ecx
mov edx, dword [esp + 0x3c4]
mov dword [esp + 0x2a8], edx
mov eax, dword [esp + 0x2d8]
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [esp + 0x340], 0
test byte [esp + 0xbb], 1
je 0x585519
xor ecx, ecx
mov edi, dword [ebp + 0x28]
mov ebx, dword [esp + 0x108]
jmp 0x5854e0
mov eax, 5
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add ecx, edx
mov dword [edi], ebx
mov edx, dword [esp + 0x2a8]
mov dword [edi + 4], edx
mov dword [esp + 0x340], 0
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x5854b0
cmp eax, 5
je 0x585519
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x581980
jmp 0x585519
mov dword [esp + 0x340], eax
jmp 0x585519
mov dword [esp + 0x340], eax
mov dword [esp + 0x2c4], 0
mov byte [esp + 0x324], 0x43
mov eax, dword [esp + 0x33c]
mov ecx, dword [eax]
mov dword [esp + 0x334], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
mov edi, dword [esp + 0x328]
mov eax, dword [esp + 0x340]
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x2c8], 0
je 0x58589d
mov eax, 0x11
mov ecx, dword [esp + 0x344]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x2c4]
lea edx, [esi + esi*2]
mov edx, dword [ecx + edx*8 + 0x14]
test edx, edx
jne 0x5855c4
mov ecx, edx
mov dword [esp + 0x1c8], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x18c], esi
mov ecx, dword [esp + 0x334]
mov dword [esp + 0x214], ecx
jb 0x585765
jmp 0x5855e0
mov dword [esp + 0x1c8], edx
mov ecx, dword [esp + 0x334]
mov dword [esp + 0x214], ecx
mov dword [esp + 0x18c], esi
cmp eax, 0xd
jne 0x585675
mov dword [esp + 0x328], edi
mov esi, dword [esp + 0x2cc]
movzx eax, byte [esp + 0x1f3]
cmp eax, 0x12
mov edx, dword [esp + 0x184]
je 0x5850bf
mov bl, 0x50
test edx, edx
je 0x585982
mov byte [esp + 0x1f3], bl
mov ebx, 8
mov eax, dword [edx + 4]
add eax, 4
lea ecx, [esp + 0x3c0]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov dword [esp + 0x340], 0x700002bb
cmp ebx, 8
jne 0x5859a1
mov eax, 0x1a
movzx ecx, byte [esp + 0x324]
cmp ecx, 0x43
jne 0x58570e
mov dword [esp + 0x328], edi
mov edi, dword [esp + 0x1c8]
cmp eax, 0xc
jne 0x5856ad
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x581fe7
mov esi, 5
mov byte [esp + 0x324], 0x43
mov dword [esp], edi
mov dword [esp + 0x1c8], edi
call fcn.004936c0
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x214], eax
cmp esi, 5
jne 0x585976
imul esi, esi
and esi, 3
cmp esi, 2
mov esi, dword [esp + 0x334]
mov edi, dword [esp + 0x328]
mov eax, dword [esp + 0x214]
mov dword [esp + 0x334], eax
jb 0x585765
jmp 0x5852e4
xor esi, esi
mov ebx, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x214]
jmp 0x58574d
mov byte [esp + 0x324], 0x5d
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp], ebx
call fcn.004936c0
mov eax, dword [esp + 0x33c]
mov ecx, dword [eax]
mov eax, esi
imul eax, eax
and eax, 3
test esi, esi
je 0x585720
cmp eax, 2
je 0x585720
mov dword [esp + 0x334], ecx
mov eax, dword [esp + 0x2c8]
test al, al
je 0x585855
mov ecx, 0x10
mov eax, 9
mov dword [esp + 0x2c8], 0
mov esi, dword [esp + 0x18c]
mov edx, esi
not edx
and edx, 1
add edx, esi
setne dl
movzx edx, dl
add edx, esi
mov dword [esp + 0x2c4], edx
mov esi, dword [esp + 0x334]
cmp edx, esi
mov dword [esp + 0x214], esi
mov edx, dword [esp + 0x24c]
mov dword [esp + 0x328], edx
jae 0x585827
cmp ecx, 0xa
je 0x5857dc
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x585575
mov byte [esp + 0x167], 0x67
imul eax, dword [esp + 0x114], 0x1c
mov ecx, dword [esp + 0x1dc]
mov eax, dword [ecx + eax + 0x18]
mov eax, dword [eax]
test eax, eax
jne 0x5859ad
mov dword [esp + 0x340], 0
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x328], edi
jne 0x5818d8
jmp 0x585519
mov ecx, dword [esp + 0x328]
mov dword [esp + 0x24c], ecx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x328], edi
je 0x5818d8
jmp 0x58589d
mov al, 0x10
mov dword [esp + 0x2c8], eax
mov edx, dword [esp + 0x18c]
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add eax, edx
mov dword [esp + 0x2c4], eax
mov ecx, dword [esp + 0x334]
cmp eax, ecx
mov dword [esp + 0x328], edi
mov dword [esp + 0x214], ecx
jb 0x585575
mov edi, 6
mov eax, dword [esp + 0x344]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x404]
test eax, eax
je 0x585941
mov dword [esp + 0x118], eax
mov eax, 0xd
xor ecx, ecx
test cl, cl
mov bl, byte [esp + 0x294]
jne 0x58594f
cmp eax, 0xd
jne 0x58592c
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x58592c
xor esi, esi
mov edi, dword [esp + 0x118]
jmp 0x585916
cmp eax, 2
adc esi, 0
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 ecx, ecx
and ecx, 1
cmp esi, ecx
jb 0x585900
jmp 0x585967
mov byte [esp + 0x294], bl
xor edi, edi
mov ebx, dword [esp + 0x100]
jmp 0x57f085
mov dword [esp + 0x118], eax
mov bl, byte [esp + 0x294]
cmp edi, 6
jne 0x57e661
mov eax, 3
sub eax, edi
xor eax, edi
je 0x57e661
mov eax, dword [esp + 0x2b4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x334]
jmp 0x5852e4
mov dword [esp + 0x340], 0x700002bb
mov byte [esp + 0x1f3], 0x50
mov dword [esp + 0x2cc], esi
jmp 0x585519
mov dword [esp + 0x340], 0
mov dword [esp + 0x328], edi
jmp 0x585519