Function at 0x572ee0
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2c8
mov dword [esp + 0x1b4], edx
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x14]
mov edx, 0x304d8093
cmp eax, 2
je 0x573033
cmp eax, 3
jne 0x5730fc
mov dword [esp + 0x24c], 0
mov dword [esp + 0x248], 0
lea eax, [esp + 0x248]
mov dword [esp + 4], eax
lea eax, [esp + 0x24c]
mov dword [esp], eax
call fcn.00449120
mov esi, 0x700002bb
test eax, eax
jne 0x57398a
mov eax, dword [esp + 0x248]
mov ecx, dword [esp + 0x24c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x13
mov dword [esp + 0xc], 0x17
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00551d40
mov esi, eax
test esi, esi
jne 0x57398a
mov al, 0x41
movzx eax, al
cmp eax, 0x12
jne 0x573915
call fcn.00449410
mov dword [esp + 0x244], eax
lea eax, [esp + 0x244]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x37
mov dword [esp + 0xc], 0x16
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00551d40
mov esi, eax
mov eax, dword [esp + 0x24c]
jmp 0x573991
mov dword [esp + 0x258], 0
mov dword [esp + 0x254], 0
lea eax, [esp + 0x254]
mov dword [esp + 4], eax
lea eax, [esp + 0x258]
mov dword [esp], eax
call fcn.00449120
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x573508
mov eax, dword [esp + 0x254]
mov ecx, dword [esp + 0x258]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x13
mov dword [esp + 0xc], 0x17
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00551d40
mov esi, eax
test esi, esi
jne 0x5735cf
mov edx, 6
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
jne 0x57351e
jmp 0x5735cf
mov dword [esp + 0x44], ecx
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
add edx, 0xcfb27f72
mov dword [esp + 0x214], edx
add dl, 0x1f
mov byte [esp + 0xbb], dl
mov dword [esp + 0x274], esi
mov dword [esp + 0x270], eax
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x264], 0
mov dword [esp + 0x260], 0
mov dword [esp + 0x268], 0
mov dword [esp + 0x25c], 0
lea eax, [esp + 0x260]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x260], 0x2d
test esi, esi
je 0x5735db
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x5735db
xor ecx, ecx
lea esi, [esp + 0x268]
lea edi, [esp + 0x264]
mov dl, 1
jmp 0x5731c6
mov eax, 2
inc ecx
test ecx, ecx
je 0x5731c0
test dl, dl
je 0x5731c0
mov dword [esp + 0xd4], esi
mov byte [esp + 0xf3], cl
mov byte [esp + 0x197], cl
mov byte [esp + 0x15f], cl
mov byte [esp + 0x37], dl
mov byte [esp + 0x36], dl
mov byte [esp + 0x97], cl
mov byte [esp + 0x103], cl
mov byte [esp + 0xcf], cl
mov byte [esp + 0xf2], dl
mov byte [esp + 0x7f], dl
mov byte [esp + 0xb3], dl
mov byte [esp + 0x223], bl
mov byte [esp + 0x196], bl
mov byte [esp + 0x177], bl
mov dword [esp + 0x210], edx
mov dword [esp + 0x184], edx
mov dword [esp + 0x1fc], edx
mov dword [esp + 0x1f8], edx
mov dword [esp + 0x18c], edx
mov dword [esp + 0x150], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x108], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x128], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x134], esi
mov dword [esp + 0xd8], esi
mov dword [esp + 0x154], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x144], edx
mov dword [esp + 0x14c], edx
mov dword [esp + 0x1cc], edx
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1c4], edx
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x160], edx
mov dword [esp + 0x204], edx
mov dword [esp + 0x158], edx
mov dword [esp + 0x20c], edx
mov dword [esp + 0x21c], edx
mov dword [esp + 0x224], edx
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x200], edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x1e8], edx
mov dword [esp + 0xa8], esi
mov dword [esp + 0x1e4], edx
mov dword [esp + 0xc0], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0xa4], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x110], edx
mov dword [esp + 0x198], edx
mov dword [esp + 0xa0], esi
mov dword [esp + 0x228], esi
mov dword [esp + 0x23c], esi
mov dword [esp + 0xc8], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0xc4], esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x170], edx
mov dword [esp + 0x138], edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x230], esi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x98], esi
mov dword [esp + 0x1a8], esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0x16c], esi
mov dword [esp + 0x1f0], edx
mov dword [esp + 0xd0], esi
mov dword [esp + 0x19c], edx
mov dword [esp + 0x22c], edx
mov dword [esp + 0x240], edx
mov dword [esp + 0xec], edx
mov dword [esp + 0x238], edx
mov dword [esp + 0x234], edx
mov dword [esp + 0x17c], edx
mov dword [esp + 0x190], edx
mov dword [esp + 0x168], edx
mov dword [esp + 0x1a4], edx
mov dword [esp + 0xf4], edx
mov dword [esp + 0x1d8], edx
mov dword [esp + 0x1b0], edx
mov dword [esp + 0x1d0], edx
mov dword [esp + 0x104], edx
mov dword [esp + 0x54], edi
mov dword [esp + 0x140], edx
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], edx
mov dword [esp + 0x11c], edx
mov dword [esp + 0x13c], edx
mov dword [esp + 0x118], edx
mov dword [esp + 0x114], edx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf8], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x164], ebx
mov dword [esp + 0x10c], edx
mov dword [esp + 0xe4], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x130], edx
mov dword [esp + 0x12c], edx
mov byte [esp + 0x1af], bl
mov byte [esp + 0x21b], bl
mov byte [esp + 0x1df], bl
mov byte [esp + 0x1d7], bl
mov byte [esp + 0x1ef], bl
mov byte [esp + 0x20b], bl
mov byte [esp + 0x14b], bl
mov byte [esp + 0x18b], bl
mov byte [esp + 0x1f7], bl
jmp 0x5739a0
mov edx, 0x304d8093
add edx, 0x7b06699
xor edx, 0x37fde73c
mov esi, 0x700002bb
xor ebx, ebx
cmp edx, 6
je 0x5735b6
imul edx, edx
and edx, 3
cmp edx, 3
jne 0x5735cf
jmp 0x5735b6
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
call fcn.00449410
mov dword [esp + 0x250], eax
lea eax, [esp + 0x250]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x37
mov dword [esp + 0xc], 0x16
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00551d40
mov esi, eax
mov eax, ebx
imul eax, eax
and eax, 3
test ebx, ebx
je 0x573540
cmp eax, 3
je 0x573540
mov eax, dword [esp + 0x258]
jmp 0x573991
mov byte [esp + 0xf3], al
mov byte [esp + 0x197], al
mov byte [esp + 0x15f], al
mov byte [esp + 0x37], al
mov byte [esp + 0x36], al
mov byte [esp + 0x97], al
mov byte [esp + 0x103], al
mov byte [esp + 0xcf], al
mov byte [esp + 0xf2], al
mov byte [esp + 0x7f], al
mov byte [esp + 0xb3], al
mov byte [esp + 0x223], al
mov byte [esp + 0x196], al
mov byte [esp + 0x177], al
mov dword [esp + 0x54], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x12c], eax
mov byte [esp + 0x1af], al
mov byte [esp + 0x21b], al
mov byte [esp + 0x1df], al
mov byte [esp + 0x1d7], al
mov byte [esp + 0x1ef], al
mov byte [esp + 0x20b], al
mov byte [esp + 0x14b], al
mov byte [esp + 0x18b], al
mov byte [esp + 0x1f7], al
jmp 0x577927
mov ebx, 0xffffffff
jmp 0x573985
call fcn.00449410
mov dword [esp + 0x244], eax
lea eax, [esp + 0x244]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x37
mov dword [esp + 0xc], 0x16
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00551d40
mov esi, eax
add ebx, 1
jb 0x573920
mov eax, dword [esp + 0x24c]
mov dword [esp], eax
call fcn.004936c0
mov eax, esi
jmp 0x578560
mov dword [esp + 0x40], ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xb4], edi
mov dword [esp + 0x178], 0
cmp eax, 2
jne 0x5739e1
mov dword [esp + 0x180], esi
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x57408b
jmp 0x575c55
mov dword [esp + 0x180], esi
jmp 0x575c55
lea eax, [esp + 0x268]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0x264]
mov ecx, dword [esp + 0x268]
mov dword [esp + 0xa8], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea ebx, [esp + 0x264]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
jne 0x573a89
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x573a89
mov dword [esp + 0x224], 0x70000003
mov dword [esp + 0x180], esi
lea eax, [esp + 0x26c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x178], 0
mov edx, ebx
lea eax, [esp + 0x268]
mov esi, eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0xc0], ebx
jmp 0x577f71
mov cl, 0x1f
movzx ecx, cl
cmp ecx, 0x17
jne 0x573bb4
mov dword [esp + 0x180], esi
lea ecx, [esp + 0x26c]
mov dword [esp + 0x78], ecx
mov edi, 0x12
mov byte [esp + 0x97], 0x63
mov dword [esp + 0x264], eax
mov ecx, dword [esp + 0x268]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [esp + 0x268], edx
mov ecx, dword [esp + 0xa8]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0
mov eax, dword [esp + 0x264]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x264]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x264]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x264]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esp + 0x264]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov dword [esp + 0x224], 0x70000003
mov dword [esp + 0x178], 0
test eax, eax
jne 0x573caa
mov edx, eax
or edx, 2
mov ecx, eax
mov dword [esp + 0x38], eax
xor ecx, 2
add ecx, edx
lea eax, [esp + 0x268]
mov dword [esp + 0x21c], eax
mov esi, eax
mov edx, ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0x20c], ebx
mov ebx, 2
jne 0x57810a
jmp 0x573cd0
mov dword [esp + 0x224], 0x70000003
mov dword [esp + 0x180], esi
lea ecx, [esp + 0x26c]
mov dword [esp + 0x78], ecx
mov byte [esp + 0x97], 0x63
mov dword [esp + 0x264], eax
mov ecx, dword [esp + 0x268]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [esp + 0x268], ecx
mov ecx, dword [esp + 0xa8]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0
mov eax, dword [esp + 0x264]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x264]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x264]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x264]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esp + 0x264]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov dword [esp + 0x178], 0
test eax, eax
je 0x573cc7
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x38], eax
mov edx, ebx
lea eax, [esp + 0x268]
mov esi, eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0xc0], ebx
jne 0x573d02
jmp 0x577f71
mov dword [esp + 0x38], eax
lea esi, [esp + 0x268]
mov edx, ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x20c], ebx
jmp 0x573cd0
mov dword [esp + 0x38], eax
jmp 0x573a64
cmp edi, 2
jne 0x573d02
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
mov dword [esp + 0x1e8], esi
mov dword [esp + 0x1e4], edx
jne 0x573eb7
mov dword [esp + 0x214], edx
movzx eax, byte [esp + 0x97]
cmp eax, 0x4c
jne 0x573ddc
mov edi, 1
mov byte [esp + 0x97], 0x63
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x38]
mov dword [esp], ebx
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x214]
mov eax, dword [eax]
mov ecx, dword [esp + 0xa8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], ebx
lea eax, [esp + 0x270]
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov dword [esp + 0x58], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0xc0]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x224], 0x70000003
test eax, eax
jne 0x573e80
mov ecx, eax
mov dword [esp + 0x3c], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x1e8], esi
mov eax, dword [esp + 0x214]
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x21c], esi
mov edx, eax
jb 0x577f71
jmp 0x577cf2
mov byte [esp + 0x97], 0x4c
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x38]
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov ebx, dword [esp + 0x214]
mov eax, dword [ebx]
mov ecx, dword [esp + 0xa8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
lea eax, [esp + 0x270]
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov dword [esp + 0x58], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0xc0]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x573eac
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x3c], eax
not ecx
mov dword [esp + 0x224], 0x70000003
test ecx, ecx
mov dword [esp + 0x1e8], esi
mov dword [esp + 0x1e4], ebx
mov edx, ebx
jne 0x577f71
jmp 0x573f51
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1e8], esi
mov eax, dword [esp + 0x214]
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x21c], esi
jmp 0x577cf2
mov dword [esp + 0x3c], eax
mov edx, ebx
jmp 0x573f51
mov eax, 0xd
movzx ecx, byte [esp + 0x1df]
cmp ecx, 0x39
je 0x573f24
mov eax, 6
cmp ecx, 0x3b
je 0x5764b0
mov eax, 0xf
mov byte [esp + 0x1df], 0x22
mov ecx, dword [esp + 0x1d8]
mov ecx, dword [ecx]
mov edi, dword [esp + 0x200]
lea edx, [edi + edi*2]
mov esi, dword [ecx + edx*8 + 0x14]
test esi, esi
jne 0x573f3e
mov ecx, esi
or ecx, 2
mov edx, esi
mov dword [esp + 0xd0], esi
xor edx, 2
add edx, ecx
mov dword [esp + 0x104], edi
jne 0x576a56
jmp 0x576521
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x210], ecx
mov ebx, dword [esp + 0x22c]
jmp 0x57485e
mov dword [esp + 0xd0], esi
mov dword [esp + 0x104], edi
jmp 0x576521
mov dword [esp + 0x214], edx
mov edi, edx
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0xc0]
mov dword [eax], edx
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 + 0x58]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x1e
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], 4
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov edi, eax
test edi, edi
mov ebx, dword [esp + 0x1f0]
je 0x57402c
xor eax, eax
test al, al
jne 0x57402c
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov edx, dword [esp + 0x214]
mov eax, dword [edx]
mov ecx, dword [esp + 0x58]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov edi, 2
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0xd4], esi
jmp 0x574051
mov dword [esp + 0x224], 0x70000003
mov dword [esp + 0x1e8], esi
mov edx, dword [esp + 0x214]
mov dword [esp + 0x1e4], edx
jmp 0x577f71
mov dword [esp + 0x1f0], ebx
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
cmp edi, eax
mov dword [esp + 0x1e8], esi
mov dword [esp + 0x1e4], edx
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
je 0x57543a
movzx eax, byte [esp + 0xbb]
cmp eax, 0x24
jne 0x574128
mov byte [esp + 0xbb], 0x24
lea eax, [esp + 0x274]
mov dword [esp + 0x64], eax
mov edi, dword [esp + 0xd4]
mov eax, dword [edi]
mov dword [esp + 0xa4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov esi, dword [esp + 0xb4]
mov ecx, dword [esi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x88], eax
test eax, eax
je 0x5741c0
mov dword [esp + 0x224], 0x70000003
xor eax, eax
test al, al
mov dword [esp + 0x19c], esi
mov eax, dword [esp + 0x54]
mov ebx, eax
mov ecx, edi
mov dword [esp + 0x22c], eax
mov dword [esp + 0x240], edi
mov edx, eax
mov esi, edi
je 0x574224
jmp 0x577f71
mov esi, 0xd
mov byte [esp + 0xbb], 0x44
lea eax, [esp + 0x274]
mov dword [esp + 0x64], eax
mov ebx, dword [esp + 0xd4]
mov eax, dword [ebx]
mov dword [esp + 0xa4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov edi, dword [esp + 0xb4]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x88], eax
test eax, eax
je 0x5741ed
mov dword [esp + 0x224], 0x70000003
mov eax, 6
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x19c], edi
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x240], ebx
je 0x577981
jmp 0x577b67
mov dword [esp + 0x224], 0x70000003
mov dword [esp + 0x19c], esi
mov eax, dword [esp + 0x54]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x240], edi
mov edx, eax
mov esi, edi
jmp 0x577f71
mov dword [esp + 0x224], 0x70000003
mov eax, dword [esp + 0x54]
mov dword [esp + 0x20c], eax
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x19c], edi
mov dword [esp + 0x22c], eax
mov dword [esp + 0x240], ebx
jmp 0x577b67
mov dword [esp + 0x21c], ecx
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x19c]
mov dword [eax], esi
mov edi, ecx
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 + 0xa4]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esi + eax], 0x29
mov esi, ebx
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0x10], 4
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov edi, eax
test edi, edi
mov ebx, dword [esp + 0x1f0]
je 0x574380
xor eax, eax
test al, al
mov dword [esp + 0x214], 0
jne 0x574380
mov dword [esp + 0xe8], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esi]
mov ecx, dword [esp + 0xa4]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [ebp + 8]
lea ecx, [eax + 0xc]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax]
mov dword [esp + 0x4c], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x1b4]
lea eax, [edi + 0x1a0]
mov dword [esp + 0x108], eax
mov eax, dword [edi + 0x1a0]
mov dword [esp + 0x48], eax
mov dword [esp + 0x224], 0x70000003
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x5743aa
mov eax, 0xb
mov ecx, 3
sub ecx, edx
xor ecx, edx
mov dword [esp + 0x22c], esi
mov dword [esp + 0x20c], esi
mov ecx, dword [esp + 0x21c]
mov dword [esp + 0x240], ecx
jne 0x5783e9
jmp 0x574fa1
mov dword [esp + 0x224], 0x70000003
mov eax, esi
mov edi, eax
mov edx, dword [esp + 0x21c]
mov esi, edx
mov ecx, eax
mov dword [esp + 0x240], edx
mov edx, edi
mov edi, 0xf
jmp 0x5743cb
mov dword [esp + 0x22c], esi
mov dword [esp + 0x20c], esi
mov eax, dword [esp + 0x21c]
mov dword [esp + 0x240], eax
jmp 0x574fa1
cmp edi, 8
jne 0x57448e
mov eax, 3
sub eax, edi
xor eax, edi
je 0x57448e
mov dword [esp + 0x214], edx
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x1f0], ebx
xor ebx, ebx
jmp 0x57442d
mov edi, 3
mov byte [esp + 0x223], 0x1b
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x230]
mov dword [esp], eax
call fcn.004302d0
mov eax, ebx
imul eax, eax
and eax, 3
test ebx, ebx
je 0x574400
cmp eax, 3
je 0x574400
mov edx, dword [esp + 0x214]
mov ecx, esi
mov eax, dword [esp + 0x224]
mov esi, dword [esp + 0x210]
mov dword [esp + 0x210], esi
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x20c], edx
mov dword [esp + 0x224], eax
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp edi, eax
je 0x57749c
jmp 0x576e2d
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x1f0], ebx
jmp 0x577f71
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x214], ecx
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x5744b0
mov esi, dword [esp + 0x214]
mov dword [esp + 0x210], esi
lea eax, [edi + 0x9c]
mov dword [esp + 0x110], eax
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0x9c]
lea edx, [edi + 8]
mov dword [esp + 0x198], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
lea eax, [esp + 0x260]
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 dword [esp + 0x224], eax
test eax, eax
jne 0x574683
mov dword [esp + 0x1f0], ebx
call fcn.0044c050
mov esi, eax
mov dword [esp + 0x23c], edx
mov dword [esp + 0x27c], edx
mov dword [esp + 0x278], esi
mov eax, dword [esp + 0x240]
mov eax, dword [eax]
mov dword [esp + 0xc8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x19c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5745d3
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
jne 0x57469a
mov dword [esp + 0x228], esi
mov ecx, dword [esp + 0x19c]
mov dword [ecx], eax
mov ebx, dword [esp + 0x240]
mov ecx, dword [ebx]
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add edx, ecx
mov dword [ebx], edx
mov ecx, dword [esp + 0xc8]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 4
mov edx, dword [esp + 0x22c]
mov eax, dword [edx]
mov dword [eax + ecx + 4], 0
mov eax, dword [edx]
mov byte [eax + ecx + 8], 0
mov eax, dword [edx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edx]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [edx]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x68], eax
test eax, eax
je 0x574693
lea eax, [esp + 0x278]
mov dword [esp + 0xa0], eax
mov eax, 0x10
mov esi, dword [esp + 0x170]
jmp 0x575886
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1b4], edi
jmp 0x5746c1
mov esi, dword [esp + 0x228]
mov dword [esp + 0x228], esi
mov dword [esp + 0x1b4], edi
lea eax, [esp + 0x278]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x224], 0x70000003
mov edx, dword [esp + 0x22c]
mov esi, dword [esp + 0x240]
jmp 0x577f71
mov byte [esp + 0x20b], 0x22
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x68]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [ebx]
mov ecx, dword [esp + 0xc8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], 0x80dc4c
call fcn.0043aa50
test eax, eax
jne 0x574794
mov edx, eax
or edx, 2
mov ecx, eax
xor ecx, 2
add ecx, edx
je 0x574794
mov dword [esp + 0x164], eax
mov dword [esp + 0x1b4], edi
mov eax, 0x19
lea ecx, [esp + 0x288]
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x280]
mov dword [esp + 0xac], ecx
mov edi, dword [esp + 0x22c]
mov dword [esp + 0xe8], edi
mov ecx, dword [esp + 0x240]
mov dword [esp + 0x214], ecx
mov edx, dword [esp + 0x180]
mov ebx, dword [esp + 0x228]
jmp 0x57496a
mov dword [esp + 0x164], eax
mov cl, 0x2c
lea eax, [esp + 0x280]
mov dword [esp + 0xac], eax
lea eax, [esp + 0x288]
mov dword [esp + 0x84], eax
mov eax, 0x1a
movzx edx, cl
cmp edx, 2
je 0x57483b
mov ecx, 7
cmp edx, 0x28
je 0x5748e3
cmp edx, 0x4a
jne 0x57490b
xor edx, edx
lea eax, [esp + 0x280]
mov dword [esp + 0xac], eax
lea eax, [esp + 0x288]
mov dword [esp + 0x84], eax
jmp 0x57481c
inc edx
mov ecx, dword [esp + 0x164]
movsd xmm0, qword [ecx + 8]
movsd qword [esp + 0x288], xmm0
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov esi, edx
not esi
and esi, 1
add esi, edx
setne bl
movzx esi, bl
cmp edx, esi
jb 0x574800
mov dword [esp + 0x1b4], edi
jmp 0x574949
mov dword [esp + 0x1b4], edi
mov ebx, dword [esp + 0x22c]
mov dword [esp + 0x20c], ebx
mov ecx, dword [esp + 0x240]
mov dword [esp + 0x21c], ecx
cmp eax, 0xd
jne 0x5748c3
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x5748c3
mov dword [esp + 0x22c], ebx
mov eax, 5
mov byte [esp + 0x1df], 0x3b
mov ecx, dword [esp + 0x1d8]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x200]
lea edx, [esi + esi*2]
mov ecx, dword [ecx + edx*8 + 0x14]
mov dword [esp + 0xd0], ecx
test ecx, ecx
mov ecx, dword [esp + 0x210]
mov dword [esp + 0x214], ecx
mov dword [esp + 0x104], esi
jne 0x5769bc
jmp 0x576a56
mov ecx, dword [esp + 0x164]
movsd xmm0, qword [ecx + 8]
movsd qword [esp + 0x288], xmm0
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
jmp 0x574b0e
mov dword [esp + 0x1b4], edi
mov eax, dword [esp + 0x22c]
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x240]
mov dword [esp + 0x21c], eax
jmp 0x575a27
mov dword [esp + 0x1b4], edi
lea eax, [esp + 0x280]
mov dword [esp + 0xac], eax
lea eax, [esp + 0x288]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x164]
movsd xmm0, qword [ecx + 8]
movsd qword [esp + 0x288], xmm0
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov ebx, dword [esp + 0x22c]
mov dword [esp + 0x20c], ebx
mov edx, dword [esp + 0x240]
mov dword [esp + 0x21c], edx
jmp 0x574b0e
cmp eax, 0xa
jne 0x5749e7
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x5749e7
mov dword [esp + 0x180], edx
mov dword [esp + 0x228], ebx
mov dword [esp + 0x20c], edi
mov eax, dword [esp + 0x240]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x22c], eax
mov eax, dword [esp + 0x214]
mov dword [esp + 0x240], eax
mov esi, 0x10
mov eax, 0xf
movzx ecx, byte [esp + 0x1ef]
cmp ecx, 9
mov ecx, dword [esp + 0x210]
mov dword [esp + 0x214], ecx
jne 0x576319
jmp 0x575392
mov dword [esp + 0x180], edx
mov esi, 0xb
movzx eax, byte [esp + 0x20b]
cmp eax, 0x15
jne 0x574a3d
mov dword [esp + 0x228], ebx
mov dword [esp + 0x20c], edi
mov eax, dword [esp + 0x240]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x22c], eax
mov eax, dword [esp + 0x214]
mov dword [esp + 0x240], eax
jmp 0x5781a2
mov dword [esp + 0x228], ebx
xor eax, eax
jmp 0x574a7e
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
mov esi, ecx
add esi, edx
setne bl
movzx esi, bl
cmp eax, esi
jb 0x574a50
test eax, eax
jne 0x574b00
mov edx, eax
xor edx, ecx
jne 0x574ad0
mov eax, dword [esp + 0x228]
mov ecx, dword [esp + 0x23c]
mov dword [esp + 0x280], eax
mov dword [esp + 0x284], ecx
mov eax, dword [esp + 0x240]
mov eax, dword [eax]
mov dword [esp + 0x10c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x19c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0xe4], eax
test eax, eax
je 0x574ec9
mov eax, 0x10
xor ecx, ecx
test cl, cl
jne 0x574ec9
cmp eax, 0x10
je 0x574bb3
xor eax, eax
test al, al
jne 0x574bb3
mov dword [esp + 0x22c], ebx
mov ebx, 1
mov byte [esp + 0xb3], 0x48
mov byte [esp + 0x214], 8
call fcn.00449410
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x578507
jmp 0x576699
mov eax, dword [esp + 0x19c]
mov edx, dword [esp + 0xe4]
mov dword [eax], edx
mov esi, dword [esp + 0x240]
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 + 0x10c]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x3d
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 esi, 9
mov dword [esp], 8
call fcn.00492770
test eax, eax
jne 0x574c58
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x9c], eax
not ecx
test ecx, ecx
jne 0x574ec9
jmp 0x5778d2
mov dword [esp + 0x9c], eax
jmp 0x5778d2
mov esi, 7
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x9c]
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x22c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x10c]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x240]
mov eax, dword [eax]
mov dword [esp + 0xc4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x19c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x574cfa
mov edx, eax
or edx, 2
mov dword [esp + 0x8c], eax
mov ecx, eax
xor ecx, 2
add ecx, edx
mov ebx, dword [esp + 0x22c]
jne 0x574ec9
jmp 0x577bb0
mov dword [esp + 0x8c], eax
mov ebx, dword [esp + 0x22c]
jmp 0x577bb0
mov eax, dword [esp + 0x19c]
mov dword [eax], ecx
mov eax, dword [esp + 0x240]
inc dword [eax]
mov eax, dword [esp + 0xc4]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0x47
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 [esp + 0x22c], ebx
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov edi, eax
test edi, edi
je 0x574ec2
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x574ec2
mov esi, 0x1d
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x22c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc4]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x108]
mov eax, dword [eax]
mov ecx, dword [esp + 0x198]
mov ecx, dword [ecx]
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x2a4], 0
mov dword [esp + 0x290], 4
mov dword [esp + 0x294], 2
mov dword [esp + 0x298], ecx
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2a0], 0xfffffffc
test eax, eax
je 0x574f3a
xor eax, eax
test al, al
mov edi, dword [esp + 0x138]
mov ebx, dword [esp + 0x1f0]
jne 0x574f54
mov edi, 1
lea eax, [esp + 0x2a4]
mov dword [esp + 8], eax
lea eax, [esp + 0x2a8]
mov dword [esp + 4], eax
lea eax, [esp + 0x290]
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 0x574f6e
mov al, 0x4a
movzx eax, al
cmp eax, 0x4a
je 0x575052
cmp eax, 0x6f
je 0x574f81
mov esi, 0xe
mov edi, 0x1d
cmp eax, 0x7a
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
jne 0x5752ed
jmp 0x5785fc
mov ebx, dword [esp + 0x22c]
xor eax, eax
mov edi, dword [esp + 0x20c]
mov esi, dword [esp + 0x21c]
mov edx, dword [esp + 0x224]
jmp 0x574f12
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, 0x70000003
mov edi, ebx
mov esi, dword [esp + 0x240]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x574ef0
mov dword [esp + 0x224], edx
mov dword [esp + 0x22c], ebx
mov edx, edi
jmp 0x577f71
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
mov edx, dword [esp + 0x228]
jmp 0x575105
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
mov edx, dword [esp + 0x228]
jmp 0x57510c
mov esi, dword [esp + 0x1e8]
mov edx, dword [esp + 0x1e4]
jmp 0x574051
mov dword [esp + 0xe8], 0x10
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
mov edi, dword [esp + 0x1b4]
mov ecx, dword [esp + 0xe8]
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ecx, eax
jne 0x574fc7
xor eax, eax
mov edx, dword [esp + 0x44]
jmp 0x5744c8
mov byte [esp + 0xf3], 0x4c
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x240]
mov eax, dword [eax]
mov dword [esp + 0x134], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x19c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x5750d1
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1b4], edi
mov edx, 6
mov ecx, eax
mov dword [esp + 0xd8], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x576aaa
jmp 0x57543a
mov byte [esp + 0xf3], 0x4c
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x240]
mov eax, dword [eax]
mov dword [esp + 0x134], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x19c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x5750eb
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
jne 0x576ac2
jmp 0x57543a
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0xd8], eax
mov dword [esp + 0x1b4], edi
jmp 0x57543a
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
jmp 0x57543a
mov edi, dword [esp + 0x138]
cmp esi, 0xf
jne 0x575162
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x575162
mov eax, 0xe
cmp edi, 3
je 0x575175
mov dword [esp + 0x228], edx
mov byte [esp + 0xcf], 0x53
mov ecx, 0xf
mov edx, edi
and edx, 1
inc edx
xor edx, edi
mov dword [esp + 0x138], edi
mov edx, dword [esp + 0x170]
mov dword [esp + 0x184], edx
jne 0x576444
jmp 0x5777a8
mov dword [esp + 0x138], edi
mov dword [esp + 0x228], edx
jmp 0x57543a
mov dword [esp + 0x138], edi
mov dword [esp + 0x228], edx
mov byte [esp + 0xcf], 0x53
mov ecx, dword [esp + 0x170]
mov dword [esp + 0x184], ecx
jmp 0x5777a8
mov eax, edi
and eax, 1
inc eax
xor eax, edi
je 0x578605
mov byte [esp + 0xf3], 0x4c
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x240]
mov eax, dword [eax]
mov dword [esp + 0x134], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x19c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x575225
mov edx, 0xa
mov ecx, eax
mov dword [esp + 0xd8], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x576c50
jmp 0x576ac2
mov dword [esp + 0xd8], eax
jmp 0x576ac2
mov esi, dword [esp + 0xd8]
mov eax, dword [esp + 0x19c]
mov dword [eax], esi
mov edi, dword [esp + 0x240]
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 + 0x134]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esi + eax], 3
mov esi, dword [esp + 0x22c]
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 + 0x128]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov esi, 7
mov byte [esp + 0xf3], 0x3f
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x5752e6
mov bl, 0x37
mov ecx, eax
mov dword [esp + 0x154], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x576c43
jmp 0x5752ed
mov dword [esp + 0x154], eax
cmp esi, 7
jne 0x575303
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
jne 0x57543a
mov byte [esp + 0xf3], 0x4c
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x240]
mov eax, dword [eax]
mov dword [esp + 0x134], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x19c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x575377
mov eax, 9
cmp dword [esp + 0x128], 0
jne 0x5753cf
mov dword [esp + 0xe8], 0x11
mov dword [esp + 0x210], 2
mov eax, dword [esp + 0x2a8]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x198]
mov eax, dword [eax]
lea ecx, [esp + 0x25c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x260]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
test eax, eax
mov esi, dword [esp + 0x214]
mov edx, dword [esp + 0x22c]
mov ebx, edx
mov ecx, dword [esp + 0x240]
mov edi, ecx
je 0x577381
mov edx, dword [esp + 0x210]
cmp edx, 2
jne 0x5754e0
mov dword [esp + 0x224], eax
imul edx, edx
and edx, 3
cmp edx, 2
mov dword [esp + 0x214], esi
mov dword [esp + 0x210], esi
mov edx, ebx
mov esi, edi
jb 0x577f71
jmp 0x576c8d
mov dword [esp + 0x214], esi
jmp 0x576c8d
mov dword [esp + 0x21c], ecx
mov eax, dword [esp + 0x25c]
cmp dword [eax + 4], 0
jne 0x575515
mov eax, 0x13
mov dword [esp + 0x158], 0
jmp 0x575595
mov ecx, dword [ebp + 0x1c]
mov byte [esp + 0x14b], 0xd
mov byte [esp + 0xcf], 0x53
mov byte [esp + 0x103], 0x12
test ecx, ecx
sete byte [esp + 0x37]
setne byte [esp + 0x36]
mov dword [esp + 0x124], 0
mov dword [esp + 0x140], eax
mov dword [esp + 0x120], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x158], 0
jmp 0x577667
cmp eax, 9
jne 0x576e9d
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x575e83
jmp 0x576e9d
mov esi, 0xc
mov cl, 0x12
mov edi, dword [ebx + 8]
mov dword [esp + 0x170], edi
imul eax, edx, 0x1c
mov edi, dword [edi + eax + 4]
cmp edi, 1
je 0x575659
cmp edi, 0x3e
je 0x5757e0
mov dword [esp + 0x138], edi
mov byte [esp + 0x103], 0x12
mov eax, dword [esp + 0x140]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x190], edx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x1a4], eax
mov al, byte [esp + 0x197]
mov ebx, dword [esp + 0x1f0]
jmp 0x578464
mov dword [esp + 0x138], edi
mov byte [esp + 0x103], 0x12
mov dword [esp + 0xec], ebx
mov eax, dword [esp + 0x124]
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x190], edx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x1a4], eax
jmp 0x5765c1
mov dword [esp + 0x190], eax
imul eax, eax, 0x1c
mov ecx, dword [esi + eax + 0x14]
mov dword [esp + 0x224], 0x30000003
cmp ecx, 4
jne 0x5757b3
mov dword [esp + 0x170], esi
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
je 0x5757cd
xor ecx, ecx
mov esi, dword [esp + 0x170]
jmp 0x575766
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [esi + eax + 0x18]
mov edx, dword [edx]
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1cc], edi
mov edx, dword [esp + 0x1a4]
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x1c4], ebx
mov edx, dword [esp + 0x238]
mov dword [esp + 0x1c0], edx
mov edx, dword [esp + 0x234]
mov dword [esp + 0x1bc], edx
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x575710
mov dword [esp + 0x224], 0x30000003
mov dword [esp + 0x17c], ebx
mov dword [esp + 0xec], edi
mov eax, dword [esp + 0x22c]
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x240]
mov dword [esp + 0x21c], eax
jmp 0x575e83
mov dword [esp + 0x17c], ebx
mov dword [esp + 0xec], edi
mov dword [esp + 0x170], esi
jmp 0x5746c1
mov dword [esp + 0x17c], ebx
mov dword [esp + 0xec], edi
jmp 0x5746c1
mov byte [esp + 0x103], cl
imul ecx, edx, 0x1c
mov esi, dword [esp + 0x170]
mov eax, dword [esi + ecx + 0x14]
cmp eax, 8
je 0x5758b2
imul eax, eax
and eax, 3
cmp eax, 2
je 0x5758b2
mov dword [esp + 0x138], edi
mov eax, 6
mov dword [esp + 0x224], 0x30000003
mov ecx, dword [esp + 0x140]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x238], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x234], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x190], edx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x168], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x1a4], ecx
mov edi, dword [esp + 0x1b4]
mov dword [esp + 0x170], esi
cmp eax, 6
mov ebx, dword [esp + 0x22c]
jne 0x5746d4
mov dword [esp + 0x1b4], edi
mov edx, ebx
mov esi, dword [esp + 0x240]
jmp 0x577f71
mov ecx, dword [esi + ecx + 0x18]
mov eax, dword [ecx]
mov dword [esp + 0x1c0], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x224], 0x30000003
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x1cc], ecx
mov esi, dword [esp + 0x114]
mov dword [esp + 0x1c8], esi
mov eax, dword [esp + 0x118]
mov dword [esp + 0x1b8], eax
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x1c4], ebx
mov edx, dword [esp + 0x22c]
mov dword [esp + 0x20c], edx
mov edx, dword [esp + 0x240]
mov dword [esp + 0x21c], edx
mov edx, dword [esp + 0x13c]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x238], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x234], ecx
mov ecx, ebx
mov ebx, edx
mov dword [esp + 0x168], eax
mov eax, 1
mov dword [esp + 0x1a4], esi
jmp 0x575b61
imul esi, esi
and esi, 3
cmp esi, 2
mov ebx, dword [esp + 0x228]
jne 0x577f4c
mov dword [esp + 0x22c], edi
imul eax, dword [esp + 0x190], 0x1c
mov ecx, dword [esp + 0x170]
mov ecx, dword [ecx + eax]
mov eax, ecx
or eax, 2
mov edx, ecx
xor edx, 2
add edx, eax
setne al
movzx eax, al
cmp ecx, eax
jne 0x575a68
mov dword [esp + 0x228], ebx
mov ecx, 0x14
mov eax, 0xb
test byte [esp + 0x37], 1
mov edx, dword [esp + 0xec]
mov dword [esp + 0x1cc], edx
mov edx, dword [esp + 0x1a4]
mov dword [esp + 0x1c8], edx
mov edx, dword [esp + 0x168]
mov dword [esp + 0x1b8], edx
mov edx, dword [esp + 0x17c]
mov dword [esp + 0x1c4], edx
mov edx, dword [esp + 0x238]
mov dword [esp + 0x1c0], edx
mov edx, dword [esp + 0x234]
mov dword [esp + 0x1bc], edx
je 0x577d69
cmp ecx, 7
mov edx, dword [esp + 0x164]
jne 0x575e83
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x575e83
movsd xmm0, qword [edx + 8]
movsd qword [esp + 0x288], xmm0
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
mov ebx, dword [esp + 0x22c]
jmp 0x574b0e
mov dword [esp + 0x228], ebx
mov eax, 9
cmp ecx, 2
sete cl
test byte [esp + 0x36], cl
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x1cc], ecx
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0x1c8], ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x1b8], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c4], ecx
mov ecx, dword [esp + 0x238]
mov dword [esp + 0x1c0], ecx
mov ecx, dword [esp + 0x234]
mov dword [esp + 0x1bc], ecx
je 0x575595
mov eax, 5
mov cl, byte [esp + 0xcf]
movzx ecx, cl
cmp ecx, 0x18
mov edx, dword [esp + 0x228]
je 0x575b45
mov esi, 0xf
cmp ecx, 0x53
jne 0x575bd1
mov eax, 0x1e
mov byte [esp + 0xcf], 0x18
mov ecx, dword [esp + 0x138]
cmp ecx, 3
jne 0x575bf7
mov esi, 0xc
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x170]
mov dword [esp + 0x184], ecx
jb 0x576e24
jmp 0x575c05
mov edx, dword [esp + 0x13c]
mov edi, dword [esp + 0x138]
mov ecx, dword [esp + 0x17c]
mov ebx, dword [esp + 0x190]
mov dword [esp + 0x190], ebx
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x13c], edx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jne 0x575b96
mov dword [esp + 0x138], edi
jmp 0x575e83
mov eax, 6
mov byte [esp + 0xcf], 0x3b
cmp edi, 3
mov edx, dword [esp + 0x170]
jne 0x575be4
mov ecx, edi
not ecx
and ecx, 1
add ecx, edi
mov dword [esp + 0x138], edi
mov dword [esp + 0x184], edx
jne 0x577858
jmp 0x576855
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
jmp 0x575105
mov dword [esp + 0x138], edi
mov dword [esp + 0x184], edx
jmp 0x576855
mov ecx, dword [esp + 0x170]
mov dword [esp + 0x184], ecx
cmp eax, 0xe
jne 0x575da4
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x575da4
mov dword [esp + 0x178], 0
mov byte [esp + 0x1f7], 0x5d
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0xe0], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x5c], eax
test eax, eax
mov dword [esp + 0x40], 0
je 0x578143
mov eax, 0x16
mov cl, byte [esp + 0x1f7]
movzx ecx, cl
cmp ecx, 0x4d
je 0x578160
cmp ecx, 0x5d
jne 0x575c99
mov byte [esp + 0x1f7], 0x4d
mov byte [esp + 0x15f], 0x3d
mov byte [esp + 0x197], 0xc
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 8]
jmp 0x577a9c
xor ecx, ecx
mov bl, byte [esp + 0x15f]
mov bh, byte [esp + 0x197]
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0xe0]
jmp 0x575cf8
mov eax, 0xc
mov byte [esp + 0x1f7], 0x5d
mov bl, 0x3d
mov bh, 0xc
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov esi, dword [edi + 8]
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x1f8], 0
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x575cc0
mov dword [esp + 0x1a0], esi
mov byte [esp + 0x197], bh
mov byte [esp + 0x15f], bl
jmp 0x576d28
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x23c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x234]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x238]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], 0x80dc4c
call fcn.0043ab10
mov eax, dword [esp + 0x25c]
mov ecx, dword [eax + 8]
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x575d30
mov dword [esp + 0x184], ecx
imul esi, dword [esp + 0x190], 0x1c
mov eax, dword [esp + 0x184]
lea eax, [eax + esi]
mov ecx, dword [esp + 0x108]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x110]
mov edi, dword [edx]
mov edx, dword [esp + 0x198]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov dword [esp], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x11
xor ecx, ecx
call fcn.00522bc0
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x25c]
mov dword [esp + 0x1cc], eax
mov eax, dword [eax + 8]
mov eax, dword [eax + esi + 4]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, 1
mov edx, 1
cmovb edx, dword [esp + 0x17c]
cmp eax, 3
cmovne edx, ecx
mov dword [esp + 0x1c4], edx
mov eax, dword [esp + 0x168]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x238]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x234]
mov dword [esp + 0x1bc], eax
mov al, byte [esp + 0x14b]
movzx eax, al
cmp eax, 0xd
je 0x575f55
mov ecx, 0xd
cmp eax, 0x24
je 0x576815
mov eax, 0x10
mov byte [esp + 0x14b], 0x5a
mov edx, dword [esp + 0x190]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc edx, 0
mov esi, dword [esp + 0x1cc]
cmp edx, dword [esi + 4]
jae 0x575fff
mov ecx, edx
and ecx, 1
xor ecx, edx
mov dword [esp + 0x13c], edx
not ecx
test ecx, ecx
mov edx, dword [esp + 0x1c4]
mov dword [esp + 0xdc], edx
mov edi, dword [esp + 0x1b8]
mov dword [esp + 0xfc], edi
mov ecx, dword [esp + 0x1c8]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x140], esi
mov esi, dword [esp + 0x1c0]
mov dword [esp + 0x124], esi
mov esi, dword [esp + 0x1bc]
mov dword [esp + 0x120], esi
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], edi
mov dword [esp + 0x114], ecx
jne 0x577667
jmp 0x576757
mov byte [esp + 0x14b], 0xd
mov ecx, dword [esp + 0x190]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
adc ecx, 0
mov edx, dword [esp + 0x1cc]
cmp ecx, dword [edx + 4]
jae 0x57606d
mov eax, ecx
not eax
and eax, 1
add eax, ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], edx
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x120], eax
mov ecx, dword [esp + 0x1c4]
mov dword [esp + 0x11c], ecx
mov edx, dword [esp + 0x1b8]
mov dword [esp + 0x118], edx
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x114], eax
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf8], eax
jne 0x577667
jmp 0x5760d6
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], esi
mov ecx, dword [esp + 0x1c0]
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x1bc]
mov dword [esp + 0x120], ecx
mov edx, dword [esp + 0x1c4]
mov dword [esp + 0x11c], edx
mov esi, dword [esp + 0x1b8]
mov dword [esp + 0x118], esi
mov ecx, dword [esp + 0x1c8]
mov dword [esp + 0x114], ecx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf8], ecx
jmp 0x576757
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], edx
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x120], eax
mov ecx, dword [esp + 0x1c4]
mov dword [esp + 0x11c], ecx
mov edx, dword [esp + 0x1b8]
mov dword [esp + 0x118], edx
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x114], eax
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf8], eax
mov esi, 0x12
mov byte [esp + 0x18b], 0x37
mov ecx, dword [esp + 0xdc]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
jne 0x576120
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x12c], eax
jmp 0x577524
mov esi, 7
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x1b4]
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x12
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00522bc0
test eax, eax
jne 0x5761a9
lea eax, [ebx + 0x2c]
mov dword [esp + 0x70], eax
cmp dword [ebx + 0x2c], 0
jne 0x5761e1
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x12c], eax
jmp 0x576e2d
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x12c], eax
mov ebx, dword [esp + 0x1f0]
mov dl, 0x37
jmp 0x5766e0
mov cl, 0x69
mov eax, 3
movzx ecx, cl
cmp ecx, 0x4e
mov edi, dword [esp + 0x22c]
je 0x57627c
cmp ecx, 0x69
mov edx, dword [esp + 0x228]
je 0x5762a4
mov eax, 0xf
cmp ecx, 0x6b
jne 0x5763b9
mov byte [esp + 0x223], 9
mov byte [esp + 0xf2], 0x29
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov esi, ecx
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.004337b0
mov dword [esp + 0x230], eax
cmp dword [esi + 0x2c], 0
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x12c], eax
je 0x576d9a
jmp 0x578613
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x12c], ecx
mov ebx, dword [esp + 0x228]
jmp 0x578094
mov esi, 3
mov byte [esp + 0x223], 9
mov byte [esp + 0xf2], 0x29
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov edi, ecx
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.004337b0
mov dword [esp + 0x230], eax
mov eax, dword [edi + 0x2c]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x12c], eax
je 0x576d9a
xor ebx, ebx
cmp esi, 3
jne 0x57632f
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edi, eax
jne 0x578559
jmp 0x57657d
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x12c], ecx
mov esi, dword [esp + 0x230]
jmp 0x57857b
cmp ecx, 2
jne 0x57650e
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x57650e
movzx ecx, byte [esp + 0x7f]
cmp ecx, 0x4a
je 0x576630
mov eax, 0x14
cmp ecx, 0x7a
jne 0x576521
mov eax, 8
mov byte [esp + 0x7f], 0x7a
mov edx, dword [esp + 0x230]
lea ecx, [edx + 0x20]
mov dword [esp + 0x90], ecx
mov ecx, dword [edx + 0x20]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
add edx, ecx
je 0x57682e
cmp eax, 6
jne 0x57657d
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x57657d
mov byte [esp + 0x1df], 0x39
mov eax, dword [esp + 0x1d8]
mov eax, dword [eax]
mov ecx, dword [esp + 0x200]
lea ecx, [ecx + ecx*2]
mov ecx, dword [eax + ecx*8 + 0x14]
test ecx, ecx
jne 0x5767e3
mov eax, ecx
and eax, 1
xor eax, ecx
mov dword [esp + 0xd0], ecx
not eax
test eax, eax
jne 0x576a56
jmp 0x5769f9
mov eax, dword [esp + 0x214]
mov dword [esp + 0x210], eax
jmp 0x575da4
cmp eax, 0xf
jne 0x57654d
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x57654d
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x200], eax
jmp 0x5769f9
mov byte [esp + 0x7f], 0x5a
mov ecx, dword [esp + 0x230]
lea eax, [ecx + 0x20]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 0x20]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
je 0x57682e
mov esi, 0x1b
mov byte [esp + 0xb3], 0x48
mov eax, dword [esp + 0x230]
lea ecx, [eax + 0x24]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 0x24]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x214]
mov dword [esp + 0x210], eax
je 0x57682e
cmp esi, 0xc
jne 0x5765f4
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x5765f4
mov esi, dword [esp + 0x170]
mov edi, dword [esp + 0xec]
mov ebx, dword [esp + 0x17c]
mov eax, dword [esp + 0x190]
jmp 0x5756c1
mov eax, 0x16
mov cl, byte [esp + 0xb3]
movzx ecx, cl
cmp ecx, 0x48
je 0x576670
cmp ecx, 0x63
jne 0x57667c
mov esi, 0xf
mov byte [esp + 0xb3], 0x60
mov byte [esp + 0x214], 8
call fcn.00449410
test eax, eax
jne 0x576699
jmp 0x577d4c
mov edi, 1
mov esi, 0xf
mov byte [esp + 0x7f], 0x4a
mov ecx, dword [esp + 0x230]
lea eax, [ecx + 0x20]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 0x20]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
add ecx, eax
je 0x576b84
jmp 0x57639a
mov ebx, dword [esp + 0x22c]
jmp 0x574b69
mov byte [esp + 0xb3], 0x63
mov byte [esp + 0x214], 8
call fcn.00449410
test eax, eax
je 0x57851f
mov eax, 0xe
movzx ecx, byte [esp + 0x214]
cmp ecx, 8
mov ebx, dword [esp + 0x1f0]
je 0x576757
mov esi, 0x15
cmp ecx, 0x28
jne 0x5767c6
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
mov edi, dword [esp + 0x1b4]
mov dl, byte [esp + 0x18b]
cmp esi, 7
je 0x5767a5
imul esi, esi
and esi, 3
cmp esi, 2
je 0x5767a5
mov byte [esp + 0x18b], dl
mov dword [esp + 0x1b4], edi
xor eax, eax
mov edx, dword [esp + 0x160]
mov esi, dword [esp + 0x6c]
jmp 0x576730
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov edx, dword [esi]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x576720
mov dword [esp + 0x160], edx
mov dword [esp + 0x1f0], ebx
jmp 0x5767ef
cmp eax, 0xe
jne 0x5760d6
xor eax, eax
mov ecx, 0xffffffff
mov esi, dword [esp + 0x160]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x210]
jmp 0x576784
inc eax
mov esi, dword [edi]
dec ecx
mov edx, eax
and edx, 1
xor edx, ecx
setne dl
movzx edx, dl
cmp eax, edx
jb 0x576780
mov dword [esp + 0x160], esi
mov dword [esp + 0x214], ebx
jmp 0x5767ef
mov dword [esp + 0x1b4], edi
mov eax, dword [esp + 0x214]
mov dword [esp + 0x210], eax
mov edi, dword [esp + 0x1a0]
jmp 0x5775cb
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
jmp 0x5767ef
mov dword [esp + 0xd0], ecx
jmp 0x5769f9
mov eax, 4
mov ecx, 0x1d
cmp dword [esp + 0x160], 0
mov edx, dword [esp + 0x214]
mov dword [esp + 0x210], edx
jne 0x576cac
cmp ecx, 0xd
je 0x576876
xor eax, eax
test al, al
jne 0x576876
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
mov eax, 0xe
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx + 0xa8]
mov dword [esp + 0x204], ecx
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x210], ecx
cmp eax, 6
je 0x575da4
xor eax, eax
test al, al
mov eax, dword [esp + 0x200]
mov ecx, eax
je 0x576d3a
jmp 0x575da4
mov eax, 0xe
mov byte [esp + 0x14b], 0x24
mov esi, dword [esp + 0x190]
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, esi
mov dword [esp + 0x13c], ecx
mov edx, dword [esp + 0x1cc]
cmp ecx, dword [edx + 4]
mov dword [esp + 0x140], edx
mov ecx, dword [esp + 0x1c0]
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x1bc]
mov dword [esp + 0x120], ecx
mov edx, dword [esp + 0x1c4]
mov dword [esp + 0x11c], edx
mov esi, dword [esp + 0x1b8]
mov dword [esp + 0x118], esi
mov ecx, dword [esp + 0x1c8]
mov dword [esp + 0x114], ecx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf8], ecx
jae 0x5760d6
jmp 0x577654
cmp eax, 5
jne 0x576cca
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x200]
mov ecx, eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x200], eax
je 0x576d3a
xor esi, esi
mov edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0x1e0]
mov ebx, dword [esp + 0x1b0]
jmp 0x576a3b
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
call fcn.004936c0
mov ecx, dword [ebx]
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x576a20
mov dword [esp + 0x1e0], ecx
mov edx, 0x12
mov eax, dword [esp + 0x200]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
cmp ecx, dword [esp + 0x1e0]
mov esi, dword [esp + 0x214]
mov dword [esp + 0x210], esi
mov dword [esp + 0x104], eax
mov dword [esp + 0x200], ecx
mov ebx, dword [esp + 0x22c]
mov ecx, dword [esp + 0x240]
jae 0x577ff9
cmp edx, 6
jne 0x573eb7
mov ecx, 3
sub ecx, edx
xor ecx, edx
je 0x573eb7
movzx ecx, byte [esp + 0xf3]
cmp ecx, 0x3f
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0x22c]
je 0x576ba2
mov eax, 0x1a
cmp ecx, 0x4c
jne 0x578212
mov eax, dword [esp + 0x19c]
mov dword [eax], edx
mov edi, dword [esp + 0x240]
mov eax, dword [edi]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edi], ecx
mov eax, dword [esp + 0x134]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 3
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0xfffffffc
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [esp + 0x128]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov esi, 0x1a
mov byte [esp + 0xf3], 0x75
mov bl, 0x37
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x154], eax
test eax, eax
jne 0x576c43
cmp esi, 0xf
jne 0x57543a
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x57682e
jmp 0x57543a
mov eax, dword [esp + 0x19c]
mov dword [eax], edx
mov edi, dword [esp + 0x240]
mov eax, dword [edi]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edi], ecx
mov eax, dword [esp + 0x134]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 3
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0xfffffffc
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [esp + 0x128]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov byte [esp + 0xf3], 0x4c
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x576cd5
mov bl, 0x37
mov ecx, eax
mov dword [esp + 0x154], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x57543a
mov edx, 0xd
movzx ecx, bl
cmp ecx, 0x37
jne 0x576c6f
cmp edx, 0xa
jne 0x575383
mov ecx, edx
and ecx, 1
xor ecx, edx
not ecx
test ecx, ecx
jne 0x57543a
mov eax, 0x14
mov edx, dword [esp + 0x128]
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x576cac
xor eax, eax
mov ecx, dword [esp + 0x134]
lea ecx, [ecx + ecx*2]
mov esi, dword [esp + 0x154]
mov edi, dword [esp + 0x22c]
jmp 0x575427
cmp eax, 4
jne 0x5753cf
mov eax, dword [esp + 0x200]
mov ecx, eax
jmp 0x576d3a
mov dword [esp + 0x154], eax
jmp 0x57543a
cmp eax, 0xc
mov eax, dword [esp + 0x200]
mov ecx, eax
je 0x577c95
mov dword [esp + 0x214], ecx
mov eax, dword [esp + 0x204]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx edx, cl
mov ecx, dword [ebp + 8]
mov ebx, ecx
mov esi, dword [ebx + 0x34]
mov edi, esi
and edi, 0xfffffffe
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
or ecx, esi
cmp eax, edx
cmove ecx, edi
mov dword [ebx + 0x34], ecx
test cl, 5
setne cl
movzx ecx, cl
mov dword [ebx + 0x38], ecx
mov eax, dword [esp + 0x214]
mov dword [esp + 0x200], eax
mov edi, 8
mov bl, byte [esp + 0x223]
movzx eax, bl
cmp eax, 0x1b
jne 0x576dcf
mov edx, dword [esp + 0x20c]
mov esi, dword [esp + 0x21c]
mov ebx, dword [esp + 0x1f0]
mov ecx, dword [esp + 0x22c]
jmp 0x5743cb
xor edi, edi
jmp 0x576e07
mov esi, 0xf
mov bl, 9
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x230]
mov dword [esp], eax
call fcn.004302d0
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edi, eax
jb 0x576de0
mov byte [esp + 0x223], bl
cmp esi, 0xc
je 0x577858
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00411ea0
mov edi, dword [esp + 0x1a0]
mov ebx, dword [esp + 0x1f0]
jmp 0x5775c4
mov dword [esp + 0x1f0], ebx
mov byte [esp + 0x18b], 0x65
mov ecx, dword [esp + 0x130]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x158], eax
mov edx, dword [esp + 0x22c]
mov esi, dword [esp + 0x240]
mov dword [esp + 0x224], ecx
jne 0x577f71
mov eax, dword [esp + 0x270]
mov dword [esp + 4], eax
mov dword [esp], 0x80dc3c
call fcn.0043a7c0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x576ee0
mov edx, dword [esp + 0x22c]
mov esi, dword [esp + 0x240]
mov eax, dword [esp + 0x158]
jmp 0x577f6a
mov cl, 3
mov eax, 0x19
movzx ecx, cl
cmp ecx, 0x23
je 0x576fff
cmp ecx, 0x47
jne 0x57702e
mov esi, 8
mov bl, 0x27
mov eax, dword [esp + 0x270]
lea ecx, [esp + 0x2c0]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2b4], 0
mov dword [esp + 0x2b0], 0
mov dword [esp + 0x2b8], 0
lea eax, [esp + 0x2b8]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x2ac], 0
lea eax, [esp + 0x2b0]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x2b0], 0x2e
mov eax, dword [esp + 0x2b4]
mov ecx, dword [esp + 0x2b8]
mov dword [esp + 0xbc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x2b4]
mov dword [esp + 0x16c], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x57712f
xor ecx, ecx
test cl, cl
jne 0x57712f
mov cl, 0x57
mov edi, dword [esp + 0x22c]
mov dword [esp + 0x20c], edi
mov edx, dword [esp + 0x240]
mov dword [esp + 0x21c], edx
mov edx, dword [esp + 0x158]
mov esi, dword [esp + 0x180]
jmp 0x57728d
mov ecx, dword [esp + 0x22c]
mov dword [esp + 0x20c], ecx
mov ecx, dword [esp + 0x240]
mov dword [esp + 0x21c], ecx
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x224], ecx
jmp 0x5779ed
mov bl, 0x27
mov eax, dword [esp + 0x270]
lea ecx, [esp + 0x2c0]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2b4], 0
mov dword [esp + 0x2b0], 0
mov dword [esp + 0x2b8], 0
lea eax, [esp + 0x2b8]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x2ac], 0
lea eax, [esp + 0x2b0]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x2b0], 0x2e
mov eax, dword [esp + 0x2b4]
mov ecx, dword [esp + 0x2b8]
mov dword [esp + 0xbc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x2b4]
mov dword [esp + 0x16c], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
mov esi, dword [esp + 0x180]
je 0x577178
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x577178
mov cl, 0x57
mov edi, dword [esp + 0x22c]
mov dword [esp + 0x20c], edi
mov edx, dword [esp + 0x240]
mov dword [esp + 0x21c], edx
mov edx, dword [esp + 0x158]
jmp 0x57728d
mov dword [esp + 0x178], 0x70000003
mov byte [esp + 0x196], 0x27
mov edi, dword [esp + 0x22c]
mov dword [esp + 0x20c], edi
mov eax, dword [esp + 0x240]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x224], eax
mov ebx, dword [esp + 0x228]
jmp 0x577eff
mov dword [esp + 0x178], 0x70000003
mov byte [esp + 0x196], 0x27
mov eax, dword [esp + 0x22c]
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x240]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x224], eax
jmp 0x578143
mov bl, 0x27
mov eax, dword [esp + 0x270]
lea ecx, [esp + 0x2c0]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2b4], 0
mov dword [esp + 0x2b0], 0
mov dword [esp + 0x2b8], 0
lea eax, [esp + 0x2b8]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x2ac], 0
lea eax, [esp + 0x2b0]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x2b0], 0x2e
mov eax, dword [esp + 0x2b4]
mov ecx, dword [esp + 0x2b8]
mov dword [esp + 0xbc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x2b4]
mov dword [esp + 0x16c], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x577a02
mov cl, 0x57
mov edi, dword [esp + 0x22c]
mov edx, dword [esp + 0x224]
movzx ecx, cl
cmp ecx, 0x4d
jne 0x5773b0
mov dword [esp + 0x224], edx
mov dword [esp + 0x22c], edi
mov edi, 1
mov dword [esp + 0x2b4], eax
inc dword [esp + 0x2b8]
mov ecx, dword [esp + 0xbc]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x1e
mov eax, dword [esp + 0x2b4]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x2b4]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x2b4]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x2b4]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esp + 0x2b4]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov dword [esp + 0x178], 0x70000003
test eax, eax
jne 0x577a1a
mov dword [esp + 0x180], esi
mov byte [esp + 0x196], bl
mov dword [esp + 0xe8], 0xd
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x224]
mov edx, dword [esp + 0x20c]
mov ecx, dword [esp + 0x21c]
mov esi, dword [esp + 0x210]
je 0x574455
mov dword [esp + 0x210], esi
mov dword [esp + 0x20c], edx
mov dword [esp + 0x224], eax
cmp dword [esp + 0xe8], 0xd
jne 0x5754ec
mov dword [esp + 0x21c], ecx
jmp 0x578143
mov dword [esp + 0x224], edx
mov dword [esp + 0x2b4], eax
mov ecx, dword [esp + 0x2b8]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [esp + 0x2b8], ecx
mov ecx, dword [esp + 0xbc]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x1e
mov eax, dword [esp + 0x2b4]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x2b4]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x2b4]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x2b4]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [esp + 0x2b4]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
test eax, eax
jne 0x577483
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x577483
mov dword [esp + 0x74], eax
mov byte [esp + 0x196], bl
mov eax, 9
mov dword [esp + 0x178], 0x70000003
mov ebx, dword [esp + 0x228]
mov cl, byte [esp + 0x1d7]
jmp 0x577a46
mov dword [esp + 0x22c], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x180], esi
mov byte [esp + 0x196], bl
mov esi, 0xc
mov al, 0x44
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x74]
mov dword [esp], edi
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x16c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xbc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x198]
mov eax, dword [eax]
lea ecx, [esp + 0x2ac]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x2b0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
mov dword [esp + 0x178], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x578143
cmp esi, 0xc
mov ebx, dword [esp + 0x1f0]
jne 0x5775bd
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x5775bd
mov esi, 0x17
mov ecx, dword [esp + 0x40]
test cl, cl
je 0x5778cb
mov eax, 0xe
movzx ecx, cl
cmp ecx, 0x44
je 0x575c05
mov eax, 9
cmp ecx, 0x5b
jne 0x577973
mov eax, 4
mov cl, 0x44
mov dword [esp + 0x40], ecx
mov byte [esp + 0x1f7], 0x5d
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0xe0], ecx
mov edx, dword [ecx + 4]
mov dword [esp + 0x5c], edx
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
mov dword [esp + 0x178], 0
cmp edx, ecx
jne 0x577e93
jmp 0x578143
mov edi, dword [esp + 0x1a0]
mov dl, byte [esp + 0x18b]
mov eax, 0xc
movzx ecx, dl
cmp ecx, 0x65
je 0x577728
mov dword [esp + 0x1a0], edi
cmp ecx, 0x7f
je 0x576e4b
mov dword [esp + 0x1f0], ebx
mov eax, 0x18
mov byte [esp + 0x18b], 0x37
mov edx, dword [esp + 0x130]
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
cmp edx, ecx
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x158], ecx
mov ecx, dword [esp + 0x22c]
mov ebx, ecx
mov edi, dword [esp + 0x240]
mov esi, edi
mov dword [esp + 0x224], edx
mov edx, ebx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x21c], edi
jne 0x577f71
cmp eax, 0xe
je 0x577667
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x576e9d
movzx eax, byte [esp + 0x103]
cmp eax, 0x12
mov edx, dword [esp + 0x13c]
mov ebx, dword [esp + 0x140]
jne 0x5755b2
mov cl, 0x43
mov esi, dword [ebx + 8]
imul eax, edx, 0x1c
mov edi, dword [esi + eax + 4]
cmp edi, 1
je 0x577874
mov dword [esp + 0x170], esi
cmp edi, 0x3e
mov ebx, dword [esp + 0x228]
je 0x5757e0
mov dword [esp + 0x138], edi
mov byte [esp + 0x103], 0x43
mov eax, dword [esp + 0x140]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x190], edx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x1a4], eax
mov edi, dword [esp + 0x22c]
jmp 0x575984
mov dword [esp + 0x1f0], ebx
mov bh, byte [esp + 0x15f]
cmp eax, 0xc
jne 0x5777de
mov dword [esp + 0x1a0], edi
mov byte [esp + 0x15f], bh
mov eax, 7
mov byte [esp + 0x18b], 0x7f
mov ecx, dword [esp + 0x130]
test ecx, ecx
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x158], edx
mov edx, dword [esp + 0x210]
mov dword [esp + 0x214], edx
mov edx, dword [esp + 0x22c]
mov dword [esp + 0x20c], edx
mov edx, dword [esp + 0x240]
mov dword [esp + 0x21c], edx
mov dword [esp + 0x224], ecx
je 0x576e9d
cmp eax, 7
jne 0x57784a
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x214]
mov dword [esp + 0x210], eax
mov edx, dword [esp + 0x20c]
mov esi, dword [esp + 0x21c]
jne 0x577f71
jmp 0x577858
mov byte [esp + 0x18b], dl
xor eax, eax
imul ecx, dword [esp + 0x144], 0x1c
mov esi, dword [esp + 0x18c]
jmp 0x57781c
mov bh, 0x19
mov edx, eax
or edx, 2
mov esi, eax
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add eax, edx
mov edx, dword [edi + ecx + 0x18]
mov esi, dword [edx]
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
cmp eax, edx
jb 0x577800
mov dword [esp + 0x18c], esi
mov dword [esp + 0x1a0], edi
mov byte [esp + 0x15f], bh
jmp 0x577c43
mov eax, dword [esp + 0x214]
mov dword [esp + 0x210], eax
xor esi, esi
mov edi, dword [esp + 0x1b4]
mov ebx, dword [esp + 0x228]
mov ecx, dword [esp + 0x184]
jmp 0x575d89
mov dword [esp + 0x138], edi
mov byte [esp + 0x103], 0x43
mov edi, ebx
mov eax, dword [esp + 0x124]
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x234], eax
mov ebx, dword [esp + 0x11c]
mov eax, edx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x168], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x1a4], ecx
jmp 0x5756c1
mov ebx, dword [esp + 0x22c]
mov dword [esp + 0x22c], ebx
cmp esi, 9
jne 0x5778ed
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x574c64
mov eax, 9
mov dword [esp + 0x214], 0x14
mov bl, 0x4a
mov byte [esp + 0x1f7], 0x5d
mov edx, dword [esp + 0x2ac]
mov ecx, dword [edx + 4]
test ecx, ecx
mov esi, dword [esp + 0x180]
mov edi, dword [esp + 0xb4]
jne 0x5739a0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xb4], edi
mov eax, dword [esp + 0x214]
cmp eax, 5
je 0x5739ed
imul eax, eax
and eax, 3
cmp eax, 3
je 0x5739ed
mov dword [esp + 0x178], 0
mov dword [esp + 0x180], esi
jmp 0x578143
mov edi, dword [esp + 0xb4]
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xb4], edi
cmp eax, 6
jne 0x5779b2
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x5779b2
mov ebx, dword [esp + 0x22c]
mov ecx, dword [esp + 0x240]
jmp 0x574224
mov eax, 0xe
mov cl, 0x5b
mov dword [esp + 0x40], ecx
mov byte [esp + 0x1f7], 0x5d
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0xe0], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x178], 0
test ecx, ecx
jne 0x575c55
cmp eax, 0xe
mov esi, dword [esp + 0x180]
jne 0x5771ba
jmp 0x578143
mov dword [esp + 0x178], 0x70000003
mov byte [esp + 0x196], 0x27
jmp 0x578143
mov dword [esp + 0x74], eax
mov dword [esp + 0x180], esi
mov byte [esp + 0x196], bl
mov eax, dword [esp + 0x224]
mov edx, dword [esp + 0x20c]
mov ecx, dword [esp + 0x21c]
jmp 0x57444e
cmp eax, 9
jne 0x577a7b
mov byte [esp + 0x1d7], cl
mov dword [esp + 0x22c], edi
mov dword [esp + 0x180], esi
mov dword [esp + 0x228], ebx
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x578143
jmp 0x5749b9
mov byte [esp + 0x1d7], cl
mov dword [esp + 0x22c], edi
mov dword [esp + 0x180], esi
mov dword [esp + 0x228], ebx
jmp 0x5749b9
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x1f8], 0
jmp 0x577c95
imul edi, edi
and edi, 3
cmp edi, 3
mov esi, dword [esp + 0x1e8]
mov edx, dword [esp + 0x1e4]
je 0x573f51
mov esi, 0x16
imul eax, dword [esp + 0x144], 0x1c
mov edi, dword [esp + 0x1a0]
mov ecx, dword [edi + eax + 0x14]
mov dword [esp + 0x178], 0x30000003
cmp ecx, 4
jne 0x577ba0
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
je 0x577ba9
mov bh, byte [esp + 0x15f]
movzx ecx, bh
cmp ecx, 0xb
je 0x577be3
cmp ecx, 0x19
jne 0x577bff
mov esi, 0xf
mov byte [esp + 0x15f], 0x3d
mov eax, dword [edi + eax + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x18c], eax
mov dword [esp + 0x178], 0x30000003
mov edi, dword [esp + 0xb4]
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xb4], edi
cmp esi, 0xd
je 0x578568
imul esi, esi
and esi, 3
cmp esi, 3
mov edx, dword [esp + 0x20c]
mov esi, dword [esp + 0x21c]
jne 0x577c43
jmp 0x577f71
mov ebx, dword [esp + 0x22c]
jmp 0x577bb0
mov ebx, dword [esp + 0x22c]
cmp esi, 7
mov ecx, dword [esp + 0x8c]
jne 0x577bd7
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x574d0d
mov dword [esp + 0x22c], ebx
jmp 0x578143
mov dword [esp + 0x22c], ebx
jmp 0x578143
mov dword [esp + 0x178], 0x30000003
mov eax, 0x15
mov dl, byte [esp + 0x18b]
jmp 0x577736
xor ecx, ecx
jmp 0x577c2a
mov bh, 0xb
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [edi + eax + 0x18]
mov edx, dword [edx]
mov dword [esp + 0x18c], edx
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne bl
movzx esi, bl
cmp ecx, esi
jb 0x577c10
jmp 0x57783e
mov edx, dword [esp + 0x144]
mov eax, edx
and eax, 1
xor eax, edx
cmp eax, 0xffffffff
setne al
movzx ecx, al
add ecx, edx
mov eax, dword [esp + 0x5c]
cmp ecx, eax
jae 0x577d87
mov eax, ecx
and eax, 1
xor eax, ecx
mov dword [esp + 0x1fc], ecx
not eax
test eax, eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x178], eax
mov dword [esp + 0x1f8], eax
je 0x578143
movzx eax, byte [esp + 0x197]
cmp eax, 0xc
jne 0x577d0e
mov edi, 0xe
mov eax, 0x19
mov byte [esp + 0x197], 0xc
mov esi, dword [esp + 0x1fc]
imul ecx, esi, 0x1c
mov edx, dword [esp + 0x1a0]
mov ecx, dword [edx + ecx + 4]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
cmp ecx, edx
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x144], esi
jne 0x577d69
cmp edi, 1
jne 0x577abe
mov esi, dword [esp + 0x1e8]
mov edx, dword [esp + 0x1e4]
jmp 0x573f51
mov esi, 0x12
mov byte [esp + 0x197], 0x68
mov edx, dword [esp + 0x1fc]
imul eax, edx, 0x1c
mov ecx, dword [esp + 0x1a0]
cmp dword [ecx + eax + 4], 1
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x18c], eax
mov dword [esp + 0x144], edx
jne 0x577c43
cmp esi, 0xf
je 0x57851f
imul esi, esi
and esi, 3
cmp esi, 2
jne 0x577adb
jmp 0x57851f
cmp eax, 0xb
jne 0x577c43
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x575ad8
jmp 0x577c43
mov dword [esp + 0x1fc], ecx
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x178], eax
jmp 0x578143
mov dword [esp + 0xe0], edx
mov byte [esp + 0x196], 0x7a
mov byte [esp + 0x1af], 0x70
mov byte [esp + 0x177], 0xc
mov eax, dword [esp + 0x1a8]
mov edx, dword [eax]
test edx, edx
mov ecx, dword [esp + 0x178]
je 0x577dfa
mov eax, edx
imul eax, eax
and eax, 3
xor esi, esi
cmp eax, 3
mov dword [esp + 0xf4], ecx
jne 0x578287
jmp 0x577ea6
mov dword [esp + 0xf4], ecx
jmp 0x577ea6
mov dl, 5
mov eax, dword [esp + 0x16c]
mov eax, dword [eax]
lea ecx, [esi + esi*2]
mov edi, dword [eax + ecx*8 + 0x14]
test edi, edi
je 0x577e2d
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x578312
mov byte [esp + 0x177], 5
mov eax, dword [esp + 0x214]
jmp 0x577e57
mov byte [esp + 0x1af], 0x70
mov dword [esp], edi
call fcn.004936c0
mov eax, dword [esp + 0x1a8]
mov eax, dword [eax]
mov dword [esp + 0x150], eax
mov dword [esp + 0x14c], esi
mov eax, 0xb
mov ecx, dword [esp + 0x14c]
lea esi, [ecx + 1]
mov edi, dword [esp + 0x150]
cmp esi, edi
jae 0x577e93
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
mov edx, edi
jne 0x578287
cmp eax, 4
je 0x575c55
xor eax, eax
test al, al
jne 0x575c55
mov esi, 1
mov byte [esp + 0x21b], 0x18
mov eax, dword [esp + 0x16c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov ecx, dword [esp + 0x2ac]
test ecx, ecx
mov ebx, dword [esp + 0x228]
jne 0x577ef1
mov eax, 3
sub eax, ecx
xor eax, ecx
mov dword [esp + 0x1f0], ecx
mov edi, dword [esp + 0x22c]
jne 0x577f4c
jmp 0x577eff
mov dword [esp + 0x1f0], ecx
mov edi, dword [esp + 0x22c]
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jne 0x578135
mov eax, 0x12
movzx ecx, byte [esp + 0x21b]
cmp ecx, 0x63
jne 0x5783bf
mov byte [esp + 0x21b], 0x18
mov eax, dword [esp + 0x1f0]
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov dword [esp + 0x22c], edi
mov dword [esp + 0x228], ebx
mov edx, edi
mov esi, dword [esp + 0x240]
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x224], eax
mov byte [esp + 0x1d7], 0x6e
mov byte [esp + 0x1df], 0x3b
mov ecx, dword [esi]
mov dword [esp + 0x1e0], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
mov dword [esp + 0x200], 0
cmp ecx, eax
mov dword [esp + 0x20c], edx
mov dword [esp + 0x21c], esi
mov dword [esp + 0x1d8], edx
mov dword [esp + 0x1b0], esi
mov edi, 2
mov ebx, dword [esp + 0x22c]
mov ecx, dword [esp + 0x240]
mov eax, dword [esp + 0x224]
mov dword [esp + 0x1d0], eax
mov esi, dword [esp + 0x1e8]
mov edx, dword [esp + 0x1e4]
jne 0x573cd0
mov dword [esp + 0xe8], ebx
mov dword [esp + 0x214], ecx
mov eax, 6
mov cl, byte [esp + 0x1d7]
movzx ecx, cl
cmp ecx, 0x1d
mov ebx, dword [esp + 0x228]
jne 0x57807f
mov eax, dword [esp + 0x1d8]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov edx, dword [esp + 0x25c]
test edx, edx
je 0x578559
mov eax, edx
and eax, 1
inc eax
xor eax, edx
je 0x578559
mov eax, 0xa
mov byte [esp + 0x1d7], 0x1d
mov byte [esp + 0x1ef], 0x76
mov edi, dword [esp + 0x20c]
mov ecx, dword [esp + 0x21c]
mov dword [esp + 0x240], ecx
jmp 0x57496a
mov edi, dword [esp + 0xe8]
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x240], ecx
cmp eax, 3
jne 0x57838b
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x57838b
mov dword [esp + 0x22c], edi
mov dword [esp + 0x228], ebx
mov ebx, 0xa
mov esi, 0xc
mov byte [esp + 0x223], 9
mov byte [esp + 0xf2], 0x29
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov edx, ecx
mov ecx, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.004337b0
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x70]
cmp dword [eax], 0
jne 0x5781a2
cmp ebx, 2
je 0x578568
imul ebx, ebx
and ebx, 3
cmp ebx, 2
mov edx, dword [esp + 0x20c]
mov esi, dword [esp + 0x21c]
jne 0x576d9a
jmp 0x577f71
mov dword [esp + 0x22c], edi
mov dword [esp + 0x228], ebx
mov al, byte [esp + 0x196]
movzx ecx, al
mov eax, 0xa
cmp ecx, 0x60
je 0x5781be
cmp ecx, 0x7a
jne 0x57823d
mov edx, dword [esp + 0xe0]
cmp eax, 0xa
jne 0x57817b
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x577da8
mov byte [esp + 0x1f7], 6
mov byte [esp + 0x15f], 0x3d
mov byte [esp + 0x197], 0xc
mov eax, dword [edx + 8]
mov dword [esp + 0xe0], edx
jmp 0x577a9c
cmp esi, 0xb
jne 0x578613
xor eax, eax
mov ecx, 3
mov ebx, dword [esp + 0x22c]
jmp 0x574af6
mov byte [esp + 0x196], 0x60
mov byte [esp + 0x1af], 0x70
mov byte [esp + 0x177], 0xc
mov ecx, dword [esp + 0x1a8]
mov edx, dword [ecx]
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 + 0x178]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x210]
mov dword [esp + 0x214], ecx
jne 0x578287
cmp eax, 0xa
jne 0x575231
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x575231
mov eax, dword [esp + 0x214]
mov dword [esp + 0x210], eax
jmp 0x577ea6
mov byte [esp + 0x196], 0x27
mov byte [esp + 0x1af], 0x70
mov byte [esp + 0x177], 0xc
mov eax, dword [esp + 0x1a8]
mov edx, dword [eax]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
xor esi, esi
cmp edx, eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0xf4], eax
je 0x577ea6
mov ebx, 0x18
mov al, byte [esp + 0x177]
movzx eax, al
cmp eax, 5
je 0x578368
mov dword [esp + 0x214], edx
cmp eax, 0x39
jne 0x5782e2
mov dl, 0xc
mov eax, dword [esp + 0x16c]
mov eax, dword [eax]
lea ecx, [esi + esi*2]
mov edi, dword [eax + ecx*8 + 0x14]
test edi, edi
jne 0x578312
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x578312
mov byte [esp + 0x177], 0xc
mov eax, dword [esp + 0x214]
jmp 0x577e57
mov ebx, 0xc
mov dl, 0x39
mov eax, dword [esp + 0x16c]
mov eax, dword [eax]
lea ecx, [esi + esi*2]
mov edi, dword [eax + ecx*8 + 0x14]
test edi, edi
je 0x5784ea
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x5784ea
mov al, byte [esp + 0x1af]
movzx eax, al
cmp eax, 0x29
je 0x57848e
mov byte [esp + 0x177], dl
cmp eax, 0x52
je 0x577e3e
mov ebx, 0xa
mov byte [esp + 0x1af], 0x52
mov dword [esp], edi
call fcn.004936c0
mov eax, dword [esp + 0x1a8]
mov eax, dword [eax]
mov dword [esp + 0x150], eax
mov dword [esp + 0x14c], esi
mov edx, dword [esp + 0x214]
cmp ebx, 0xa
je 0x577e65
mov dword [esp + 0x214], edx
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
jne 0x577e06
jmp 0x577e65
mov eax, dword [esp + 0x1d8]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov esi, dword [esp + 0x25c]
test esi, esi
je 0x578559
mov eax, 0xc
mov cl, 0x6e
mov byte [esp + 0x1ef], 0x76
jmp 0x577a46
mov dword [esp + 0x22c], edi
mov dword [esp + 0x228], ebx
mov ecx, dword [esp + 0x210]
mov dword [esp + 0x214], ecx
mov edi, dword [esp + 0x1b4]
mov ebx, dword [esp + 0x1f0]
cmp eax, 0xb
je 0x5744db
xor eax, eax
test al, al
jne 0x5744db
mov dword [esp + 0x1b4], edi
xor edi, edi
jmp 0x57843b
mov esi, 0x12
mov byte [esp + 0x21b], 0x63
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
adc edi, 0
mov dword [esp], ebx
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jb 0x578410
mov eax, dword [esp + 0x214]
mov dword [esp + 0x210], eax
mov al, byte [esp + 0x197]
mov dword [esp + 0x1f0], ebx
mov byte [esp + 0x197], al
cmp esi, 0xc
mov edi, dword [esp + 0x22c]
jne 0x57596e
mov ebx, dword [esp + 0x228]
jmp 0x575984
mov byte [esp + 0x177], dl
xor ebx, ebx
jmp 0x5784ca
mov byte [esp + 0x1af], 0x29
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
mov dword [esp], edi
call fcn.004936c0
mov eax, dword [esp + 0x1a8]
mov ecx, dword [eax]
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp ebx, eax
jb 0x5784a0
mov dword [esp + 0x150], ecx
jmp 0x577e5e
mov byte [esp + 0x177], 0x39
mov eax, dword [esp + 0x214]
mov dword [esp + 0x150], eax
mov dword [esp + 0x14c], esi
cmp ebx, 1
jne 0x577e65
mov eax, ebx
not eax
and eax, 1
add eax, ebx
je 0x577e65
mov esi, 0xb
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], eax
cmp esi, 0xb
je 0x5767ef
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x5767ef
mov eax, dword [esp + 0x1d0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x20c]
mov esi, dword [esp + 0x21c]
jmp 0x577f71
cmp eax, 0xf
mov ebx, dword [esp + 0x210]
jne 0x5763e1
cmp edi, 0xe
jne 0x57519e
mov eax, dword [esp + 0x214]
mov dword [esp + 0x210], eax
mov eax, 0x17
movzx ecx, byte [esp + 0xf2]
cmp ecx, 0x48
mov edx, dword [esp + 0x228]
mov esi, dword [esp + 0x230]
jne 0x57863f
mov edi, dword [esp + 0x22c]
jmp 0x57857b
mov byte [esp + 0xf2], 0x48
test esi, esi
jne 0x578684
mov eax, 3
sub eax, esi
xor eax, esi
mov ebx, dword [esp + 0x210]
je 0x576403
mov ebx, dword [esp + 0x210]
jmp 0x576403