Function at 0x515ed0
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57e4a3
mov eax, dword fs:[0]
push eax
sub esp, 0x5f8
mov eax, dword [0x59e080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x380], ecx
push 0xc
lea ecx, [ebp - 0x9c]
call fcn.004aa490
lea ecx, [ebp - 0x9c]
call fcn.004dd3e0
mov dword [ebp - 4], 0
push 0x48
call fcn.0051c0e5
add esp, 4
mov dword [ebp - 0x358], eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0x358], 0
je 0x51613f
mov byte [ebp - 0x314], 0xfe
mov byte [ebp - 0x313], 0x95
mov byte [ebp - 0x312], 0xf
mov byte [ebp - 0x311], 0x67
mov byte [ebp - 0x310], 0x3c
mov byte [ebp - 0x30f], 0xcb
mov byte [ebp - 0x30e], 0xa2
mov byte [ebp - 0x30d], 0x9f
mov byte [ebp - 0x30c], 0x57
mov byte [ebp - 0x30b], 0xa0
mov byte [ebp - 0x30a], 0x45
mov byte [ebp - 0x309], 0x18
mov byte [ebp - 0x308], 0x9b
mov byte [ebp - 0x307], 0x93
mov byte [ebp - 0x306], 0x23
mov byte [ebp - 0x305], 0xd1
mov byte [ebp - 0x304], 0xfb
mov byte [ebp - 0x303], 0x4b
mov byte [ebp - 0x302], 0x33
mov byte [ebp - 0x301], 0x18
mov byte [ebp - 0x300], 0xdd
mov byte [ebp - 0x2ff], 0xa3
mov byte [ebp - 0x2fe], 0x6b
mov byte [ebp - 0x2fd], 0xe8
mov byte [ebp - 0x2fc], 0xd4
mov byte [ebp - 0x2fb], 0x3e
mov byte [ebp - 0x2fa], 0xd5
mov byte [ebp - 0x2f9], 0xbd
mov byte [ebp - 0x2f8], 4
mov byte [ebp - 0x2f7], 0xec
mov byte [ebp - 0x2f6], 0x23
mov byte [ebp - 0x2f5], 0xb8
mov byte [ebp - 0x334], 0x55
mov byte [ebp - 0x333], 0x4b
mov byte [ebp - 0x332], 0xd0
mov byte [ebp - 0x331], 0x93
mov byte [ebp - 0x330], 0x95
mov byte [ebp - 0x32f], 0x22
mov byte [ebp - 0x32e], 0xe8
mov byte [ebp - 0x32d], 0x57
mov byte [ebp - 0x32c], 0x30
mov byte [ebp - 0x32b], 0x5c
mov byte [ebp - 0x32a], 0xa9
mov byte [ebp - 0x329], 0x74
mov byte [ebp - 0x328], 0x19
mov byte [ebp - 0x327], 0x5b
mov byte [ebp - 0x326], 0x5e
mov byte [ebp - 0x325], 0xd3
mov byte [ebp - 0x324], 0x10
mov byte [ebp - 0x323], 0x42
mov byte [ebp - 0x322], 0xd5
mov byte [ebp - 0x321], 0xba
mov byte [ebp - 0x320], 0x52
mov byte [ebp - 0x31f], 0x55
mov byte [ebp - 0x31e], 0xa0
mov byte [ebp - 0x31d], 0xdb
mov byte [ebp - 0x31c], 0x27
mov byte [ebp - 0x31b], 0x9e
mov byte [ebp - 0x31a], 0xa0
mov byte [ebp - 0x319], 0x37
mov byte [ebp - 0x318], 0xa
mov byte [ebp - 0x317], 0xe1
mov byte [ebp - 0x316], 0x31
mov byte [ebp - 0x315], 0xd2
push 0
push 0
sub esp, 0x20
mov ecx, 8
lea esi, [ebp - 0x314]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
sub esp, 0x20
mov ecx, 8
lea esi, [ebp - 0x334]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x358]
call fcn.00504110
mov dword [ebp - 0x35c], eax
jmp 0x516149
mov dword [ebp - 0x35c], 0
mov eax, dword [ebp - 0x35c]
mov dword [ebp - 0x5a8], eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x5a8]
mov dword [ebp - 0x5a4], ecx
lea edx, [ebp - 0x5a4]
push edx
lea ecx, [ebp - 0x9c]
call fcn.00502ed0
nop
push 0x48
call fcn.0051c0e5
add esp, 4
mov dword [ebp - 0x360], eax
mov byte [ebp - 4], 2
cmp dword [ebp - 0x360], 0
je 0x516394
mov byte [ebp - 0x254], 0xfe
mov byte [ebp - 0x253], 0x95
mov byte [ebp - 0x252], 0xf
mov byte [ebp - 0x251], 0x67
mov byte [ebp - 0x250], 0x3c
mov byte [ebp - 0x24f], 0xcb
mov byte [ebp - 0x24e], 0xa2
mov byte [ebp - 0x24d], 0x9f
mov byte [ebp - 0x24c], 0x57
mov byte [ebp - 0x24b], 0xa0
mov byte [ebp - 0x24a], 0x45
mov byte [ebp - 0x249], 0x18
mov byte [ebp - 0x248], 0x9b
mov byte [ebp - 0x247], 0x93
mov byte [ebp - 0x246], 0x23
mov byte [ebp - 0x245], 0xd1
mov byte [ebp - 0x244], 0xfb
mov byte [ebp - 0x243], 0x4b
mov byte [ebp - 0x242], 0x33
mov byte [ebp - 0x241], 0x18
mov byte [ebp - 0x240], 0xdd
mov byte [ebp - 0x23f], 0xa3
mov byte [ebp - 0x23e], 0x6b
mov byte [ebp - 0x23d], 0xe8
mov byte [ebp - 0x23c], 0xd4
mov byte [ebp - 0x23b], 0x3e
mov byte [ebp - 0x23a], 0xd5
mov byte [ebp - 0x239], 0xbd
mov byte [ebp - 0x238], 4
mov byte [ebp - 0x237], 0xec
mov byte [ebp - 0x236], 0x23
mov byte [ebp - 0x235], 0xb8
mov byte [ebp - 0x274], 0x91
mov byte [ebp - 0x273], 0x77
mov byte [ebp - 0x272], 0x30
mov byte [ebp - 0x271], 0xf7
mov byte [ebp - 0x270], 0xd
mov byte [ebp - 0x26f], 0xca
mov byte [ebp - 0x26e], 0x71
mov byte [ebp - 0x26d], 0xf2
mov byte [ebp - 0x26c], 0xff
mov byte [ebp - 0x26b], 0x8c
mov byte [ebp - 0x26a], 0xf2
mov byte [ebp - 0x269], 0xbb
mov byte [ebp - 0x268], 0x1a
mov byte [ebp - 0x267], 0x26
mov byte [ebp - 0x266], 0x6a
mov byte [ebp - 0x265], 0xad
mov byte [ebp - 0x264], 0xad
mov byte [ebp - 0x263], 0xd5
mov byte [ebp - 0x262], 0x18
mov byte [ebp - 0x261], 0xfb
mov byte [ebp - 0x260], 0x48
mov byte [ebp - 0x25f], 0x9a
mov byte [ebp - 0x25e], 0xb8
mov byte [ebp - 0x25d], 3
mov byte [ebp - 0x25c], 0x56
mov byte [ebp - 0x25b], 0xe7
mov byte [ebp - 0x25a], 0xca
mov byte [ebp - 0x259], 0xeb
mov byte [ebp - 0x258], 0x7d
mov byte [ebp - 0x257], 0x66
mov byte [ebp - 0x256], 0xeb
mov byte [ebp - 0x255], 0xe8
push 0
push 0
sub esp, 0x20
mov ecx, 8
lea esi, [ebp - 0x254]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
sub esp, 0x20
mov ecx, 8
lea esi, [ebp - 0x274]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x360]
call fcn.00504110
mov dword [ebp - 0x364], eax
jmp 0x51639e
mov dword [ebp - 0x364], 0
mov eax, dword [ebp - 0x364]
mov dword [ebp - 0x5a0], eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x5a0]
mov dword [ebp - 0x5b4], ecx
lea edx, [ebp - 0x5b4]
push edx
lea ecx, [ebp - 0x9c]
call fcn.00502ed0
nop
push 0x48
call fcn.0051c0e5
add esp, 4
mov dword [ebp - 0x368], eax
mov byte [ebp - 4], 3
cmp dword [ebp - 0x368], 0
je 0x5165e9
mov byte [ebp - 0x294], 0xdf
mov byte [ebp - 0x293], 0xb
mov byte [ebp - 0x292], 0xdd
mov byte [ebp - 0x291], 0xee
mov byte [ebp - 0x290], 0xff
mov byte [ebp - 0x28f], 3
mov byte [ebp - 0x28e], 0x92
mov byte [ebp - 0x28d], 0x7c
mov byte [ebp - 0x28c], 0xb3
mov byte [ebp - 0x28b], 0x4c
mov byte [ebp - 0x28a], 0x67
mov byte [ebp - 0x289], 0x35
mov byte [ebp - 0x288], 0x30
mov byte [ebp - 0x287], 0x57
mov byte [ebp - 0x286], 0x26
mov byte [ebp - 0x285], 0x4d
mov byte [ebp - 0x284], 0xa1
mov byte [ebp - 0x283], 0xf8
mov byte [ebp - 0x282], 0xe
mov byte [ebp - 0x281], 0x36
mov byte [ebp - 0x280], 0x9f
mov byte [ebp - 0x27f], 0xcf
mov byte [ebp - 0x27e], 0xf8
mov byte [ebp - 0x27d], 0x34
mov byte [ebp - 0x27c], 0x60
mov byte [ebp - 0x27b], 0xcb
mov byte [ebp - 0x27a], 0xf7
mov byte [ebp - 0x279], 0xf3
mov byte [ebp - 0x278], 0x43
mov byte [ebp - 0x277], 0x45
mov byte [ebp - 0x276], 0xfa
mov byte [ebp - 0x275], 0x22
mov byte [ebp - 0x2b4], 0xa5
mov byte [ebp - 0x2b3], 0xfc
mov byte [ebp - 0x2b2], 0xc
mov byte [ebp - 0x2b1], 0x84
mov byte [ebp - 0x2b0], 0xd5
mov byte [ebp - 0x2af], 0x64
mov byte [ebp - 0x2ae], 0xfa
mov byte [ebp - 0x2ad], 0x7f
mov byte [ebp - 0x2ac], 0xbc
mov byte [ebp - 0x2ab], 0x56
mov byte [ebp - 0x2aa], 0x3b
mov byte [ebp - 0x2a9], 0xab
mov byte [ebp - 0x2a8], 0x1e
mov byte [ebp - 0x2a7], 0xe4
mov byte [ebp - 0x2a6], 0x97
mov byte [ebp - 0x2a5], 0x7d
mov byte [ebp - 0x2a4], 0x41
mov byte [ebp - 0x2a3], 0xe
mov byte [ebp - 0x2a2], 0xd5
mov byte [ebp - 0x2a1], 0x79
mov byte [ebp - 0x2a0], 0xf4
mov byte [ebp - 0x29f], 0x12
mov byte [ebp - 0x29e], 0xf2
mov byte [ebp - 0x29d], 0x2f
mov byte [ebp - 0x29c], 0x2e
mov byte [ebp - 0x29b], 0x40
mov byte [ebp - 0x29a], 0x89
mov byte [ebp - 0x299], 0x38
mov byte [ebp - 0x298], 0xa5
mov byte [ebp - 0x297], 9
mov byte [ebp - 0x296], 0x94
mov byte [ebp - 0x295], 0x2a
push 0
push 0
sub esp, 0x20
mov ecx, 8
lea esi, [ebp - 0x294]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
sub esp, 0x20
mov ecx, 8
lea esi, [ebp - 0x2b4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x368]
call fcn.00504110
mov dword [ebp - 0x36c], eax
jmp 0x5165f3
mov dword [ebp - 0x36c], 0
mov eax, dword [ebp - 0x36c]
mov dword [ebp - 0x5f8], eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x5f8]
mov dword [ebp - 0x5f4], ecx
lea edx, [ebp - 0x5f4]
push edx
lea ecx, [ebp - 0x9c]
call fcn.00502ed0
nop
push 0x48
call fcn.0051c0e5
add esp, 4
mov dword [ebp - 0x370], eax
mov byte [ebp - 4], 4
cmp dword [ebp - 0x370], 0
je 0x51683e
mov byte [ebp - 0x2d4], 0xdf
mov byte [ebp - 0x2d3], 0xb
mov byte [ebp - 0x2d2], 0xdd
mov byte [ebp - 0x2d1], 0xee
mov byte [ebp - 0x2d0], 0xff
mov byte [ebp - 0x2cf], 3
mov byte [ebp - 0x2ce], 0x92
mov byte [ebp - 0x2cd], 0x7c
mov byte [ebp - 0x2cc], 0xb3
mov byte [ebp - 0x2cb], 0x4c
mov byte [ebp - 0x2ca], 0x67
mov byte [ebp - 0x2c9], 0x35
mov byte [ebp - 0x2c8], 0x30
mov byte [ebp - 0x2c7], 0x57
mov byte [ebp - 0x2c6], 0x26
mov byte [ebp - 0x2c5], 0x4d
mov byte [ebp - 0x2c4], 0xa1
mov byte [ebp - 0x2c3], 0xf8
mov byte [ebp - 0x2c2], 0xe
mov byte [ebp - 0x2c1], 0x36
mov byte [ebp - 0x2c0], 0x9f
mov byte [ebp - 0x2bf], 0xcf
mov byte [ebp - 0x2be], 0xf8
mov byte [ebp - 0x2bd], 0x34
mov byte [ebp - 0x2bc], 0x60
mov byte [ebp - 0x2bb], 0xcb
mov byte [ebp - 0x2ba], 0xf7
mov byte [ebp - 0x2b9], 0xf3
mov byte [ebp - 0x2b8], 0x43
mov byte [ebp - 0x2b7], 0x45
mov byte [ebp - 0x2b6], 0xfa
mov byte [ebp - 0x2b5], 0x22
mov byte [ebp - 0x2f4], 0x47
mov byte [ebp - 0x2f3], 0x3e
mov byte [ebp - 0x2f2], 0xdb
mov byte [ebp - 0x2f1], 0xbd
mov byte [ebp - 0x2f0], 0x23
mov byte [ebp - 0x2ef], 0xc
mov byte [ebp - 0x2ee], 0xda
mov byte [ebp - 0x2ed], 0xde
mov byte [ebp - 0x2ec], 0x75
mov byte [ebp - 0x2eb], 0x75
mov byte [ebp - 0x2ea], 0x81
mov byte [ebp - 0x2e9], 8
mov byte [ebp - 0x2e8], 0x74
mov byte [ebp - 0x2e7], 0xde
mov byte [ebp - 0x2e6], 5
mov byte [ebp - 0x2e5], 0x21
mov byte [ebp - 0x2e4], 0xd1
mov byte [ebp - 0x2e3], 0x89
mov byte [ebp - 0x2e2], 7
mov byte [ebp - 0x2e1], 0x64
mov byte [ebp - 0x2e0], 0xf4
mov byte [ebp - 0x2df], 0x62
mov byte [ebp - 0x2de], 0xb2
mov byte [ebp - 0x2dd], 0xeb
mov byte [ebp - 0x2dc], 0x21
mov byte [ebp - 0x2db], 0x88
mov byte [ebp - 0x2da], 0xac
mov byte [ebp - 0x2d9], 0x95
mov byte [ebp - 0x2d8], 0xf6
mov byte [ebp - 0x2d7], 0xd3
mov byte [ebp - 0x2d6], 0xa2
mov byte [ebp - 0x2d5], 0x7a
push 0
push 0
sub esp, 0x20
mov ecx, 8
lea esi, [ebp - 0x2d4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
sub esp, 0x20
mov ecx, 8
lea esi, [ebp - 0x2f4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x370]
call fcn.00504110
mov dword [ebp - 0x374], eax
jmp 0x516848
mov dword [ebp - 0x374], 0
mov eax, dword [ebp - 0x374]
mov dword [ebp - 0x5f0], eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x5f0]
mov dword [ebp - 0x5e4], ecx
lea edx, [ebp - 0x5e4]
push edx
lea ecx, [ebp - 0x9c]
call fcn.00502ed0
nop
lea ecx, [ebp - 0xb4]
call fcn.005040f0
mov byte [ebp - 4], 5
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc0], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x20c], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x1f0], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x1f0], xmm0
jmp 0x5168d5
movsd xmm0, qword [ebp - 0x1f0]
addsd xmm0, qword [0x580ac0]
movsd qword [ebp - 0x1f0], xmm0
movsd xmm0, qword [0x5837d0]
comisd xmm0, xmmword [ebp - 0x1f0]
jbe 0x516986
movsd xmm0, qword [0x583738]
mulsd xmm0, qword [ebp - 0x1f0]
mulsd xmm0, qword [ebp - 0x1f0]
movsd xmm1, qword [ebp - 0x1f0]
mulsd xmm1, qword [ebp - 0x1f0]
subsd xmm0, xmm1
movsd xmm1, qword [0x580ad0]
mulsd xmm1, qword [ebp - 0x1f0]
mulsd xmm1, qword [ebp - 0x1f0]
addsd xmm1, qword [0x5836f0]
divsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x20c]
movsd qword [ebp - 0x20c], xmm0
movsd xmm0, qword [ebp - 0x20c]
comisd xmm0, xmmword [0x580750]
jbe 0x516981
movsd xmm0, qword [0x583648]
mulsd xmm0, qword [ebp - 0x1f0]
movsd xmm1, qword [ebp - 0x20c]
subsd xmm1, xmm0
movsd qword [ebp - 0x20c], xmm1
jmp 0x5168bd
xorps xmm0, xmm0
comisd xmm0, xmmword [ebp - 0x20c]
jbe 0x5169e6
sub dword [edi + 0x58], ebp
pop edi
jae 0x5169fa
jo 0x5169f8
cmp ecx, dword [edx + 0x71]
dec eax
pop esp
dec edi
push edi
jb 0x516a0f
inc edi
push esp
imul edx, dword [esi - 6], 0xf061f456
pop ecx
pop eax
sti
invalid
mov dword [ebp - 0xbc], 0x5169a9
mov dword [ebp - 0xc0], 0x516993
push ecx
add byte [ebx - 0xbb7b], cl
dec dword [ecx - 0x16f7b]
dec dword [ebx - 0xbf73]
dec dword [ecx - 0x5cf73]
inc esi
test dword [edi - 2], esp
invalid
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x5d0], ecx
mov byte [ebp - 0x199], 0x1a
mov dword [ebp - 0x11c], 0
jmp 0x516a34
cli
invalid
mov edx, dword [ebp - 0x11c]
add edx, 1
mov dword [ebp - 0x11c], edx
cmp dword [ebp - 0x11c], 0x100
jae 0x516a55
mov eax, dword [ebp - 0x11c]
mov cl, byte [ebp - 0x11c]
mov byte [ebp + eax - 0x598], cl
jmp 0x516a25
mov dword [ebp - 0x1cc], 0
mov byte [ebp - 0xd4], 0
mov dword [ebp - 0x11c], 0xff
jmp 0x516a81
mov edx, dword [ebp - 0x11c]
sub edx, 1
mov dword [ebp - 0x11c], edx
cmp dword [ebp - 0x11c], 0
jbe 0x516fa0
mov dword [ebp - 0x354], 0
mov dword [ebp - 0x22c], 1
mov eax, dword [ebp - 0x22c]
cmp eax, dword [ebp - 0x11c]
jae 0x516ac2
mov ecx, dword [ebp - 0x22c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x22c], edx
jmp 0x516aa2
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x378], eax
cmp dword [ebp - 0x378], 3
ja case.default.0x516ae1
mov ecx, dword [ebp - 0x378]
jmp dword [ecx*4 + 0x51aca8]
movzx edx, byte [ebp - 0xd4]
movzx ebx, byte [ebp + edx - 0x598]
movsd xmm0, qword [ebp - 0x20c]
call fcn.0051c6e0
and eax, 0xff
add ebx, eax
mov byte [ebp - 0xd4], bl
jmp 0x516bca
movzx eax, byte [ebp - 0xd4]
movzx ebx, byte [ebp + eax - 0x598]
movsd xmm0, qword [ebp - 0x20c]
call fcn.0051c6e0
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 0xd4], bl
jmp 0x516bca
movzx ecx, byte [ebp - 0xd4]
movzx ebx, byte [ebp + ecx - 0x598]
movsd xmm0, qword [ebp - 0x20c]
call fcn.0051c6e0
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 0xd4], bl
jmp 0x516bca
movzx edx, byte [ebp - 0xd4]
movzx ebx, byte [ebp + edx - 0x598]
movsd xmm0, qword [ebp - 0x20c]
call fcn.0051c6e0
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 0xd4], bl
jmp 0x516bca
movzx eax, byte [ebp - 0xd4]
movzx ecx, byte [ebp + eax - 0x598]
mov edx, dword [ebp - 0x5d0]
add edx, dword [ebp - 0x1cc]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0xd4], cl
mov ecx, dword [ebp - 0x1cc]
add ecx, 1
mov dword [ebp - 0x1cc], ecx
movzx edx, byte [ebp - 0x199]
cmp dword [ebp - 0x1cc], edx
jb 0x516eb7
mov dword [ebp - 0x1cc], 0
movsd xmm0, qword [0x583928]
movsd qword [ebp - 0x1b0], xmm0
movsd xmm0, qword [0x5838b8]
movsd qword [ebp - 0x234], xmm0
movsd xmm0, qword [0x583850]
movsd qword [ebp - 0x190], xmm0
movsd xmm0, qword [0x5837b8]
movsd qword [ebp - 0x198], xmm0
movsd xmm0, qword [ebp - 0x1b0]
addsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x1b0], xmm0
movsd xmm0, qword [ebp - 0x190]
addsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x190], xmm0
movsd xmm0, qword [ebp - 0x1b0]
subsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x1b0], xmm0
movsd xmm0, qword [ebp - 0x234]
addsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x234], xmm0
movsd xmm0, qword [ebp - 0x234]
comisd xmm0, xmmword [ebp - 0x198]
jbe 0x516d23
movsd xmm0, qword [ebp - 0x234]
subsd xmm0, qword [ebp - 0x190]
movsd qword [ebp - 0x234], xmm0
movsd xmm0, qword [ebp - 0x190]
addsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x190], xmm0
movsd xmm0, qword [ebp - 0x198]
subsd xmm0, qword [ebp - 0x1b0]
movsd qword [ebp - 0x198], xmm0
movsd xmm0, qword [ebp - 0x190]
addsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x190], xmm0
movzx eax, byte [ebp - 0x199]
movzx ecx, byte [ebp - 0xd4]
add ecx, eax
mov byte [ebp - 0xd4], cl
jmp 0x516eb7
movsd xmm0, qword [ebp - 0x1b0]
addsd xmm0, qword [ebp - 0x190]
movsd qword [ebp - 0x1b0], xmm0
movsd xmm0, qword [ebp - 0x190]
mulsd xmm0, qword [ebp - 0x1b0]
movsd qword [ebp - 0x190], xmm0
movsd xmm0, qword [ebp - 0x1b0]
subsd xmm0, qword [ebp - 0x190]
movsd qword [ebp - 0x1b0], xmm0
movsd xmm0, qword [ebp - 0x190]
divsd xmm0, qword [ebp - 0x1b0]
movsd qword [ebp - 0x190], xmm0
movsd xmm0, qword [ebp - 0x190]
mulsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x190], xmm0
movsd xmm0, qword [ebp - 0x190]
subsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x190], xmm0
movsd xmm0, qword [ebp - 0x234]
mulsd xmm0, qword [ebp - 0x190]
movsd qword [ebp - 0x234], xmm0
movsd xmm0, qword [ebp - 0x198]
mulsd xmm0, qword [ebp - 0x1b0]
movsd qword [ebp - 0x198], xmm0
movsd xmm0, qword [ebp - 0x1b0]
comisd xmm0, xmmword [ebp - 0x190]
jbe 0x516e57
movsd xmm0, qword [ebp - 0x198]
divsd xmm0, qword [ebp - 0x1b0]
movsd qword [ebp - 0x198], xmm0
movsd xmm0, qword [ebp - 0x198]
subsd xmm0, qword [ebp - 0x1b0]
movsd qword [ebp - 0x198], xmm0
movsd xmm0, qword [ebp - 0x198]
divsd xmm0, qword [ebp - 0x1b0]
movsd qword [ebp - 0x198], xmm0
movsd xmm0, qword [ebp - 0x190]
addsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x190], xmm0
jmp 0x516eb7
movsd xmm0, qword [ebp - 0x190]
mulsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x190], xmm0
movsd xmm0, qword [ebp - 0x198]
divsd xmm0, qword [ebp - 0x1b0]
movsd qword [ebp - 0x198], xmm0
movsd xmm0, qword [ebp - 0x1b0]
mulsd xmm0, qword [ebp - 0x234]
movsd qword [ebp - 0x1b0], xmm0
movsd xmm0, qword [ebp - 0x190]
subsd xmm0, qword [ebp - 0x198]
movsd qword [ebp - 0x190], xmm0
movzx edx, byte [ebp - 0xd4]
and edx, dword [ebp - 0x22c]
mov dword [ebp - 0x1b4], edx
mov eax, dword [ebp - 0x354]
add eax, 1
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0xb
jbe 0x516ef6
mov eax, dword [ebp - 0x1b4]
xor edx, edx
div dword [ebp - 0x11c]
mov dword [ebp - 0x1b4], edx
mov ecx, dword [ebp - 0x1b4]
cmp ecx, dword [ebp - 0x11c]
ja 0x516ac2
mov edx, dword [ebp - 0x11c]
cmp edx, dword [ebp - 0x1b4]
je 0x516f9b
mov eax, dword [ebp - 0x1b4]
movzx ecx, byte [ebp + eax - 0x598]
mov edx, dword [ebp - 0x11c]
movzx eax, byte [ebp + edx - 0x598]
xor eax, ecx
mov ecx, dword [ebp - 0x11c]
mov byte [ebp + ecx - 0x598], al
mov edx, dword [ebp - 0x11c]
movzx eax, byte [ebp + edx - 0x598]
mov ecx, dword [ebp - 0x1b4]
movzx edx, byte [ebp + ecx - 0x598]
xor edx, eax
mov eax, dword [ebp - 0x1b4]
mov byte [ebp + eax - 0x598], dl
mov ecx, dword [ebp - 0x1b4]
movzx edx, byte [ebp + ecx - 0x598]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [ebp + eax - 0x598]
xor ecx, edx
mov edx, dword [ebp - 0x11c]
mov byte [ebp + edx - 0x598], cl
jmp 0x516a72
mov eax, 1
shl eax, 0
mov cl, byte [ebp + eax - 0x598]
mov byte [ebp - 0xc6], cl
mov edx, 1
imul eax, edx, 3
mov cl, byte [ebp + eax - 0x598]
mov byte [ebp - 0xc7], cl
mov edx, 1
imul eax, edx, 5
mov cl, byte [ebp + eax - 0x598]
mov byte [ebp - 0xd2], cl
mov edx, 1
imul eax, edx, 7
mov cl, byte [ebp + eax - 0x598]
mov byte [ebp - 0xc8], cl
movzx edx, byte [ebp - 0xd4]
mov al, byte [ebp + edx - 0x598]
mov byte [ebp - 0xcb], al
mov dword [ebp - 0x398], 0x38
cmp dword [ebp - 0x398], 2
jle 0x5187f3
mov ecx, dword [ebp - 0x398]
and ecx, 1
jne 0x5187f3
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0x114], 0
mov edx, dword [ebp - 0x114]
add edx, 1
mov dword [ebp - 0x114], edx
mov dword [ebp - 0x16c], 0
mov eax, dword [ebp - 0xdc]
shl eax, 1
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x12c], 0
mov ecx, dword [ebp - 0x170]
add ecx, dword [ebp - 0x16c]
movzx edx, byte [ecx]
add edx, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x148], 0
mov eax, dword [ebp - 0x148]
add eax, 0xec
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x174], 0
mov ecx, dword [ebp - 0xdc]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x174], edx
mov dword [ebp - 0x130], 0
mov eax, dword [ebp - 0x170]
add eax, dword [ebp - 0x174]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x130]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x134], 0
mov edx, dword [ebp - 0x134]
add edx, 0x54
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x138], 0
mov eax, dword [ebp - 0x12c]
sub eax, dword [ebp - 0x148]
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x13c], 0
mov ecx, dword [ebp - 0x130]
sub ecx, dword [ebp - 0x134]
add ecx, dword [ebp - 0x13c]
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x178], 0
mov edx, dword [ebp - 0x138]
shl edx, 4
mov dword [ebp - 0x178], edx
mov dword [ebp - 0x17c], 0
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x180], 0
mov ecx, dword [ebp - 0x178]
or ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x180], ecx
mov byte [ebp - 0xd1], 0
mov dl, byte [ebp - 0x180]
mov byte [ebp - 0xd1], dl
mov byte [ebp - 0xcd], 0
movzx eax, byte [ebp - 0xcb]
mov cl, byte [ebp + eax - 0x598]
mov byte [ebp - 0xcd], cl
movzx edx, byte [ebp - 0xc6]
movzx eax, byte [ebp + edx - 0x598]
mov dword [ebp - 0x5d4], eax
mov cl, byte [ebp - 0xc6]
add cl, 1
mov byte [ebp - 0xc6], cl
movzx edx, byte [ebp - 0xc7]
add edx, dword [ebp - 0x5d4]
mov byte [ebp - 0xc7], dl
movzx eax, byte [ebp - 0xc7]
movzx ecx, byte [ebp - 0xcb]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc8]
movzx ecx, byte [ebp - 0xc7]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc6]
movzx ecx, byte [ebp - 0xc8]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc6]
mov cl, byte [ebp - 0xcd]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xcd]
movzx eax, byte [ebp + edx - 0x598]
movzx ecx, byte [ebp - 0xd2]
add ecx, eax
mov byte [ebp - 0xd2], cl
movzx edx, byte [ebp - 0xd1]
movzx eax, byte [ebp - 0xc7]
movzx ecx, byte [ebp + eax - 0x598]
movzx eax, byte [ebp - 0xc6]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x598]
xor edx, ecx
movzx eax, byte [ebp - 0xc8]
movzx ecx, byte [ebp + eax - 0x598]
movzx eax, byte [ebp - 0xcb]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
movzx eax, byte [ebp - 0xd2]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x598]
movzx eax, byte [ebp + ecx - 0x598]
xor edx, eax
mov byte [ebp - 0xc8], dl
mov cl, byte [ebp - 0xd1]
mov byte [ebp - 0xcb], cl
mov dl, byte [ebp - 0xc8]
mov byte [ebp - 0xd6], dl
cmp dword [ebp - 0xdc], 0
jle 0x517335
movsx ax, byte [ebp - 0xd6]
mov ecx, dword [ebp - 0xdc]
mov word [ebp + ecx*2 - 0x4a], ax
mov edx, dword [ebp - 0xdc]
add edx, 1
mov dword [ebp - 0xdc], edx
mov eax, dword [ebp - 0x114]
add eax, 1
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0xdc]
shl ecx, 1
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x170]
add edx, dword [ebp - 0x16c]
movzx eax, byte [edx]
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x148], 0xec
mov ecx, dword [ebp - 0xdc]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x170]
add eax, dword [ebp - 0x174]
movzx ecx, byte [eax]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x134], 0x54
mov edx, dword [ebp - 0x12c]
sub edx, dword [ebp - 0x148]
mov dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x130]
sub eax, dword [ebp - 0x134]
mov dword [ebp - 0x13c], eax
mov ecx, dword [ebp - 0x138]
shl ecx, 4
mov dword [ebp - 0x178], ecx
mov edx, dword [ebp - 0x13c]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x178]
or eax, dword [ebp - 0x17c]
mov dword [ebp - 0x180], eax
mov cl, byte [ebp - 0x180]
mov byte [ebp - 0xd1], cl
movzx edx, byte [ebp - 0xcb]
mov al, byte [ebp + edx - 0x598]
mov byte [ebp - 0xcd], al
movzx ecx, byte [ebp - 0xc6]
movzx edx, byte [ebp + ecx - 0x598]
mov dword [ebp - 0x5d8], edx
mov al, byte [ebp - 0xc6]
add al, 1
mov byte [ebp - 0xc6], al
movzx ecx, byte [ebp - 0xc7]
add ecx, dword [ebp - 0x5d8]
mov byte [ebp - 0xc7], cl
movzx edx, byte [ebp - 0xc7]
movzx eax, byte [ebp - 0xcb]
mov cl, byte [ebp + edx - 0x598]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xc8]
movzx eax, byte [ebp - 0xc7]
mov cl, byte [ebp + edx - 0x598]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xc6]
movzx eax, byte [ebp - 0xc8]
mov cl, byte [ebp + edx - 0x598]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xc6]
mov al, byte [ebp - 0xcd]
mov byte [ebp + edx - 0x598], al
movzx ecx, byte [ebp - 0xcd]
movzx edx, byte [ebp + ecx - 0x598]
movzx eax, byte [ebp - 0xd2]
add eax, edx
mov byte [ebp - 0xd2], al
movzx ecx, byte [ebp - 0xd1]
movzx edx, byte [ebp - 0xc7]
movzx eax, byte [ebp + edx - 0x598]
movzx edx, byte [ebp - 0xc6]
movzx edx, byte [ebp + edx - 0x598]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x598]
xor ecx, eax
movzx edx, byte [ebp - 0xc8]
movzx eax, byte [ebp + edx - 0x598]
movzx edx, byte [ebp - 0xcb]
movzx edx, byte [ebp + edx - 0x598]
add eax, edx
movzx edx, byte [ebp - 0xd2]
movzx edx, byte [ebp + edx - 0x598]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x598]
movzx edx, byte [ebp + eax - 0x598]
xor ecx, edx
mov byte [ebp - 0xc8], cl
mov al, byte [ebp - 0xd1]
mov byte [ebp - 0xcb], al
mov cl, byte [ebp - 0xc8]
mov byte [ebp - 0xd6], cl
cmp dword [ebp - 0xdc], 0
jle 0x517594
movsx dx, byte [ebp - 0xd6]
mov eax, dword [ebp - 0xdc]
mov word [ebp + eax*2 - 0x4a], dx
mov ecx, dword [ebp - 0xdc]
add ecx, 1
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0x114]
add edx, 1
mov dword [ebp - 0x114], edx
mov eax, dword [ebp - 0xdc]
shl eax, 1
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x170]
add ecx, dword [ebp - 0x16c]
movzx edx, byte [ecx]
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x148], 0xec
mov eax, dword [ebp - 0xdc]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x174], ecx
mov edx, dword [ebp - 0x170]
add edx, dword [ebp - 0x174]
movzx eax, byte [edx]
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], 0x54
mov ecx, dword [ebp - 0x12c]
sub ecx, dword [ebp - 0x148]
mov dword [ebp - 0x138], ecx
mov edx, dword [ebp - 0x130]
sub edx, dword [ebp - 0x134]
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x138]
shl eax, 4
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x13c]
mov dword [ebp - 0x17c], ecx
mov edx, dword [ebp - 0x178]
or edx, dword [ebp - 0x17c]
mov dword [ebp - 0x180], edx
mov al, byte [ebp - 0x180]
mov byte [ebp - 0xd1], al
movzx ecx, byte [ebp - 0xcb]
mov dl, byte [ebp + ecx - 0x598]
mov byte [ebp - 0xcd], dl
movzx eax, byte [ebp - 0xc6]
movzx ecx, byte [ebp + eax - 0x598]
mov dword [ebp - 0x5dc], ecx
mov dl, byte [ebp - 0xc6]
add dl, 1
mov byte [ebp - 0xc6], dl
movzx eax, byte [ebp - 0xc7]
add eax, dword [ebp - 0x5dc]
mov byte [ebp - 0xc7], al
movzx ecx, byte [ebp - 0xc7]
movzx edx, byte [ebp - 0xcb]
mov al, byte [ebp + ecx - 0x598]
mov byte [ebp + edx - 0x598], al
movzx ecx, byte [ebp - 0xc8]
movzx edx, byte [ebp - 0xc7]
mov al, byte [ebp + ecx - 0x598]
mov byte [ebp + edx - 0x598], al
movzx ecx, byte [ebp - 0xc6]
movzx edx, byte [ebp - 0xc8]
mov al, byte [ebp + ecx - 0x598]
mov byte [ebp + edx - 0x598], al
movzx ecx, byte [ebp - 0xc6]
mov dl, byte [ebp - 0xcd]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xcd]
movzx ecx, byte [ebp + eax - 0x598]
movzx edx, byte [ebp - 0xd2]
add edx, ecx
mov byte [ebp - 0xd2], dl
movzx eax, byte [ebp - 0xd1]
movzx ecx, byte [ebp - 0xc7]
movzx edx, byte [ebp + ecx - 0x598]
movzx ecx, byte [ebp - 0xc6]
movzx ecx, byte [ebp + ecx - 0x598]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x598]
xor eax, edx
movzx ecx, byte [ebp - 0xc8]
movzx edx, byte [ebp + ecx - 0x598]
movzx ecx, byte [ebp - 0xcb]
movzx ecx, byte [ebp + ecx - 0x598]
add edx, ecx
movzx ecx, byte [ebp - 0xd2]
movzx ecx, byte [ebp + ecx - 0x598]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x598]
movzx ecx, byte [ebp + edx - 0x598]
xor eax, ecx
mov byte [ebp - 0xc8], al
mov dl, byte [ebp - 0xd1]
mov byte [ebp - 0xcb], dl
mov al, byte [ebp - 0xc8]
mov byte [ebp - 0xd6], al
cmp dword [ebp - 0xdc], 0
jle 0x5177f6
movsx cx, byte [ebp - 0xd6]
mov edx, dword [ebp - 0xdc]
mov word [ebp + edx*2 - 0x4a], cx
mov eax, dword [ebp - 0x114]
add eax, 0xb
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0xdc]
add ecx, 1
mov dword [ebp - 0x338], ecx
jmp 0x517825
mov edx, dword [ebp - 0x338]
add edx, 1
mov dword [ebp - 0x338], edx
mov eax, dword [ebp - 0x338]
cmp eax, dword [ebp - 0x114]
jge 0x51804d
mov ecx, dword [ebp - 0xdc]
add ecx, 1
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0xdc]
shl edx, 1
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x170]
add eax, dword [ebp - 0x16c]
movzx ecx, byte [eax]
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x148], 0xec
mov edx, dword [ebp - 0xdc]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x170]
add ecx, dword [ebp - 0x174]
movzx edx, byte [ecx]
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x134], 0x54
mov eax, dword [ebp - 0x12c]
sub eax, dword [ebp - 0x148]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x130]
sub ecx, dword [ebp - 0x134]
mov dword [ebp - 0x13c], ecx
mov edx, dword [ebp - 0x138]
shl edx, 4
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x178]
or ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x180], ecx
mov dl, byte [ebp - 0x180]
mov byte [ebp - 0xd1], dl
movzx eax, byte [ebp - 0xcb]
mov cl, byte [ebp + eax - 0x598]
mov byte [ebp - 0xcd], cl
movzx edx, byte [ebp - 0xc6]
movzx eax, byte [ebp + edx - 0x598]
mov dword [ebp - 0x5e0], eax
mov cl, byte [ebp - 0xc6]
add cl, 1
mov byte [ebp - 0xc6], cl
movzx edx, byte [ebp - 0xc7]
add edx, dword [ebp - 0x5e0]
mov byte [ebp - 0xc7], dl
movzx eax, byte [ebp - 0xc7]
movzx ecx, byte [ebp - 0xcb]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc8]
movzx ecx, byte [ebp - 0xc7]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc6]
movzx ecx, byte [ebp - 0xc8]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc6]
mov cl, byte [ebp - 0xcd]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xcd]
movzx eax, byte [ebp + edx - 0x598]
movzx ecx, byte [ebp - 0xd2]
add ecx, eax
mov byte [ebp - 0xd2], cl
movzx edx, byte [ebp - 0xd1]
movzx eax, byte [ebp - 0xc7]
movzx ecx, byte [ebp + eax - 0x598]
movzx eax, byte [ebp - 0xc6]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x598]
xor edx, ecx
movzx eax, byte [ebp - 0xc8]
movzx ecx, byte [ebp + eax - 0x598]
movzx eax, byte [ebp - 0xcb]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
movzx eax, byte [ebp - 0xd2]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x598]
movzx eax, byte [ebp + ecx - 0x598]
xor edx, eax
mov byte [ebp - 0xc8], dl
mov cl, byte [ebp - 0xd1]
mov byte [ebp - 0xcb], cl
movss xmm0, dword [0x583a4c]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [0x583a34]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [0x583a10]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [0x5839e4]
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [0x5839b0]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [0x583980]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0x10c]
subss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [ebp - 0x10c]
addss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [ebp - 0x100]
mulss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xf0]
subss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0xf4]
mulss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0xf4]
subss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0xec]
comiss xmm0, dword [ebp - 0x100]
jbe 0x517f90
movss xmm0, dword [ebp - 0x100]
addss xmm0, dword [ebp - 0xf4]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xf0]
mulss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0xf0]
addss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0xec]
subss xmm0, dword [ebp - 0x100]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0x100]
addss xmm0, dword [ebp - 0xf4]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xf0]
mulss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0x110]
addss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0x10c]
mulss xmm0, dword [ebp - 0x110]
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [ebp - 0x10c]
subss xmm0, dword [ebp - 0x110]
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [ebp - 0xf4]
subss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0x110]
addss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0x100]
addss xmm0, dword [ebp - 0xf4]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xec]
comiss xmm0, dword [ebp - 0xf4]
jbe 0x517efb
movss xmm0, dword [ebp - 0xec]
subss xmm0, dword [ebp - 0x100]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0xf4]
addss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0x110]
subss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0x100]
mulss xmm0, dword [ebp - 0xf4]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xf0]
divss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0xf0]
mulss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0x110]
mulss xmm0, dword [ebp - 0x100]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0xf0]
subss xmm0, dword [ebp - 0x110]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0x10c]
divss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [ebp - 0x110]
addss xmm0, dword [ebp - 0x100]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0xec]
mulss xmm0, dword [ebp - 0xf4]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0x100]
subss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xec]
comiss xmm0, dword [ebp - 0xf4]
jbe 0x517e66
movss xmm0, dword [ebp - 0x110]
mulss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0xf0]
subss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0x10c]
divss xmm0, dword [ebp - 0x110]
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [ebp - 0x110]
addss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0x100]
addss xmm0, dword [ebp - 0xf4]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xf4]
subss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0xf4], xmm0
jmp 0x517ef6
movss xmm0, dword [ebp - 0xf4]
subss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0xf0]
addss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0xec]
addss xmm0, dword [ebp - 0x100]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0xec]
mulss xmm0, dword [ebp - 0x100]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0xf4]
divss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0x10c]
addss xmm0, dword [ebp - 0x110]
movss dword [ebp - 0x10c], xmm0
jmp 0x517f8b
movss xmm0, dword [ebp - 0xf4]
divss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0xec]
divss xmm0, dword [ebp - 0x100]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0x10c]
mulss xmm0, dword [ebp - 0x110]
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [ebp - 0x110]
divss xmm0, dword [ebp - 0xec]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0x100]
mulss xmm0, dword [ebp - 0xf4]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xf4]
subss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0xf4], xmm0
jmp 0x51802c
movss xmm0, dword [ebp - 0xf0]
mulss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0xf4]
subss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0xec]
addss xmm0, dword [ebp - 0x100]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0xf0]
mulss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0xec]
subss xmm0, dword [ebp - 0x100]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0xf4]
addss xmm0, dword [ebp - 0xf0]
movss dword [ebp - 0xf4], xmm0
mov dl, byte [ebp - 0xc8]
mov byte [ebp - 0xd6], dl
cmp dword [ebp - 0xdc], 0
jle 0x518048
movsx ax, byte [ebp - 0xd6]
mov ecx, dword [ebp - 0xdc]
mov word [ebp + ecx*2 - 0x4a], ax
jmp 0x517816
mov edx, dword [ebp - 0x114]
add edx, 1
mov dword [ebp - 0x114], edx
mov eax, dword [ebp - 0x114]
add eax, 0xc
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0xdc]
add ecx, 1
mov dword [ebp - 0x33c], ecx
jmp 0x51808b
mov edx, dword [ebp - 0x33c]
add edx, 1
mov dword [ebp - 0x33c], edx
mov eax, dword [ebp - 0x33c]
cmp eax, dword [ebp - 0x114]
jge 0x5182f5
mov ecx, dword [ebp - 0xdc]
add ecx, 1
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0xdc]
shl edx, 1
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x170]
add eax, dword [ebp - 0x16c]
movzx ecx, byte [eax]
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x148], 0xec
mov edx, dword [ebp - 0xdc]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x170]
add ecx, dword [ebp - 0x174]
movzx edx, byte [ecx]
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x134], 0x54
mov eax, dword [ebp - 0x12c]
sub eax, dword [ebp - 0x148]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x130]
sub ecx, dword [ebp - 0x134]
mov dword [ebp - 0x13c], ecx
mov edx, dword [ebp - 0x138]
shl edx, 4
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x178]
or ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x180], ecx
mov dl, byte [ebp - 0x180]
mov byte [ebp - 0xd1], dl
movzx eax, byte [ebp - 0xcb]
mov cl, byte [ebp + eax - 0x598]
mov byte [ebp - 0xcd], cl
movzx edx, byte [ebp - 0xc6]
movzx eax, byte [ebp + edx - 0x598]
mov dword [ebp - 0x5fc], eax
mov cl, byte [ebp - 0xc6]
add cl, 1
mov byte [ebp - 0xc6], cl
movzx edx, byte [ebp - 0xc7]
add edx, dword [ebp - 0x5fc]
mov byte [ebp - 0xc7], dl
movzx eax, byte [ebp - 0xc7]
movzx ecx, byte [ebp - 0xcb]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc8]
movzx ecx, byte [ebp - 0xc7]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc6]
movzx ecx, byte [ebp - 0xc8]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc6]
mov cl, byte [ebp - 0xcd]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xcd]
movzx eax, byte [ebp + edx - 0x598]
movzx ecx, byte [ebp - 0xd2]
add ecx, eax
mov byte [ebp - 0xd2], cl
movzx edx, byte [ebp - 0xd1]
movzx eax, byte [ebp - 0xc7]
movzx ecx, byte [ebp + eax - 0x598]
movzx eax, byte [ebp - 0xc6]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x598]
xor edx, ecx
movzx eax, byte [ebp - 0xc8]
movzx ecx, byte [ebp + eax - 0x598]
movzx eax, byte [ebp - 0xcb]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
movzx eax, byte [ebp - 0xd2]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x598]
movzx eax, byte [ebp + ecx - 0x598]
xor edx, eax
mov byte [ebp - 0xc8], dl
mov cl, byte [ebp - 0xd1]
mov byte [ebp - 0xcb], cl
mov dl, byte [ebp - 0xc8]
mov byte [ebp - 0xd6], dl
cmp dword [ebp - 0xdc], 0
jle 0x5182f0
movsx ax, byte [ebp - 0xd6]
mov ecx, dword [ebp - 0xdc]
mov word [ebp + ecx*2 - 0x4a], ax
jmp 0x51807c
mov edx, dword [ebp - 0x114]
add edx, 1
mov dword [ebp - 0x114], edx
mov eax, dword [ebp - 0xdc]
add eax, 1
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 0x114]
add ecx, 1
mov dword [ebp - 0x114], ecx
mov edx, dword [ebp - 0xdc]
shl edx, 1
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x170]
add eax, dword [ebp - 0x16c]
movzx ecx, byte [eax]
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x148], 0xec
mov edx, dword [ebp - 0xdc]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x170]
add ecx, dword [ebp - 0x174]
movzx edx, byte [ecx]
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x134], 0x54
mov eax, dword [ebp - 0x12c]
sub eax, dword [ebp - 0x148]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x130]
sub ecx, dword [ebp - 0x134]
mov dword [ebp - 0x13c], ecx
mov edx, dword [ebp - 0x138]
shl edx, 4
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x178]
or ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x180], ecx
mov dl, byte [ebp - 0x180]
mov byte [ebp - 0xd1], dl
movzx eax, byte [ebp - 0xcb]
mov cl, byte [ebp + eax - 0x598]
mov byte [ebp - 0xcd], cl
movzx edx, byte [ebp - 0xc6]
movzx eax, byte [ebp + edx - 0x598]
mov dword [ebp - 0x5e8], eax
mov cl, byte [ebp - 0xc6]
add cl, 1
mov byte [ebp - 0xc6], cl
movzx edx, byte [ebp - 0xc7]
add edx, dword [ebp - 0x5e8]
mov byte [ebp - 0xc7], dl
movzx eax, byte [ebp - 0xc7]
movzx ecx, byte [ebp - 0xcb]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc8]
movzx ecx, byte [ebp - 0xc7]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc6]
movzx ecx, byte [ebp - 0xc8]
mov dl, byte [ebp + eax - 0x598]
mov byte [ebp + ecx - 0x598], dl
movzx eax, byte [ebp - 0xc6]
mov cl, byte [ebp - 0xcd]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xcd]
movzx eax, byte [ebp + edx - 0x598]
movzx ecx, byte [ebp - 0xd2]
add ecx, eax
mov byte [ebp - 0xd2], cl
movzx edx, byte [ebp - 0xd1]
movzx eax, byte [ebp - 0xc7]
movzx ecx, byte [ebp + eax - 0x598]
movzx eax, byte [ebp - 0xc6]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x598]
xor edx, ecx
movzx eax, byte [ebp - 0xc8]
movzx ecx, byte [ebp + eax - 0x598]
movzx eax, byte [ebp - 0xcb]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
movzx eax, byte [ebp - 0xd2]
movzx eax, byte [ebp + eax - 0x598]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x598]
movzx eax, byte [ebp + ecx - 0x598]
xor edx, eax
mov byte [ebp - 0xc8], dl
mov cl, byte [ebp - 0xd1]
mov byte [ebp - 0xcb], cl
mov dl, byte [ebp - 0xc8]
mov byte [ebp - 0xd6], dl
cmp dword [ebp - 0xdc], 0
jle 0x518566
movsx ax, byte [ebp - 0xd6]
mov ecx, dword [ebp - 0xdc]
mov word [ebp + ecx*2 - 0x4a], ax
mov edx, dword [ebp - 0xdc]
add edx, 1
mov dword [ebp - 0xdc], edx
mov eax, dword [ebp - 0x114]
add eax, 1
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0xdc]
shl ecx, 1
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x170]
add edx, dword [ebp - 0x16c]
movzx eax, byte [edx]
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x148], 0xec
mov ecx, dword [ebp - 0xdc]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x170]
add eax, dword [ebp - 0x174]
movzx ecx, byte [eax]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x134], 0x54
mov edx, dword [ebp - 0x12c]
sub edx, dword [ebp - 0x148]
mov dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x130]
sub eax, dword [ebp - 0x134]
mov dword [ebp - 0x13c], eax
mov ecx, dword [ebp - 0x138]
shl ecx, 4
mov dword [ebp - 0x178], ecx
mov edx, dword [ebp - 0x13c]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x178]
or eax, dword [ebp - 0x17c]
mov dword [ebp - 0x180], eax
mov cl, byte [ebp - 0x180]
mov byte [ebp - 0xd1], cl
movzx edx, byte [ebp - 0xcb]
mov al, byte [ebp + edx - 0x598]
mov byte [ebp - 0xcd], al
movzx ecx, byte [ebp - 0xc6]
movzx edx, byte [ebp + ecx - 0x598]
mov dword [ebp - 0x5ec], edx
mov al, byte [ebp - 0xc6]
add al, 1
mov byte [ebp - 0xc6], al
movzx ecx, byte [ebp - 0xc7]
add ecx, dword [ebp - 0x5ec]
mov byte [ebp - 0xc7], cl
movzx edx, byte [ebp - 0xc7]
movzx eax, byte [ebp - 0xcb]
mov cl, byte [ebp + edx - 0x598]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xc8]
movzx eax, byte [ebp - 0xc7]
mov cl, byte [ebp + edx - 0x598]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xc6]
movzx eax, byte [ebp - 0xc8]
mov cl, byte [ebp + edx - 0x598]
mov byte [ebp + eax - 0x598], cl
movzx edx, byte [ebp - 0xc6]
mov al, byte [ebp - 0xcd]
mov byte [ebp + edx - 0x598], al
movzx ecx, byte [ebp - 0xcd]
movzx edx, byte [ebp + ecx - 0x598]
movzx eax, byte [ebp - 0xd2]
add eax, edx
mov byte [ebp - 0xd2], al
movzx ecx, byte [ebp - 0xd1]
movzx edx, byte [ebp - 0xc7]
movzx eax, byte [ebp + edx - 0x598]
movzx edx, byte [ebp - 0xc6]
movzx edx, byte [ebp + edx - 0x598]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x598]
xor ecx, eax
movzx edx, byte [ebp - 0xc8]
movzx eax, byte [ebp + edx - 0x598]
movzx edx, byte [ebp - 0xcb]
movzx edx, byte [ebp + edx - 0x598]
add eax, edx
movzx edx, byte [ebp - 0xd2]
movzx edx, byte [ebp + edx - 0x598]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x598]
movzx edx, byte [ebp + eax - 0x598]
xor ecx, edx
mov byte [ebp - 0xc8], cl
mov al, byte [ebp - 0xd1]
mov byte [ebp - 0xcb], al
mov cl, byte [ebp - 0xc8]
mov byte [ebp - 0xd6], cl
cmp dword [ebp - 0xdc], 0
jle 0x5187c5
movsx dx, byte [ebp - 0xd6]
mov eax, dword [ebp - 0xdc]
mov word [ebp + eax*2 - 0x4a], dx
mov ecx, 2
imul edx, ecx, 0x1b
mov dword [ebp - 0x394], edx
cmp dword [ebp - 0x394], 0x38
jae 0x5187de
jmp 0x5187e4
call fcn.0051c285
nop
xor eax, eax
mov ecx, dword [ebp - 0x394]
mov word [ebp + ecx - 0x48], ax
jmp 0x518845
mov dword [ebp - 0x218], 0
jmp 0x51880e
mov edx, dword [ebp - 0x218]
add edx, 1
mov dword [ebp - 0x218], edx
cmp dword [ebp - 0x218], 0x1c
jge 0x518845
mov eax, dword [ebp - 0x218]
shl eax, 1
mov dword [ebp - 0x390], eax
cmp dword [ebp - 0x390], 0x38
jae 0x518830
jmp 0x518836
call fcn.0051c285
nop
xor ecx, ecx
mov edx, dword [ebp - 0x390]
mov word [ebp + edx - 0x48], cx
jmp 0x5187ff
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xb8], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x214], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x1e8], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x1e8], xmm0
jmp 0x518894
movsd xmm0, qword [ebp - 0x1e8]
addsd xmm0, qword [0x580ab8]
movsd qword [ebp - 0x1e8], xmm0
movsd xmm0, qword [0x5837a8]
comisd xmm0, xmmword [ebp - 0x1e8]
jbe 0x518945
movsd xmm0, qword [0x583758]
mulsd xmm0, qword [ebp - 0x1e8]
mulsd xmm0, qword [ebp - 0x1e8]
movsd xmm1, qword [ebp - 0x1e8]
mulsd xmm1, qword [ebp - 0x1e8]
subsd xmm0, xmm1
movsd xmm1, qword [0x581e68]
mulsd xmm1, qword [ebp - 0x1e8]
mulsd xmm1, qword [ebp - 0x1e8]
addsd xmm1, qword [0x5836c0]
divsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x214]
movsd qword [ebp - 0x214], xmm0
movsd xmm0, qword [ebp - 0x214]
comisd xmm0, xmmword [0x5836f8]
jbe 0x518940
movsd xmm0, qword [0x583640]
mulsd xmm0, qword [ebp - 0x1e8]
movsd xmm1, qword [ebp - 0x214]
subsd xmm1, xmm0
movsd qword [ebp - 0x214], xmm1
jmp 0x51887c
xorps xmm0, xmm0
comisd xmm0, xmmword [ebp - 0x214]
jbe 0x5189b8
push esi
inc edi
aas
xor al, 0x57
push esp
jno 0x5189bf
inc eax
and ebp, dword [ebx]
inc esp
xor bl, byte [ecx + 0x4e]
xor al, 0x2c
dec ebx
push 0x35
insd dword es:[edi], dx
and esp, dword [edx - 0x31]
inc edi
retf 0xcc4f
mov dword [ebp - 0xc4], 0x51896b
mov dword [ecx], edx
mov dword [ebp - 0xb8], 0x518952
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x5ac], ecx
mov byte [ebp - 0x19a], 0x1d
mov dword [ebp - 0x120], 0
jmp 0x518a06
mov edx, dword [ebp - 0x120]
add edx, 1
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x120], 0x100
jae 0x518a27
mov eax, dword [ebp - 0x120]
mov cl, byte [ebp - 0x120]
mov byte [ebp + eax - 0x498], cl
jmp 0x5189f7
mov dword [ebp - 0x1d0], 0
mov byte [ebp - 0xd3], 0
mov dword [ebp - 0x120], 0xff
jmp 0x518a53
mov edx, dword [ebp - 0x120]
sub edx, 1
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x120], 0
jbe 0x518cc3
mov dword [ebp - 0x340], 0
mov dword [ebp - 0x228], 1
mov eax, dword [ebp - 0x228]
cmp eax, dword [ebp - 0x120]
jae 0x518a94
mov ecx, dword [ebp - 0x228]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x228], edx
jmp 0x518a74
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x38c], eax
cmp dword [ebp - 0x38c], 3
ja case.default.0x518ab3
mov ecx, dword [ebp - 0x38c]
jmp dword [ecx*4 + 0x51acb8]
movzx edx, byte [ebp - 0xd3]
movzx ebx, byte [ebp + edx - 0x498]
movsd xmm0, qword [ebp - 0x214]
call fcn.0051c6e0
and eax, 0xff
add ebx, eax
mov byte [ebp - 0xd3], bl
jmp 0x518b9c
movzx eax, byte [ebp - 0xd3]
movzx ebx, byte [ebp + eax - 0x498]
movsd xmm0, qword [ebp - 0x214]
call fcn.0051c6e0
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 0xd3], bl
jmp 0x518b9c
movzx ecx, byte [ebp - 0xd3]
movzx ebx, byte [ebp + ecx - 0x498]
movsd xmm0, qword [ebp - 0x214]
call fcn.0051c6e0
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 0xd3], bl
jmp 0x518b9c
movzx edx, byte [ebp - 0xd3]
movzx ebx, byte [ebp + edx - 0x498]
movsd xmm0, qword [ebp - 0x214]
call fcn.0051c6e0
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 0xd3], bl
jmp 0x518b9c
movzx eax, byte [ebp - 0xd3]
movzx ecx, byte [ebp + eax - 0x498]
mov edx, dword [ebp - 0x5ac]
add edx, dword [ebp - 0x1d0]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0xd3], cl
mov ecx, dword [ebp - 0x1d0]
add ecx, 1
mov dword [ebp - 0x1d0], ecx
movzx edx, byte [ebp - 0x19a]
cmp dword [ebp - 0x1d0], edx
jb 0x518bda
mov dword [ebp - 0x1d0], 0
movzx eax, byte [ebp - 0x19a]
movzx ecx, byte [ebp - 0xd3]
add ecx, eax
mov byte [ebp - 0xd3], cl
movzx edx, byte [ebp - 0xd3]
and edx, dword [ebp - 0x228]
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x340]
add eax, 1
mov dword [ebp - 0x340], eax
cmp dword [ebp - 0x340], 0xb
jbe 0x518c19
mov eax, dword [ebp - 0x1b8]
xor edx, edx
div dword [ebp - 0x120]
mov dword [ebp - 0x1b8], edx
mov ecx, dword [ebp - 0x1b8]
cmp ecx, dword [ebp - 0x120]
ja 0x518a94
mov edx, dword [ebp - 0x120]
cmp edx, dword [ebp - 0x1b8]
je 0x518cbe
mov eax, dword [ebp - 0x1b8]
movzx ecx, byte [ebp + eax - 0x498]
mov edx, dword [ebp - 0x120]
movzx eax, byte [ebp + edx - 0x498]
xor eax, ecx
mov ecx, dword [ebp - 0x120]
mov byte [ebp + ecx - 0x498], al
mov edx, dword [ebp - 0x120]
movzx eax, byte [ebp + edx - 0x498]
mov ecx, dword [ebp - 0x1b8]
movzx edx, byte [ebp + ecx - 0x498]
xor edx, eax
mov eax, dword [ebp - 0x1b8]
mov byte [ebp + eax - 0x498], dl
mov ecx, dword [ebp - 0x1b8]
movzx edx, byte [ebp + ecx - 0x498]
mov eax, dword [ebp - 0x120]
movzx ecx, byte [ebp + eax - 0x498]
xor ecx, edx
mov edx, dword [ebp - 0x120]
mov byte [ebp + edx - 0x498], cl
jmp 0x518a44
mov eax, 1
shl eax, 0
mov cl, byte [ebp + eax - 0x498]
mov byte [ebp - 0xc5], cl
mov edx, 1
imul eax, edx, 3
mov cl, byte [ebp + eax - 0x498]
mov byte [ebp - 0xc9], cl
mov edx, 1
imul eax, edx, 5
mov cl, byte [ebp + eax - 0x498]
mov byte [ebp - 0xcf], cl
mov edx, 1
imul eax, edx, 7
mov cl, byte [ebp + eax - 0x498]
mov byte [ebp - 0xca], cl
movzx edx, byte [ebp - 0xd3]
mov al, byte [ebp + edx - 0x498]
mov byte [ebp - 0xcc], al
mov dword [ebp - 0x388], 0x48
cmp dword [ebp - 0x388], 2
jle 0x51ab1b
mov ecx, dword [ebp - 0x388]
and ecx, 1
jne 0x51ab1b
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0x118], 0
mov edx, dword [ebp - 0x118]
add edx, 1
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x184], 0
mov eax, dword [ebp - 0xe0]
shl eax, 1
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x140], 0
mov ecx, dword [ebp - 0x168]
add ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
add edx, dword [ebp - 0x140]
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x144], 0
mov eax, dword [ebp - 0x144]
add eax, 0xc7
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x188], 0
mov ecx, dword [ebp - 0xe0]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x188], edx
mov dword [ebp - 0x158], 0
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x188]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x158]
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x14c], 0
mov edx, dword [ebp - 0x14c]
add edx, 0x42
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x150], 0
mov eax, dword [ebp - 0x140]
sub eax, dword [ebp - 0x144]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x154], 0
mov ecx, dword [ebp - 0x158]
sub ecx, dword [ebp - 0x14c]
add ecx, dword [ebp - 0x154]
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x15c], 0
mov edx, dword [ebp - 0x150]
shl edx, 4
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0x160], 0
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x164], 0
mov ecx, dword [ebp - 0x15c]
or ecx, dword [ebp - 0x160]
mov dword [ebp - 0x164], ecx
mov byte [ebp - 0xce], 0
mov dl, byte [ebp - 0x164]
mov byte [ebp - 0xce], dl
mov byte [ebp - 0xd0], 0
movzx eax, byte [ebp - 0xcc]
mov cl, byte [ebp + eax - 0x498]
mov byte [ebp - 0xd0], cl
movzx edx, byte [ebp - 0xc5]
movzx eax, byte [ebp + edx - 0x498]
mov dword [ebp - 0x5b0], eax
mov cl, byte [ebp - 0xc5]
add cl, 1
mov byte [ebp - 0xc5], cl
movzx edx, byte [ebp - 0xc9]
add edx, dword [ebp - 0x5b0]
mov byte [ebp - 0xc9], dl
movzx eax, byte [ebp - 0xc9]
movzx ecx, byte [ebp - 0xcc]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xca]
movzx ecx, byte [ebp - 0xc9]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xc5]
movzx ecx, byte [ebp - 0xca]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xc5]
mov cl, byte [ebp - 0xd0]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xd0]
movzx eax, byte [ebp + edx - 0x498]
movzx ecx, byte [ebp - 0xcf]
add ecx, eax
mov byte [ebp - 0xcf], cl
movzx edx, byte [ebp - 0xce]
movzx eax, byte [ebp - 0xc9]
movzx ecx, byte [ebp + eax - 0x498]
movzx eax, byte [ebp - 0xc5]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x498]
xor edx, ecx
movzx eax, byte [ebp - 0xca]
movzx ecx, byte [ebp + eax - 0x498]
movzx eax, byte [ebp - 0xcc]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
movzx eax, byte [ebp - 0xcf]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x498]
movzx eax, byte [ebp + ecx - 0x498]
xor edx, eax
mov byte [ebp - 0xca], dl
mov cl, byte [ebp - 0xce]
mov byte [ebp - 0xcc], cl
mov dl, byte [ebp - 0xca]
mov byte [ebp - 0xd5], dl
cmp dword [ebp - 0xe0], 0
jle 0x51905b
movsx ax, byte [ebp - 0xd5]
mov ecx, dword [ebp - 0xe0]
mov word [ebp + ecx*2 - 0x92], ax
mov edx, dword [ebp - 0xe0]
add edx, 1
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp - 0x118]
add eax, 1
mov dword [ebp - 0x118], eax
movss xmm0, dword [0x581cc8]
movss dword [ebp - 0x128], xmm0
movss xmm0, dword [0x583a30]
movss dword [ebp - 0x1bc], xmm0
movss xmm0, dword [0x583a14]
movss dword [ebp - 0x1a8], xmm0
movss xmm0, dword [0x5839e8]
movss dword [ebp - 0x1d8], xmm0
movss xmm0, dword [0x5839c4]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [0x58399c]
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [0x583974]
movss dword [ebp - 0x1a0], xmm0
movss xmm0, dword [ebp - 0x1d4]
mulss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [ebp - 0x1a4]
mulss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [ebp - 0x128]
subss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x128], xmm0
movss xmm0, dword [ebp - 0x128]
subss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x128], xmm0
movss xmm0, dword [ebp - 0x128]
mulss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x128], xmm0
movss xmm0, dword [ebp - 0x128]
addss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x128], xmm0
movss xmm0, dword [ebp - 0x128]
addss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x128], xmm0
movss xmm0, dword [ebp - 0x128]
comiss xmm0, dword [ebp - 0x1a0]
jbe 0x519261
movss xmm0, dword [ebp - 0x1a8]
mulss xmm0, dword [ebp - 0x1d8]
movss dword [ebp - 0x1a8], xmm0
movss xmm0, dword [ebp - 0x128]
subss xmm0, dword [ebp - 0x1bc]
movss dword [ebp - 0x128], xmm0
movss xmm0, dword [ebp - 0x128]
addss xmm0, dword [ebp - 0x1bc]
movss dword [ebp - 0x128], xmm0
movss xmm0, dword [ebp - 0x1d4]
addss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [ebp - 0x1d8]
addss xmm0, dword [ebp - 0x1a4]
movss dword [ebp - 0x1d8], xmm0
movss xmm0, dword [ebp - 0x1a8]
addss xmm0, dword [ebp - 0x1d8]
movss dword [ebp - 0x1a8], xmm0
movss xmm0, dword [ebp - 0x1bc]
addss xmm0, dword [ebp - 0x1a8]
movss dword [ebp - 0x1bc], xmm0
mov ecx, dword [ebp - 0xe0]
shl ecx, 1
mov dword [ebp - 0x184], ecx
jmp 0x519309
movss xmm0, dword [ebp - 0x1bc]
subss xmm0, dword [ebp - 0x1d8]
movss dword [ebp - 0x1bc], xmm0
movss xmm0, dword [ebp - 0x1a4]
mulss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [ebp - 0x1d4]
addss xmm0, dword [ebp - 0x128]
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [ebp - 0x1a4]
divss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [ebp - 0x1bc]
mulss xmm0, dword [ebp - 0x1d8]
movss dword [ebp - 0x1bc], xmm0
movss xmm0, dword [ebp - 0x1a8]
mulss xmm0, dword [ebp - 0x1a4]
movss dword [ebp - 0x1a8], xmm0
movss xmm0, dword [ebp - 0x1a8]
addss xmm0, dword [ebp - 0x1a4]
movss dword [ebp - 0x1a8], xmm0
mov edx, dword [ebp - 0x168]
add edx, dword [ebp - 0x184]
movzx eax, byte [edx]
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x144], 0xc7
mov ecx, dword [ebp - 0xe0]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x188]
movzx ecx, byte [eax]
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x14c], 0x42
mov edx, dword [ebp - 0x140]
sub edx, dword [ebp - 0x144]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x158]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x150]
shl ecx, 4
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x15c]
or eax, dword [ebp - 0x160]
mov dword [ebp - 0x164], eax
mov cl, byte [ebp - 0x164]
mov byte [ebp - 0xce], cl
movzx edx, byte [ebp - 0xcc]
mov al, byte [ebp + edx - 0x498]
mov byte [ebp - 0xd0], al
movzx ecx, byte [ebp - 0xc5]
movzx edx, byte [ebp + ecx - 0x498]
mov dword [ebp - 0x5b8], edx
mov al, byte [ebp - 0xc5]
add al, 1
mov byte [ebp - 0xc5], al
movzx ecx, byte [ebp - 0xc9]
add ecx, dword [ebp - 0x5b8]
mov byte [ebp - 0xc9], cl
movzx edx, byte [ebp - 0xc9]
movzx eax, byte [ebp - 0xcc]
mov cl, byte [ebp + edx - 0x498]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xca]
movzx eax, byte [ebp - 0xc9]
mov cl, byte [ebp + edx - 0x498]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xc5]
movzx eax, byte [ebp - 0xca]
mov cl, byte [ebp + edx - 0x498]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xc5]
mov al, byte [ebp - 0xd0]
mov byte [ebp + edx - 0x498], al
movzx ecx, byte [ebp - 0xd0]
movzx edx, byte [ebp + ecx - 0x498]
movzx eax, byte [ebp - 0xcf]
add eax, edx
mov byte [ebp - 0xcf], al
movzx ecx, byte [ebp - 0xce]
movzx edx, byte [ebp - 0xc9]
movzx eax, byte [ebp + edx - 0x498]
movzx edx, byte [ebp - 0xc5]
movzx edx, byte [ebp + edx - 0x498]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x498]
xor ecx, eax
movzx edx, byte [ebp - 0xca]
movzx eax, byte [ebp + edx - 0x498]
movzx edx, byte [ebp - 0xcc]
movzx edx, byte [ebp + edx - 0x498]
add eax, edx
movzx edx, byte [ebp - 0xcf]
movzx edx, byte [ebp + edx - 0x498]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x498]
movzx edx, byte [ebp + eax - 0x498]
xor ecx, edx
mov byte [ebp - 0xca], cl
mov al, byte [ebp - 0xce]
mov byte [ebp - 0xcc], al
mov cl, byte [ebp - 0xca]
mov byte [ebp - 0xd5], cl
cmp dword [ebp - 0xe0], 0
jle 0x51953f
movsx dx, byte [ebp - 0xd5]
mov eax, dword [ebp - 0xe0]
mov word [ebp + eax*2 - 0x92], dx
mov ecx, dword [ebp - 0xe0]
add ecx, 1
mov dword [ebp - 0xe0], ecx
mov edx, dword [ebp - 0x118]
add edx, 1
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0xe0]
shl eax, 1
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x168]
add ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x144], 0xc7
mov eax, dword [ebp - 0xe0]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x188], ecx
mov edx, dword [ebp - 0x168]
add edx, dword [ebp - 0x188]
movzx eax, byte [edx]
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x14c], 0x42
mov ecx, dword [ebp - 0x140]
sub ecx, dword [ebp - 0x144]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x158]
sub edx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x150]
shl eax, 4
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x160], ecx
mov edx, dword [ebp - 0x15c]
or edx, dword [ebp - 0x160]
mov dword [ebp - 0x164], edx
mov al, byte [ebp - 0x164]
mov byte [ebp - 0xce], al
movzx ecx, byte [ebp - 0xcc]
mov dl, byte [ebp + ecx - 0x498]
mov byte [ebp - 0xd0], dl
movzx eax, byte [ebp - 0xc5]
movzx ecx, byte [ebp + eax - 0x498]
mov dword [ebp - 0x5bc], ecx
mov dl, byte [ebp - 0xc5]
add dl, 1
mov byte [ebp - 0xc5], dl
movzx eax, byte [ebp - 0xc9]
add eax, dword [ebp - 0x5bc]
mov byte [ebp - 0xc9], al
movzx ecx, byte [ebp - 0xc9]
movzx edx, byte [ebp - 0xcc]
mov al, byte [ebp + ecx - 0x498]
mov byte [ebp + edx - 0x498], al
movzx ecx, byte [ebp - 0xca]
movzx edx, byte [ebp - 0xc9]
mov al, byte [ebp + ecx - 0x498]
mov byte [ebp + edx - 0x498], al
movzx ecx, byte [ebp - 0xc5]
movzx edx, byte [ebp - 0xca]
mov al, byte [ebp + ecx - 0x498]
mov byte [ebp + edx - 0x498], al
movzx ecx, byte [ebp - 0xc5]
mov dl, byte [ebp - 0xd0]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xd0]
movzx ecx, byte [ebp + eax - 0x498]
movzx edx, byte [ebp - 0xcf]
add edx, ecx
mov byte [ebp - 0xcf], dl
movzx eax, byte [ebp - 0xce]
movzx ecx, byte [ebp - 0xc9]
movzx edx, byte [ebp + ecx - 0x498]
movzx ecx, byte [ebp - 0xc5]
movzx ecx, byte [ebp + ecx - 0x498]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x498]
xor eax, edx
movzx ecx, byte [ebp - 0xca]
movzx edx, byte [ebp + ecx - 0x498]
movzx ecx, byte [ebp - 0xcc]
movzx ecx, byte [ebp + ecx - 0x498]
add edx, ecx
movzx ecx, byte [ebp - 0xcf]
movzx ecx, byte [ebp + ecx - 0x498]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x498]
movzx ecx, byte [ebp + edx - 0x498]
xor eax, ecx
mov byte [ebp - 0xca], al
mov dl, byte [ebp - 0xce]
mov byte [ebp - 0xcc], dl
mov al, byte [ebp - 0xca]
mov byte [ebp - 0xd5], al
cmp dword [ebp - 0xe0], 0
jle 0x5197a4
movsx cx, byte [ebp - 0xd5]
mov edx, dword [ebp - 0xe0]
mov word [ebp + edx*2 - 0x92], cx
mov eax, dword [ebp - 0x118]
add eax, 0xf
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0xe0]
add ecx, 1
mov dword [ebp - 0x344], ecx
jmp 0x5197d3
mov edx, dword [ebp - 0x344]
add edx, 1
mov dword [ebp - 0x344], edx
mov eax, dword [ebp - 0x344]
cmp eax, dword [ebp - 0x118]
jge 0x519cc3
mov ecx, dword [ebp - 0xe0]
add ecx, 1
mov dword [ebp - 0xe0], ecx
mov edx, dword [ebp - 0xe0]
shl edx, 1
mov dword [ebp - 0x184], edx
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x184]
movzx ecx, byte [eax]
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x144], 0xc7
mov edx, dword [ebp - 0xe0]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x168]
add ecx, dword [ebp - 0x188]
movzx edx, byte [ecx]
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x14c], 0x42
mov eax, dword [ebp - 0x140]
sub eax, dword [ebp - 0x144]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x158]
sub ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x150]
shl edx, 4
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x15c]
or ecx, dword [ebp - 0x160]
mov dword [ebp - 0x164], ecx
mov dl, byte [ebp - 0x164]
mov byte [ebp - 0xce], dl
movzx eax, byte [ebp - 0xcc]
mov cl, byte [ebp + eax - 0x498]
mov byte [ebp - 0xd0], cl
movzx edx, byte [ebp - 0xc5]
movzx eax, byte [ebp + edx - 0x498]
mov dword [ebp - 0x5c0], eax
mov cl, byte [ebp - 0xc5]
add cl, 1
mov byte [ebp - 0xc5], cl
movzx edx, byte [ebp - 0xc9]
add edx, dword [ebp - 0x5c0]
mov byte [ebp - 0xc9], dl
movzx eax, byte [ebp - 0xc9]
movzx ecx, byte [ebp - 0xcc]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xca]
movzx ecx, byte [ebp - 0xc9]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movsd xmm0, qword [0x583918]
movsd qword [ebp - 0x604], xmm0
movsd xmm0, qword [0x5838e0]
movsd qword [ebp - 0x1fc], xmm0
movsd xmm0, qword [0x5838a0]
movsd qword [ebp - 0x220], xmm0
movsd xmm0, qword [0x583878]
movsd qword [ebp - 0x1e0], xmm0
movsd xmm0, qword [0x583838]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [0x5837f0]
movsd qword [ebp - 0x350], xmm0
movsd xmm0, qword [0x583780]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x220]
mulsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x220], xmm0
movsd xmm0, qword [ebp - 0x1e0]
subsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x1e0], xmm0
movsd xmm0, qword [ebp - 0x350]
subsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x350], xmm0
movsd xmm0, qword [ebp - 0x204]
mulsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [ebp - 0x1e0]
mulsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x1e0], xmm0
movsd xmm0, qword [ebp - 0x204]
mulsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [ebp - 0x220]
mulsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x220], xmm0
movsd xmm0, qword [ebp - 0x220]
comisd xmm0, xmmword [ebp - 0x350]
jbe 0x519b27
movsd xmm0, qword [ebp - 0x1e0]
addsd xmm0, qword [ebp - 0x350]
movsd qword [ebp - 0x1e0], xmm0
movsd xmm0, qword [ebp - 0x1c4]
subsd xmm0, qword [ebp - 0x1fc]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x1e0]
mulsd xmm0, qword [ebp - 0x350]
movsd qword [ebp - 0x1e0], xmm0
movsd xmm0, qword [ebp - 0x1c4]
mulsd xmm0, qword [ebp - 0x1fc]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x1fc]
mulsd xmm0, qword [ebp - 0x1e0]
movsd qword [ebp - 0x1fc], xmm0
movsd xmm0, qword [ebp - 0x220]
mulsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x220], xmm0
movsd xmm0, qword [ebp - 0x220]
addsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x220], xmm0
movzx eax, byte [ebp - 0xc5]
movzx ecx, byte [ebp - 0xca]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
jmp 0x519bcf
movsd xmm0, qword [ebp - 0x1c4]
subsd xmm0, qword [ebp - 0x1fc]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x350]
addsd xmm0, qword [ebp - 0x604]
movsd qword [ebp - 0x350], xmm0
movsd xmm0, qword [ebp - 0x204]
divsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [ebp - 0x1c4]
addsd xmm0, qword [ebp - 0x1fc]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x1fc]
mulsd xmm0, qword [ebp - 0x1e0]
movsd qword [ebp - 0x1fc], xmm0
movsd xmm0, qword [ebp - 0x204]
subsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [ebp - 0x1fc]
subsd xmm0, qword [ebp - 0x1e0]
movsd qword [ebp - 0x1fc], xmm0
movzx eax, byte [ebp - 0xc5]
mov cl, byte [ebp - 0xd0]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xd0]
movzx eax, byte [ebp + edx - 0x498]
movzx ecx, byte [ebp - 0xcf]
add ecx, eax
mov byte [ebp - 0xcf], cl
movzx edx, byte [ebp - 0xce]
movzx eax, byte [ebp - 0xc9]
movzx ecx, byte [ebp + eax - 0x498]
movzx eax, byte [ebp - 0xc5]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x498]
xor edx, ecx
movzx eax, byte [ebp - 0xca]
movzx ecx, byte [ebp + eax - 0x498]
movzx eax, byte [ebp - 0xcc]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
movzx eax, byte [ebp - 0xcf]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x498]
movzx eax, byte [ebp + ecx - 0x498]
xor edx, eax
mov byte [ebp - 0xca], dl
mov cl, byte [ebp - 0xce]
mov byte [ebp - 0xcc], cl
mov dl, byte [ebp - 0xca]
mov byte [ebp - 0xd5], dl
cmp dword [ebp - 0xe0], 0
jle 0x519cbe
movsx ax, byte [ebp - 0xd5]
mov ecx, dword [ebp - 0xe0]
mov word [ebp + ecx*2 - 0x92], ax
jmp 0x5197c4
mov edx, dword [ebp - 0x118]
add edx, 1
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x118]
add eax, 0x10
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0xe0]
add ecx, 1
mov dword [ebp - 0x348], ecx
jmp 0x519d01
mov edx, dword [ebp - 0x348]
add edx, 1
mov dword [ebp - 0x348], edx
mov eax, dword [ebp - 0x348]
cmp eax, dword [ebp - 0x118]
jge 0x51a614
mov ecx, dword [ebp - 0xe0]
add ecx, 1
mov dword [ebp - 0xe0], ecx
mov edx, dword [ebp - 0xe0]
shl edx, 1
mov dword [ebp - 0x184], edx
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x184]
movzx ecx, byte [eax]
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x144], 0xc7
mov edx, dword [ebp - 0xe0]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x168]
add ecx, dword [ebp - 0x188]
movzx edx, byte [ecx]
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x14c], 0x42
mov eax, dword [ebp - 0x140]
sub eax, dword [ebp - 0x144]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x158]
sub ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x150]
shl edx, 4
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x15c]
or ecx, dword [ebp - 0x160]
mov dword [ebp - 0x164], ecx
mov dl, byte [ebp - 0x164]
mov byte [ebp - 0xce], dl
movzx eax, byte [ebp - 0xcc]
mov cl, byte [ebp + eax - 0x498]
mov byte [ebp - 0xd0], cl
movzx edx, byte [ebp - 0xc5]
movzx eax, byte [ebp + edx - 0x498]
mov dword [ebp - 0x5c4], eax
mov cl, byte [ebp - 0xc5]
add cl, 1
mov byte [ebp - 0xc5], cl
movzx edx, byte [ebp - 0xc9]
add edx, dword [ebp - 0x5c4]
mov byte [ebp - 0xc9], dl
movss xmm0, dword [0x583a0c]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [0x5839f0]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [0x5839d8]
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [0x5839c0]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [0x5839a0]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [0x583988]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [0x583968]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xe8]
subss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0xf8]
mulss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0xe8]
subss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0xe8]
mulss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0x108]
addss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [ebp - 0x124]
addss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [ebp - 0xf8]
subss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0xf8]
comiss xmm0, dword [ebp - 0xe4]
jbe 0x51a01c
movss xmm0, dword [ebp - 0x108]
subss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [ebp - 0x104]
mulss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0x104]
addss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0x104]
subss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0xe8]
addss xmm0, dword [ebp - 0xf8]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0x108]
subss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [ebp - 0xe4]
addss xmm0, dword [ebp - 0xfc]
movss dword [ebp - 0xe4], xmm0
movzx eax, byte [ebp - 0xc9]
movzx ecx, byte [ebp - 0xcc]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
jmp 0x51a4e8
movss xmm0, dword [ebp - 0xe4]
divss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xe8]
subss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0xf8]
divss xmm0, dword [ebp - 0xfc]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0x104]
addss xmm0, dword [ebp - 0xf8]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0x108]
divss xmm0, dword [ebp - 0x104]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [ebp - 0x108]
subss xmm0, dword [ebp - 0x104]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [ebp - 0xe4]
divss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xfc]
subss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [ebp - 0xe4]
addss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xf8]
divss xmm0, dword [ebp - 0xfc]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0xe8]
addss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0xe8]
mulss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0xf8]
subss xmm0, dword [ebp - 0xfc]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0x124]
divss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [ebp - 0xf8]
comiss xmm0, dword [ebp - 0x104]
jbe 0x51a22e
movss xmm0, dword [ebp - 0xe4]
mulss xmm0, dword [ebp - 0xfc]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xe8]
subss xmm0, dword [ebp - 0xf8]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0x104]
divss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0x104]
addss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0x104]
divss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0xfc]
subss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [ebp - 0xfc]
addss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xfc], xmm0
jmp 0x51a4e8
movss xmm0, dword [ebp - 0xfc]
mulss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [ebp - 0xfc]
subss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [ebp - 0xfc]
divss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [ebp - 0xe4]
addss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xe4]
addss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xe8]
subss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0x108]
mulss xmm0, dword [ebp - 0x104]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [ebp - 0xfc]
addss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [ebp - 0xe8]
addss xmm0, dword [ebp - 0xf8]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0x108]
mulss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [ebp - 0xe4]
mulss xmm0, dword [ebp - 0xfc]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0x124]
mulss xmm0, dword [ebp - 0x104]
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [ebp - 0x104]
subss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0xe8]
addss xmm0, dword [ebp - 0xf8]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0xf8]
comiss xmm0, dword [ebp - 0xfc]
jbe 0x51a440
movss xmm0, dword [ebp - 0xf8]
addss xmm0, dword [ebp - 0xfc]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0xe8]
addss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0x108]
mulss xmm0, dword [ebp - 0x104]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [ebp - 0xfc]
mulss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [ebp - 0xe8]
addss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0x104]
subss xmm0, dword [ebp - 0xf8]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0xe4]
subss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xe4], xmm0
jmp 0x51a4e8
movss xmm0, dword [ebp - 0xf8]
mulss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0x124]
divss xmm0, dword [ebp - 0x104]
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [ebp - 0x124]
divss xmm0, dword [ebp - 0x104]
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [ebp - 0xf8]
subss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0xe4]
subss xmm0, dword [ebp - 0xfc]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xf8]
divss xmm0, dword [ebp - 0xe4]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0xfc]
divss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0xfc], xmm0
movzx eax, byte [ebp - 0xca]
movzx ecx, byte [ebp - 0xc9]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xc5]
movzx ecx, byte [ebp - 0xca]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xc5]
mov cl, byte [ebp - 0xd0]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xd0]
movzx eax, byte [ebp + edx - 0x498]
movzx ecx, byte [ebp - 0xcf]
add ecx, eax
mov byte [ebp - 0xcf], cl
movzx edx, byte [ebp - 0xce]
movzx eax, byte [ebp - 0xc9]
movzx ecx, byte [ebp + eax - 0x498]
movzx eax, byte [ebp - 0xc5]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x498]
xor edx, ecx
movzx eax, byte [ebp - 0xca]
movzx ecx, byte [ebp + eax - 0x498]
movzx eax, byte [ebp - 0xcc]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
movzx eax, byte [ebp - 0xcf]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x498]
movzx eax, byte [ebp + ecx - 0x498]
xor edx, eax
mov byte [ebp - 0xca], dl
mov cl, byte [ebp - 0xce]
mov byte [ebp - 0xcc], cl
mov dl, byte [ebp - 0xca]
mov byte [ebp - 0xd5], dl
cmp dword [ebp - 0xe0], 0
jle 0x51a60f
movsx ax, byte [ebp - 0xd5]
mov ecx, dword [ebp - 0xe0]
mov word [ebp + ecx*2 - 0x92], ax
jmp 0x519cf2
mov edx, dword [ebp - 0x118]
add edx, 1
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0xe0]
add eax, 1
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0x118]
add ecx, 1
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0xe0]
shl edx, 1
mov dword [ebp - 0x184], edx
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x184]
movzx ecx, byte [eax]
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x144], 0xc7
mov edx, dword [ebp - 0xe0]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x168]
add ecx, dword [ebp - 0x188]
movzx edx, byte [ecx]
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x14c], 0x42
mov eax, dword [ebp - 0x140]
sub eax, dword [ebp - 0x144]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x158]
sub ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x150]
shl edx, 4
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x15c]
or ecx, dword [ebp - 0x160]
mov dword [ebp - 0x164], ecx
mov dl, byte [ebp - 0x164]
mov byte [ebp - 0xce], dl
movzx eax, byte [ebp - 0xcc]
mov cl, byte [ebp + eax - 0x498]
mov byte [ebp - 0xd0], cl
movzx edx, byte [ebp - 0xc5]
movzx eax, byte [ebp + edx - 0x498]
mov dword [ebp - 0x59c], eax
mov cl, byte [ebp - 0xc5]
add cl, 1
mov byte [ebp - 0xc5], cl
movzx edx, byte [ebp - 0xc9]
add edx, dword [ebp - 0x59c]
mov byte [ebp - 0xc9], dl
movzx eax, byte [ebp - 0xc9]
movzx ecx, byte [ebp - 0xcc]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xca]
movzx ecx, byte [ebp - 0xc9]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xc5]
movzx ecx, byte [ebp - 0xca]
mov dl, byte [ebp + eax - 0x498]
mov byte [ebp + ecx - 0x498], dl
movzx eax, byte [ebp - 0xc5]
mov cl, byte [ebp - 0xd0]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xd0]
movzx eax, byte [ebp + edx - 0x498]
movzx ecx, byte [ebp - 0xcf]
add ecx, eax
mov byte [ebp - 0xcf], cl
movzx edx, byte [ebp - 0xce]
movzx eax, byte [ebp - 0xc9]
movzx ecx, byte [ebp + eax - 0x498]
movzx eax, byte [ebp - 0xc5]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x498]
xor edx, ecx
movzx eax, byte [ebp - 0xca]
movzx ecx, byte [ebp + eax - 0x498]
movzx eax, byte [ebp - 0xcc]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
movzx eax, byte [ebp - 0xcf]
movzx eax, byte [ebp + eax - 0x498]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x498]
movzx eax, byte [ebp + ecx - 0x498]
xor edx, eax
mov byte [ebp - 0xca], dl
mov cl, byte [ebp - 0xce]
mov byte [ebp - 0xcc], cl
mov dl, byte [ebp - 0xca]
mov byte [ebp - 0xd5], dl
cmp dword [ebp - 0xe0], 0
jle 0x51a888
movsx ax, byte [ebp - 0xd5]
mov ecx, dword [ebp - 0xe0]
mov word [ebp + ecx*2 - 0x92], ax
mov edx, dword [ebp - 0xe0]
add edx, 1
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp - 0x118]
add eax, 1
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0xe0]
shl ecx, 1
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x168]
add edx, dword [ebp - 0x184]
movzx eax, byte [edx]
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x144], 0xc7
mov ecx, dword [ebp - 0xe0]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x188]
movzx ecx, byte [eax]
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x14c], 0x42
mov edx, dword [ebp - 0x140]
sub edx, dword [ebp - 0x144]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x158]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x150]
shl ecx, 4
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x15c]
or eax, dword [ebp - 0x160]
mov dword [ebp - 0x164], eax
mov cl, byte [ebp - 0x164]
mov byte [ebp - 0xce], cl
movzx edx, byte [ebp - 0xcc]
mov al, byte [ebp + edx - 0x498]
mov byte [ebp - 0xd0], al
movzx ecx, byte [ebp - 0xc5]
movzx edx, byte [ebp + ecx - 0x498]
mov dword [ebp - 0x5c8], edx
mov al, byte [ebp - 0xc5]
add al, 1
mov byte [ebp - 0xc5], al
movzx ecx, byte [ebp - 0xc9]
add ecx, dword [ebp - 0x5c8]
mov byte [ebp - 0xc9], cl
movzx edx, byte [ebp - 0xc9]
movzx eax, byte [ebp - 0xcc]
mov cl, byte [ebp + edx - 0x498]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xca]
movzx eax, byte [ebp - 0xc9]
mov cl, byte [ebp + edx - 0x498]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xc5]
movzx eax, byte [ebp - 0xca]
mov cl, byte [ebp + edx - 0x498]
mov byte [ebp + eax - 0x498], cl
movzx edx, byte [ebp - 0xc5]
mov al, byte [ebp - 0xd0]
mov byte [ebp + edx - 0x498], al
movzx ecx, byte [ebp - 0xd0]
movzx edx, byte [ebp + ecx - 0x498]
movzx eax, byte [ebp - 0xcf]
add eax, edx
mov byte [ebp - 0xcf], al
movzx ecx, byte [ebp - 0xce]
movzx edx, byte [ebp - 0xc9]
movzx eax, byte [ebp + edx - 0x498]
movzx edx, byte [ebp - 0xc5]
movzx edx, byte [ebp + edx - 0x498]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x498]
xor ecx, eax
movzx edx, byte [ebp - 0xca]
movzx eax, byte [ebp + edx - 0x498]
movzx edx, byte [ebp - 0xcc]
movzx edx, byte [ebp + edx - 0x498]
add eax, edx
movzx edx, byte [ebp - 0xcf]
movzx edx, byte [ebp + edx - 0x498]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x498]
movzx edx, byte [ebp + eax - 0x498]
xor ecx, edx
mov byte [ebp - 0xca], cl
mov al, byte [ebp - 0xce]
mov byte [ebp - 0xcc], al
mov cl, byte [ebp - 0xca]
mov byte [ebp - 0xd5], cl
cmp dword [ebp - 0xe0], 0
jle 0x51aaea
movsx dx, byte [ebp - 0xd5]
mov eax, dword [ebp - 0xe0]
mov word [ebp + eax*2 - 0x92], dx
mov ecx, 2
imul edx, ecx, 0x23
mov dword [ebp - 0x384], edx
cmp dword [ebp - 0x384], 0x48
jae 0x51ab03
jmp 0x51ab09
call fcn.0051c285
nop
xor eax, eax
mov ecx, dword [ebp - 0x384]
mov word [ebp + ecx - 0x90], ax
jmp 0x51ab70
mov dword [ebp - 0x224], 0
jmp 0x51ab36
mov edx, dword [ebp - 0x224]
add edx, 1
mov dword [ebp - 0x224], edx
cmp dword [ebp - 0x224], 0x24
jge 0x51ab70
mov eax, dword [ebp - 0x224]
shl eax, 1
mov dword [ebp - 0x37c], eax
cmp dword [ebp - 0x37c], 0x48
jae 0x51ab58
jmp 0x51ab5e
call fcn.0051c285
nop
xor ecx, ecx
mov edx, dword [ebp - 0x37c]
mov word [ebp + edx - 0x90], cx
jmp 0x51ab27
lea eax, [ebp - 0xb4]
push eax
push 2
push 0
lea ecx, [ebp - 0x9c]
push ecx
push 0x100
lea edx, [ebp - 0x48]
push edx
push reloc.WS2_32.dll_bind
mov ecx, dword [ebp - 0x380]
call fcn.0051acd0
lea eax, [ebp - 0xb4]
push eax
push 1
push 0
lea ecx, [ebp - 0x9c]
push ecx
push 0x100
lea edx, [ebp - 0x90]
push edx
push reloc.WS2_32.dll_bind
mov ecx, dword [ebp - 0x380]
call fcn.0051acd0
mov byte [ebp - 0x19b], 0
mov dword [ebp - 0x1f4], 0
jmp 0x51abeb
mov eax, dword [ebp - 0x1f4]
add eax, 1
mov dword [ebp - 0x1f4], eax
lea ecx, [ebp - 0x9c]
call fcn.00502f00
cmp dword [ebp - 0x1f4], eax
jae 0x51ac4c
mov ecx, dword [ebp - 0x1f4]
push ecx
lea ecx, [ebp - 0x9c]
call fcn.004e2410
mov edx, dword [eax]
cmp dword [edx + 0x44], 0
je 0x51ac1f
mov byte [ebp - 0x19b], 1
mov eax, dword [ebp - 0x1f4]
push eax
lea ecx, [ebp - 0x9c]
call fcn.004e2410
mov ecx, dword [eax]
mov dword [ebp - 0x5cc], ecx
push 0x48
mov edx, dword [ebp - 0x5cc]
push edx
call fcn.0051c115
add esp, 8
jmp 0x51abdc
lea ecx, [ebp - 0x9c]
call fcn.0051b510
nop
mov al, byte [ebp - 0x19b]
mov byte [ebp - 0x1c5], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xb4]
call fcn.004aa980
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9c]
call fcn.004e23b0
mov al, byte [ebp - 0x1c5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0051bf16
mov esp, ebp
pop ebp
ret