Function at 0x515948
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x428
mov eax, dword [0xaf908c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x294], ecx
mov dword [ebp - 0x250], 0
push 0xabd884
mov ecx, dword [ebp + 0xc]
call fcn.00509f70
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov word [ebp - 0x18], ax
push 0x100
push 0
lea ecx, [ebp - 0x138]
push ecx
call fcn.00a921e0
add esp, 0xc
push 0xa
lea edx, [ebp - 0x38]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00a96867
add esp, 0xc
lea ecx, [ebp - 0x138]
add ecx, 0xffffffff
mov dword [ebp - 0x280], ecx
mov edx, dword [ebp - 0x280]
mov al, byte [edx + 1]
mov byte [ebp - 0x219], al
add dword [ebp - 0x280], 1
cmp byte [ebp - 0x219], 0
jne 0x5156c8
mov edi, dword [ebp - 0x280]
mov cx, word [0xabf6e0]
mov word [edi], cx
mov dl, byte [0xabf6e2]
mov byte [edi + 2], dl
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x268], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x258], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x258], xmm0
jmp 0x51574f
movsd xmm0, qword [ebp - 0x258]
addsd xmm0, qword [0xabc320]
movsd qword [ebp - 0x258], xmm0
movsd xmm0, qword [0xabfac0]
comisd xmm0, xmmword [ebp - 0x258]
jbe 0x515800
movsd xmm0, qword [0xabf8b8]
mulsd xmm0, qword [ebp - 0x258]
mulsd xmm0, qword [ebp - 0x258]
movsd xmm1, qword [ebp - 0x258]
mulsd xmm1, qword [ebp - 0x258]
subsd xmm0, xmm1
movsd xmm1, qword [0xabcc20]
mulsd xmm1, qword [ebp - 0x258]
mulsd xmm1, qword [ebp - 0x258]
addsd xmm1, qword [0xabf800]
divsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x268]
movsd qword [ebp - 0x268], xmm0
movsd xmm0, qword [ebp - 0x268]
comisd xmm0, xmmword [0xabf888]
jbe 0x5157fb
movsd xmm0, qword [0xabf720]
mulsd xmm0, qword [ebp - 0x258]
movsd xmm1, qword [ebp - 0x268]
subsd xmm1, xmm0
movsd qword [ebp - 0x268], xmm1
jmp 0x515737
xorps xmm0, xmm0
comisd xmm0, xmmword [ebp - 0x268]
jbe 0x515846
push ecx
xor bh, byte [ebx + 0x35]
jge 0x515835
dec eax
dec edi
inc edi
pop ebp
pop edx
inc ecx
insb byte es:[edi], dx
dec esp
dec ecx
xor eax, 0xb0e34b57
out 0xb8, al
in al, dx
mov ch, 0xe7
mov ch, 0xdf
scasb al, byte es:[edi]
in al, dx
mov bl, 0xee
mov dh, 0xed
mov eax, 0xaceeb3e9
out 0xb4, eax
in al, dx
mov bh, 0xe4
mov eax, 0xade2b0ec
fild qword [edx + 0x273ce9]
add bh, al
test dword [eax + 0x21fffffe], ebp
pop eax
push ecx
add bh, al
test dword [esi + edi*8 + 0x580dffff], ebp
push ecx
add byte [ebx - 0x1577b], cl
dec dword [ecx - 0x1877b]
dec dword [ebx - 0x15373]
dec dword [ecx - 0x40773]
inc esi
test dword [ebx], edi
invalid
mov dword [ebp - 0x158], 0x515821
mov dword [ebp - 0x154], 0x51580d
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x408], ecx
mov byte [ebp - 0x1c5], 0x18
mov dword [ebp - 0x19c], 0
jmp 0x515894
mov edx, dword [ebp - 0x19c]
add edx, 1
mov dword [ebp - 0x19c], edx
cmp dword [ebp - 0x19c], 0x100
jae 0x5158b5
mov eax, dword [ebp - 0x19c]
mov cl, byte [ebp - 0x19c]
mov byte [ebp + eax - 0x3b8], cl
jmp 0x515885
mov dword [ebp - 0x234], 0
mov byte [ebp - 0x161], 0
mov dword [ebp - 0x19c], 0xff
jmp 0x5158e1
mov edx, dword [ebp - 0x19c]
sub edx, 1
mov dword [ebp - 0x19c], edx
cmp dword [ebp - 0x19c], 0
jbe 0x515b51
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x27c], 1
mov eax, dword [ebp - 0x27c]
cmp eax, dword [ebp - 0x19c]
jae 0x515922
mov ecx, dword [ebp - 0x27c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x27c], edx
jmp 0x515902
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x298], eax
cmp dword [ebp - 0x298], 3
ja case.default.0x515941
mov ecx, dword [ebp - 0x298]
jmp dword [ecx*4 + 0x51836c]
movzx edx, byte [ebp - 0x161]
movzx ebx, byte [ebp + edx - 0x3b8]
movsd xmm0, qword [ebp - 0x268]
call fcn.00a40f60
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x161], bl
jmp 0x515a2a
movzx eax, byte [ebp - 0x161]
movzx ebx, byte [ebp + eax - 0x3b8]
movsd xmm0, qword [ebp - 0x268]
call fcn.00a40f60
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x161], bl
jmp 0x515a2a
movzx ecx, byte [ebp - 0x161]
movzx ebx, byte [ebp + ecx - 0x3b8]
movsd xmm0, qword [ebp - 0x268]
call fcn.00a40f60
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x161], bl
jmp 0x515a2a
movzx edx, byte [ebp - 0x161]
movzx ebx, byte [ebp + edx - 0x3b8]
movsd xmm0, qword [ebp - 0x268]
call fcn.00a40f60
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x161], bl
jmp 0x515a2a
movzx eax, byte [ebp - 0x161]
movzx ecx, byte [ebp + eax - 0x3b8]
mov edx, dword [ebp - 0x408]
add edx, dword [ebp - 0x234]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x161], cl
mov ecx, dword [ebp - 0x234]
add ecx, 1
mov dword [ebp - 0x234], ecx
movzx edx, byte [ebp - 0x1c5]
cmp dword [ebp - 0x234], edx
jb 0x515a68
mov dword [ebp - 0x234], 0
movzx eax, byte [ebp - 0x1c5]
movzx ecx, byte [ebp - 0x161]
add ecx, eax
mov byte [ebp - 0x161], cl
movzx edx, byte [ebp - 0x161]
and edx, dword [ebp - 0x27c]
mov dword [ebp - 0x210], edx
mov eax, dword [ebp - 0x28c]
add eax, 1
mov dword [ebp - 0x28c], eax
cmp dword [ebp - 0x28c], 0xb
jbe 0x515aa7
mov eax, dword [ebp - 0x210]
xor edx, edx
div dword [ebp - 0x19c]
mov dword [ebp - 0x210], edx
mov ecx, dword [ebp - 0x210]
cmp ecx, dword [ebp - 0x19c]
ja 0x515922
mov edx, dword [ebp - 0x19c]
cmp edx, dword [ebp - 0x210]
je 0x515b4c
mov eax, dword [ebp - 0x210]
movzx ecx, byte [ebp + eax - 0x3b8]
mov edx, dword [ebp - 0x19c]
movzx eax, byte [ebp + edx - 0x3b8]
xor eax, ecx
mov ecx, dword [ebp - 0x19c]
mov byte [ebp + ecx - 0x3b8], al
mov edx, dword [ebp - 0x19c]
movzx eax, byte [ebp + edx - 0x3b8]
mov ecx, dword [ebp - 0x210]
movzx edx, byte [ebp + ecx - 0x3b8]
xor edx, eax
mov eax, dword [ebp - 0x210]
mov byte [ebp + eax - 0x3b8], dl
mov ecx, dword [ebp - 0x210]
movzx edx, byte [ebp + ecx - 0x3b8]
mov eax, dword [ebp - 0x19c]
movzx ecx, byte [ebp + eax - 0x3b8]
xor ecx, edx
mov edx, dword [ebp - 0x19c]
mov byte [ebp + edx - 0x3b8], cl
jmp 0x5158d2
mov eax, 1
shl eax, 0
mov cl, byte [ebp + eax - 0x3b8]
mov byte [ebp - 0x159], cl
mov edx, 1
imul eax, edx, 3
mov cl, byte [ebp + eax - 0x3b8]
mov byte [ebp - 0x15a], cl
mov edx, 1
imul eax, edx, 5
mov cl, byte [ebp + eax - 0x3b8]
mov byte [ebp - 0x15f], cl
mov edx, 1
imul eax, edx, 7
mov cl, byte [ebp + eax - 0x3b8]
mov byte [ebp - 0x15b], cl
movzx edx, byte [ebp - 0x161]
mov al, byte [ebp + edx - 0x3b8]
mov byte [ebp - 0x15c], al
mov dword [ebp - 0x29c], 0x20
cmp dword [ebp - 0x29c], 2
jle 0x517f35
mov ecx, dword [ebp - 0x29c]
and ecx, 1
jne 0x517f35
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x16c], 0
mov edx, dword [ebp - 0x16c]
add edx, 1
mov dword [ebp - 0x16c], edx
mov dword [ebp - 0x1a0], 0
mov eax, dword [ebp - 0x168]
shl eax, 1
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x184], 0
mov ecx, dword [ebp - 0x188]
add ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
add edx, dword [ebp - 0x184]
mov dword [ebp - 0x184], edx
mov dword [ebp - 0x180], 0
mov eax, dword [ebp - 0x180]
add eax, 0xdf
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x18c], 0
mov ecx, dword [ebp - 0x168]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x18c], edx
mov dword [ebp - 0x17c], 0
mov eax, dword [ebp - 0x188]
add eax, dword [ebp - 0x18c]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0x170], 0
mov edx, dword [ebp - 0x170]
add edx, 0xaa
mov dword [ebp - 0x170], edx
mov dword [ebp - 0x178], 0
mov eax, dword [ebp - 0x184]
sub eax, dword [ebp - 0x180]
add eax, dword [ebp - 0x178]
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], 0
mov ecx, dword [ebp - 0x17c]
sub ecx, dword [ebp - 0x170]
add ecx, dword [ebp - 0x174]
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x190], 0
mov edx, dword [ebp - 0x178]
shl edx, 4
mov dword [ebp - 0x190], edx
mov dword [ebp - 0x198], 0
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x194], 0
mov ecx, dword [ebp - 0x190]
or ecx, dword [ebp - 0x198]
mov dword [ebp - 0x194], ecx
mov byte [ebp - 0x15e], 0
mov dl, byte [ebp - 0x194]
mov byte [ebp - 0x15e], dl
mov byte [ebp - 0x15d], 0
movzx eax, byte [ebp - 0x15c]
mov cl, byte [ebp + eax - 0x3b8]
mov byte [ebp - 0x15d], cl
movzx edx, byte [ebp - 0x159]
movzx eax, byte [ebp + edx - 0x3b8]
mov dword [ebp - 0x404], eax
mov cl, byte [ebp - 0x159]
add cl, 1
mov byte [ebp - 0x159], cl
movzx edx, byte [ebp - 0x15a]
add edx, dword [ebp - 0x404]
mov byte [ebp - 0x15a], dl
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp - 0x15c]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp - 0x15a]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x159]
movzx ecx, byte [ebp - 0x15b]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x159]
mov cl, byte [ebp - 0x15d]
mov byte [ebp + eax - 0x3b8], cl
movzx edx, byte [ebp - 0x15d]
movzx eax, byte [ebp + edx - 0x3b8]
movzx ecx, byte [ebp - 0x15f]
add ecx, eax
mov byte [ebp - 0x15f], cl
movzx edx, byte [ebp - 0x15e]
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx eax, byte [ebp - 0x159]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3b8]
xor edx, ecx
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx eax, byte [ebp - 0x15c]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
movzx eax, byte [ebp - 0x15f]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3b8]
movzx eax, byte [ebp + ecx - 0x3b8]
xor edx, eax
mov byte [ebp - 0x15b], dl
mov cl, byte [ebp - 0x15e]
mov byte [ebp - 0x15c], cl
mov dl, byte [ebp - 0x15b]
mov byte [ebp - 0x160], dl
cmp dword [ebp - 0x168], 0
jle 0x515ee6
mov eax, dword [ebp - 0x168]
mov cl, byte [ebp - 0x160]
mov byte [ebp + eax - 0x15], cl
mov edx, dword [ebp - 0x168]
add edx, 1
mov dword [ebp - 0x168], edx
movsd xmm0, qword [0xac01e8]
movsd qword [ebp - 0x1bc], xmm0
movsd xmm0, qword [0xac0038]
movsd qword [ebp - 0x240], xmm0
movsd xmm0, qword [0xabfdc0]
movsd qword [ebp - 0x1e4], xmm0
movsd xmm0, qword [0xabfb10]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [ebp - 0x1e4]
mulsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x1e4], xmm0
movsd xmm0, qword [ebp - 0x1bc]
mulsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x1bc], xmm0
movsd xmm0, qword [ebp - 0x240]
addsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x240], xmm0
movsd xmm0, qword [ebp - 0x1bc]
subsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x1bc], xmm0
movsd xmm0, qword [ebp - 0x204]
comisd xmm0, xmmword [ebp - 0x1bc]
jbe 0x516141
movsd xmm0, qword [ebp - 0x1bc]
addsd xmm0, qword [ebp - 0x1e4]
movsd qword [ebp - 0x1bc], xmm0
movsd xmm0, qword [ebp - 0x1bc]
addsd xmm0, qword [ebp - 0x1e4]
movsd qword [ebp - 0x1bc], xmm0
movsd xmm0, qword [ebp - 0x204]
subsd xmm0, qword [ebp - 0x240]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [ebp - 0x1e4]
addsd xmm0, qword [ebp - 0x1bc]
movsd qword [ebp - 0x1e4], xmm0
movsd xmm0, qword [ebp - 0x1e4]
mulsd xmm0, qword [ebp - 0x1bc]
movsd qword [ebp - 0x1e4], xmm0
movsd xmm0, qword [ebp - 0x240]
subsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x240], xmm0
movsd xmm0, qword [ebp - 0x1bc]
addsd xmm0, qword [ebp - 0x1e4]
movsd qword [ebp - 0x1bc], xmm0
movsd xmm0, qword [ebp - 0x1bc]
mulsd xmm0, qword [ebp - 0x1e4]
movsd qword [ebp - 0x1bc], xmm0
movsd xmm0, qword [ebp - 0x1e4]
comisd xmm0, xmmword [ebp - 0x1bc]
jbe 0x5160df
movsd xmm0, qword [ebp - 0x240]
subsd xmm0, qword [ebp - 0x1e4]
movsd qword [ebp - 0x240], xmm0
movsd xmm0, qword [ebp - 0x1bc]
mulsd xmm0, qword [ebp - 0x240]
movsd qword [ebp - 0x1bc], xmm0
movsd xmm0, qword [ebp - 0x1bc]
subsd xmm0, qword [ebp - 0x240]
movsd qword [ebp - 0x1bc], xmm0
movsd xmm0, qword [ebp - 0x204]
divsd xmm0, qword [ebp - 0x1bc]
movsd qword [ebp - 0x204], xmm0
jmp 0x51613f
movsd xmm0, qword [ebp - 0x204]
divsd xmm0, qword [ebp - 0x1bc]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [ebp - 0x204]
divsd xmm0, qword [ebp - 0x1bc]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [ebp - 0x240]
divsd xmm0, qword [ebp - 0x1e4]
movsd qword [ebp - 0x240], xmm0
movsd xmm0, qword [ebp - 0x1e4]
divsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x1e4], xmm0
jmp 0x5161b0
movsd xmm0, qword [ebp - 0x240]
addsd xmm0, qword [ebp - 0x1e4]
movsd qword [ebp - 0x240], xmm0
movsd xmm0, qword [ebp - 0x1e4]
subsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x1e4], xmm0
movsd xmm0, qword [ebp - 0x204]
mulsd xmm0, qword [ebp - 0x1bc]
movsd qword [ebp - 0x204], xmm0
movsd xmm0, qword [ebp - 0x1e4]
mulsd xmm0, qword [ebp - 0x204]
movsd qword [ebp - 0x1e4], xmm0
mov eax, dword [ebp - 0x16c]
add eax, 1
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x168]
shl ecx, 1
mov dword [ebp - 0x1a0], ecx
mov edx, dword [ebp - 0x188]
add edx, dword [ebp - 0x1a0]
movzx eax, byte [edx]
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], 0xdf
mov ecx, dword [ebp - 0x168]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x18c], edx
mov eax, dword [ebp - 0x188]
add eax, dword [ebp - 0x18c]
movzx ecx, byte [eax]
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0x170], 0xaa
mov edx, dword [ebp - 0x184]
sub edx, dword [ebp - 0x180]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x17c]
sub eax, dword [ebp - 0x170]
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x178]
shl ecx, 4
mov dword [ebp - 0x190], ecx
mov edx, dword [ebp - 0x174]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x190]
or eax, dword [ebp - 0x198]
mov dword [ebp - 0x194], eax
mov cl, byte [ebp - 0x194]
mov byte [ebp - 0x15e], cl
movzx edx, byte [ebp - 0x15c]
mov al, byte [ebp + edx - 0x3b8]
mov byte [ebp - 0x15d], al
movzx ecx, byte [ebp - 0x159]
movzx edx, byte [ebp + ecx - 0x3b8]
mov dword [ebp - 0x400], edx
mov al, byte [ebp - 0x159]
add al, 1
mov byte [ebp - 0x159], al
movzx ecx, byte [ebp - 0x15a]
add ecx, dword [ebp - 0x400]
mov byte [ebp - 0x15a], cl
movzx edx, byte [ebp - 0x15a]
movzx eax, byte [ebp - 0x15c]
mov cl, byte [ebp + edx - 0x3b8]
mov byte [ebp + eax - 0x3b8], cl
movzx edx, byte [ebp - 0x15b]
movzx eax, byte [ebp - 0x15a]
mov cl, byte [ebp + edx - 0x3b8]
mov byte [ebp + eax - 0x3b8], cl
movzx edx, byte [ebp - 0x159]
movzx eax, byte [ebp - 0x15b]
mov cl, byte [ebp + edx - 0x3b8]
mov byte [ebp + eax - 0x3b8], cl
movzx edx, byte [ebp - 0x159]
mov al, byte [ebp - 0x15d]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x15d]
movzx edx, byte [ebp + ecx - 0x3b8]
movzx eax, byte [ebp - 0x15f]
add eax, edx
mov byte [ebp - 0x15f], al
movzx ecx, byte [ebp - 0x15e]
movzx edx, byte [ebp - 0x15a]
movzx eax, byte [ebp + edx - 0x3b8]
movzx edx, byte [ebp - 0x159]
movzx edx, byte [ebp + edx - 0x3b8]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x3b8]
xor ecx, eax
movzx edx, byte [ebp - 0x15b]
movzx eax, byte [ebp + edx - 0x3b8]
movzx edx, byte [ebp - 0x15c]
movzx edx, byte [ebp + edx - 0x3b8]
add eax, edx
movzx edx, byte [ebp - 0x15f]
movzx edx, byte [ebp + edx - 0x3b8]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x3b8]
movzx edx, byte [ebp + eax - 0x3b8]
xor ecx, edx
mov byte [ebp - 0x15b], cl
mov al, byte [ebp - 0x15e]
mov byte [ebp - 0x15c], al
mov cl, byte [ebp - 0x15b]
mov byte [ebp - 0x160], cl
cmp dword [ebp - 0x168], 0
jle 0x5163ee
mov edx, dword [ebp - 0x168]
mov al, byte [ebp - 0x160]
mov byte [ebp + edx - 0x15], al
mov ecx, dword [ebp - 0x168]
add ecx, 1
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp - 0x16c]
add edx, 1
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x168]
shl eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x188]
add ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov dword [ebp - 0x184], edx
mov dword [ebp - 0x180], 0xdf
mov eax, dword [ebp - 0x168]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x18c], ecx
mov edx, dword [ebp - 0x188]
add edx, dword [ebp - 0x18c]
movzx eax, byte [edx]
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x170], 0xaa
mov ecx, dword [ebp - 0x184]
sub ecx, dword [ebp - 0x180]
mov dword [ebp - 0x178], ecx
mov edx, dword [ebp - 0x17c]
sub edx, dword [ebp - 0x170]
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x178]
shl eax, 4
mov dword [ebp - 0x190], eax
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x190]
or edx, dword [ebp - 0x198]
mov dword [ebp - 0x194], edx
mov al, byte [ebp - 0x194]
mov byte [ebp - 0x15e], al
movzx ecx, byte [ebp - 0x15c]
mov dl, byte [ebp + ecx - 0x3b8]
mov byte [ebp - 0x15d], dl
movzx eax, byte [ebp - 0x159]
movzx ecx, byte [ebp + eax - 0x3b8]
mov dword [ebp - 0x3fc], ecx
mov dl, byte [ebp - 0x159]
add dl, 1
mov byte [ebp - 0x159], dl
movzx eax, byte [ebp - 0x15a]
add eax, dword [ebp - 0x3fc]
mov byte [ebp - 0x15a], al
movzx ecx, byte [ebp - 0x15a]
movzx edx, byte [ebp - 0x15c]
mov al, byte [ebp + ecx - 0x3b8]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp - 0x15a]
mov al, byte [ebp + ecx - 0x3b8]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x159]
movzx edx, byte [ebp - 0x15b]
mov al, byte [ebp + ecx - 0x3b8]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x159]
mov dl, byte [ebp - 0x15d]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x15d]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx edx, byte [ebp - 0x15f]
add edx, ecx
mov byte [ebp - 0x15f], dl
movzx eax, byte [ebp - 0x15e]
movzx ecx, byte [ebp - 0x15a]
movzx edx, byte [ebp + ecx - 0x3b8]
movzx ecx, byte [ebp - 0x159]
movzx ecx, byte [ebp + ecx - 0x3b8]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3b8]
xor eax, edx
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp + ecx - 0x3b8]
movzx ecx, byte [ebp - 0x15c]
movzx ecx, byte [ebp + ecx - 0x3b8]
add edx, ecx
movzx ecx, byte [ebp - 0x15f]
movzx ecx, byte [ebp + ecx - 0x3b8]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3b8]
movzx ecx, byte [ebp + edx - 0x3b8]
xor eax, ecx
mov byte [ebp - 0x15b], al
mov dl, byte [ebp - 0x15e]
mov byte [ebp - 0x15c], dl
mov al, byte [ebp - 0x15b]
mov byte [ebp - 0x160], al
cmp dword [ebp - 0x168], 0
jle 0x51664d
mov ecx, dword [ebp - 0x168]
mov dl, byte [ebp - 0x160]
mov byte [ebp + ecx - 0x15], dl
mov eax, dword [ebp - 0x16c]
add eax, 4
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x168]
add ecx, 1
mov dword [ebp - 0x290], ecx
jmp 0x51667c
mov edx, dword [ebp - 0x290]
add edx, 1
mov dword [ebp - 0x290], edx
mov eax, dword [ebp - 0x290]
cmp eax, dword [ebp - 0x16c]
jge 0x516f5b
mov ecx, dword [ebp - 0x168]
add ecx, 1
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp - 0x168]
shl edx, 1
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x188]
add eax, dword [ebp - 0x1a0]
movzx ecx, byte [eax]
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x180], 0xdf
mov edx, dword [ebp - 0x168]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x188]
add ecx, dword [ebp - 0x18c]
movzx edx, byte [ecx]
mov dword [ebp - 0x17c], edx
mov dword [ebp - 0x170], 0xaa
mov eax, dword [ebp - 0x184]
sub eax, dword [ebp - 0x180]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x17c]
sub ecx, dword [ebp - 0x170]
mov dword [ebp - 0x174], ecx
mov edx, dword [ebp - 0x178]
shl edx, 4
mov dword [ebp - 0x190], edx
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x190]
or ecx, dword [ebp - 0x198]
mov dword [ebp - 0x194], ecx
mov dl, byte [ebp - 0x194]
mov byte [ebp - 0x15e], dl
movzx eax, byte [ebp - 0x15c]
mov cl, byte [ebp + eax - 0x3b8]
mov byte [ebp - 0x15d], cl
movss xmm0, dword [0xac04e0]
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [0xac0498]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [0xac0410]
movss dword [ebp - 0x1dc], xmm0
movss xmm0, dword [0xac03ac]
movss dword [ebp - 0x244], xmm0
movss xmm0, dword [0xac0340]
movss dword [ebp - 0x278], xmm0
movss xmm0, dword [0xac02d4]
movss dword [ebp - 0x224], xmm0
movss xmm0, dword [0xac0260]
movss dword [ebp - 0x1ac], xmm0
movss xmm0, dword [ebp - 0x1dc]
mulss xmm0, dword [ebp - 0x1ac]
movss dword [ebp - 0x1dc], xmm0
movss xmm0, dword [ebp - 0x1a4]
subss xmm0, dword [ebp - 0x1ac]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [ebp - 0x1dc]
addss xmm0, dword [ebp - 0x1ac]
movss dword [ebp - 0x1dc], xmm0
movss xmm0, dword [ebp - 0x1d4]
mulss xmm0, dword [ebp - 0x1ac]
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [ebp - 0x1a4]
mulss xmm0, dword [ebp - 0x1ac]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [ebp - 0x1a4]
addss xmm0, dword [ebp - 0x1ac]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [ebp - 0x224]
addss xmm0, dword [ebp - 0x1ac]
movss dword [ebp - 0x224], xmm0
movss xmm0, dword [ebp - 0x1ac]
comiss xmm0, dword [ebp - 0x1d4]
jbe 0x516944
movss xmm0, dword [ebp - 0x1d4]
divss xmm0, dword [ebp - 0x1a4]
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [ebp - 0x1ac]
subss xmm0, dword [ebp - 0x1d4]
movss dword [ebp - 0x1ac], xmm0
movss xmm0, dword [ebp - 0x244]
mulss xmm0, dword [ebp - 0x278]
movss dword [ebp - 0x244], xmm0
movss xmm0, dword [ebp - 0x1a4]
addss xmm0, dword [ebp - 0x1dc]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [ebp - 0x1d4]
addss xmm0, dword [ebp - 0x1a4]
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [ebp - 0x224]
divss xmm0, dword [ebp - 0x1ac]
movss dword [ebp - 0x224], xmm0
movss xmm0, dword [ebp - 0x278]
subss xmm0, dword [ebp - 0x224]
movss dword [ebp - 0x278], xmm0
jmp 0x516a23
movss xmm0, dword [ebp - 0x1d4]
addss xmm0, dword [ebp - 0x1a4]
movss dword [ebp - 0x1d4], xmm0
movss xmm0, dword [ebp - 0x1a4]
addss xmm0, dword [ebp - 0x1dc]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [ebp - 0x244]
mulss xmm0, dword [ebp - 0x278]
movss dword [ebp - 0x244], xmm0
movss xmm0, dword [ebp - 0x224]
subss xmm0, dword [ebp - 0x1ac]
movss dword [ebp - 0x224], xmm0
movss xmm0, dword [ebp - 0x1dc]
addss xmm0, dword [ebp - 0x244]
movss dword [ebp - 0x1dc], xmm0
movss xmm0, dword [ebp - 0x1a4]
subss xmm0, dword [ebp - 0x1dc]
movss dword [ebp - 0x1a4], xmm0
movss xmm0, dword [ebp - 0x1a4]
addss xmm0, dword [ebp - 0x1dc]
movss dword [ebp - 0x1a4], xmm0
movzx edx, byte [ebp - 0x159]
movzx eax, byte [ebp + edx - 0x3b8]
mov dword [ebp - 0x3f8], eax
mov cl, byte [ebp - 0x159]
add cl, 1
mov byte [ebp - 0x159], cl
movzx edx, byte [ebp - 0x15a]
add edx, dword [ebp - 0x3f8]
mov byte [ebp - 0x15a], dl
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp - 0x15c]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp - 0x15a]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x159]
movzx ecx, byte [ebp - 0x15b]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movsd xmm0, qword [0xac0170]
movsd qword [ebp - 0x20c], xmm0
movsd xmm0, qword [0xac0078]
movsd qword [ebp - 0x260], xmm0
movsd xmm0, qword [0xabfef8]
movsd qword [ebp - 0x1b4], xmm0
movsd xmm0, qword [0xabfd70]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [0xabfbd8]
movsd qword [ebp - 0x218], xmm0
movsd xmm0, qword [0xabf9b8]
movsd qword [ebp - 0x1f4], xmm0
movsd xmm0, qword [ebp - 0x20c]
mulsd xmm0, qword [ebp - 0x1f4]
movsd qword [ebp - 0x20c], xmm0
movsd xmm0, qword [ebp - 0x1c4]
mulsd xmm0, qword [ebp - 0x1f4]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x20c]
mulsd xmm0, qword [ebp - 0x1f4]
movsd qword [ebp - 0x20c], xmm0
movsd xmm0, qword [ebp - 0x218]
mulsd xmm0, qword [ebp - 0x1f4]
movsd qword [ebp - 0x218], xmm0
movsd xmm0, qword [ebp - 0x20c]
subsd xmm0, qword [ebp - 0x1f4]
movsd qword [ebp - 0x20c], xmm0
movsd xmm0, qword [ebp - 0x1c4]
mulsd xmm0, qword [ebp - 0x1f4]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x20c]
comisd xmm0, xmmword [ebp - 0x1f4]
jbe 0x516c26
movsd xmm0, qword [ebp - 0x218]
subsd xmm0, qword [ebp - 0x1f4]
movsd qword [ebp - 0x218], xmm0
movsd xmm0, qword [ebp - 0x218]
mulsd xmm0, qword [ebp - 0x1f4]
movsd qword [ebp - 0x218], xmm0
movsd xmm0, qword [ebp - 0x1b4]
subsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x1b4], xmm0
movsd xmm0, qword [ebp - 0x1b4]
mulsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x1b4], xmm0
movsd xmm0, qword [ebp - 0x1b4]
mulsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x1b4], xmm0
movsd xmm0, qword [ebp - 0x20c]
addsd xmm0, qword [ebp - 0x260]
movsd qword [ebp - 0x20c], xmm0
movzx eax, byte [ebp - 0x159]
mov cl, byte [ebp - 0x15d]
mov byte [ebp + eax - 0x3b8], cl
jmp 0x516e81
movsd xmm0, qword [ebp - 0x1b4]
addsd xmm0, qword [ebp - 0x218]
movsd qword [ebp - 0x1b4], xmm0
movsd xmm0, qword [ebp - 0x1f4]
addsd xmm0, qword [ebp - 0x260]
movsd qword [ebp - 0x1f4], xmm0
movsd xmm0, qword [ebp - 0x20c]
mulsd xmm0, qword [ebp - 0x1b4]
movsd qword [ebp - 0x20c], xmm0
movsd xmm0, qword [ebp - 0x1b4]
mulsd xmm0, qword [ebp - 0x218]
movsd qword [ebp - 0x1b4], xmm0
movsd xmm0, qword [ebp - 0x1f4]
mulsd xmm0, qword [ebp - 0x260]
movsd qword [ebp - 0x1f4], xmm0
movsd xmm0, qword [ebp - 0x260]
subsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x260], xmm0
movsd xmm0, qword [ebp - 0x20c]
addsd xmm0, qword [ebp - 0x1b4]
movsd qword [ebp - 0x20c], xmm0
movsd xmm0, qword [ebp - 0x20c]
mulsd xmm0, qword [ebp - 0x1b4]
movsd qword [ebp - 0x20c], xmm0
movsd xmm0, qword [ebp - 0x20c]
addsd xmm0, qword [ebp - 0x1b4]
movsd qword [ebp - 0x20c], xmm0
movsd xmm0, qword [ebp - 0x1f4]
subsd xmm0, qword [ebp - 0x260]
movsd qword [ebp - 0x1f4], xmm0
movsd xmm0, qword [ebp - 0x1f4]
subsd xmm0, qword [ebp - 0x260]
movsd qword [ebp - 0x1f4], xmm0
movsd xmm0, qword [ebp - 0x1b4]
mulsd xmm0, qword [ebp - 0x218]
movsd qword [ebp - 0x1b4], xmm0
movsd xmm0, qword [ebp - 0x218]
comisd xmm0, xmmword [ebp - 0x1b4]
jbe 0x516df1
movsd xmm0, qword [ebp - 0x1f4]
divsd xmm0, qword [ebp - 0x20c]
movsd qword [ebp - 0x1f4], xmm0
movsd xmm0, qword [ebp - 0x1c4]
subsd xmm0, qword [ebp - 0x218]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x1c4]
divsd xmm0, qword [ebp - 0x218]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x1c4]
mulsd xmm0, qword [ebp - 0x218]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x1c4]
subsd xmm0, qword [ebp - 0x218]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x1b4]
subsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x1b4], xmm0
jmp 0x516e81
movsd xmm0, qword [ebp - 0x1c4]
subsd xmm0, qword [ebp - 0x218]
movsd qword [ebp - 0x1c4], xmm0
movsd xmm0, qword [ebp - 0x1b4]
mulsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x1b4], xmm0
movsd xmm0, qword [ebp - 0x260]
divsd xmm0, qword [ebp - 0x1b4]
movsd qword [ebp - 0x260], xmm0
movsd xmm0, qword [ebp - 0x260]
divsd xmm0, qword [ebp - 0x1b4]
movsd qword [ebp - 0x260], xmm0
movsd xmm0, qword [ebp - 0x1b4]
mulsd xmm0, qword [ebp - 0x1c4]
movsd qword [ebp - 0x1b4], xmm0
movsd xmm0, qword [ebp - 0x1c4]
divsd xmm0, qword [ebp - 0x218]
movsd qword [ebp - 0x1c4], xmm0
movzx edx, byte [ebp - 0x15d]
movzx eax, byte [ebp + edx - 0x3b8]
movzx ecx, byte [ebp - 0x15f]
add ecx, eax
mov byte [ebp - 0x15f], cl
movzx edx, byte [ebp - 0x15e]
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx eax, byte [ebp - 0x159]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3b8]
xor edx, ecx
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx eax, byte [ebp - 0x15c]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
movzx eax, byte [ebp - 0x15f]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3b8]
movzx eax, byte [ebp + ecx - 0x3b8]
xor edx, eax
mov byte [ebp - 0x15b], dl
mov cl, byte [ebp - 0x15e]
mov byte [ebp - 0x15c], cl
mov dl, byte [ebp - 0x15b]
mov byte [ebp - 0x160], dl
cmp dword [ebp - 0x168], 0
jle 0x516f56
mov eax, dword [ebp - 0x168]
mov cl, byte [ebp - 0x160]
mov byte [ebp + eax - 0x15], cl
jmp 0x51666d
mov edx, dword [ebp - 0x16c]
add edx, 1
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x168]
add eax, 1
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0x16c]
add ecx, 1
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x168]
shl edx, 1
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x188]
add eax, dword [ebp - 0x1a0]
movzx ecx, byte [eax]
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x180], 0xdf
mov edx, dword [ebp - 0x168]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x188]
add ecx, dword [ebp - 0x18c]
movzx edx, byte [ecx]
mov dword [ebp - 0x17c], edx
mov dword [ebp - 0x170], 0xaa
mov eax, dword [ebp - 0x184]
sub eax, dword [ebp - 0x180]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x17c]
sub ecx, dword [ebp - 0x170]
mov dword [ebp - 0x174], ecx
mov edx, dword [ebp - 0x178]
shl edx, 4
mov dword [ebp - 0x190], edx
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x190]
or ecx, dword [ebp - 0x198]
mov dword [ebp - 0x194], ecx
mov dl, byte [ebp - 0x194]
mov byte [ebp - 0x15e], dl
movzx eax, byte [ebp - 0x15c]
mov cl, byte [ebp + eax - 0x3b8]
mov byte [ebp - 0x15d], cl
movzx edx, byte [ebp - 0x159]
movzx eax, byte [ebp + edx - 0x3b8]
mov dword [ebp - 0x3f0], eax
mov cl, byte [ebp - 0x159]
add cl, 1
mov byte [ebp - 0x159], cl
movzx edx, byte [ebp - 0x15a]
add edx, dword [ebp - 0x3f0]
mov byte [ebp - 0x15a], dl
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp - 0x15c]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp - 0x15a]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x159]
movzx ecx, byte [ebp - 0x15b]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x159]
mov cl, byte [ebp - 0x15d]
mov byte [ebp + eax - 0x3b8], cl
movzx edx, byte [ebp - 0x15d]
movzx eax, byte [ebp + edx - 0x3b8]
movzx ecx, byte [ebp - 0x15f]
add ecx, eax
mov byte [ebp - 0x15f], cl
movzx edx, byte [ebp - 0x15e]
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx eax, byte [ebp - 0x159]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3b8]
xor edx, ecx
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx eax, byte [ebp - 0x15c]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
movzx eax, byte [ebp - 0x15f]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3b8]
movzx eax, byte [ebp + ecx - 0x3b8]
xor edx, eax
mov byte [ebp - 0x15b], dl
mov cl, byte [ebp - 0x15e]
mov byte [ebp - 0x15c], cl
mov dl, byte [ebp - 0x15b]
mov byte [ebp - 0x160], dl
cmp dword [ebp - 0x168], 0
jle 0x5171c9
mov eax, dword [ebp - 0x168]
mov cl, byte [ebp - 0x160]
mov byte [ebp + eax - 0x15], cl
mov edx, dword [ebp - 0x168]
add edx, 1
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x16c]
add eax, 1
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x168]
shl ecx, 1
mov dword [ebp - 0x1a0], ecx
mov edx, dword [ebp - 0x188]
add edx, dword [ebp - 0x1a0]
movzx eax, byte [edx]
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], 0xdf
mov ecx, dword [ebp - 0x168]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x18c], edx
mov eax, dword [ebp - 0x188]
add eax, dword [ebp - 0x18c]
movzx ecx, byte [eax]
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0x170], 0xaa
mov edx, dword [ebp - 0x184]
sub edx, dword [ebp - 0x180]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x17c]
sub eax, dword [ebp - 0x170]
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x178]
shl ecx, 4
mov dword [ebp - 0x190], ecx
mov edx, dword [ebp - 0x174]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x190]
or eax, dword [ebp - 0x198]
mov dword [ebp - 0x194], eax
mov cl, byte [ebp - 0x194]
mov byte [ebp - 0x15e], cl
movzx edx, byte [ebp - 0x15c]
mov al, byte [ebp + edx - 0x3b8]
mov byte [ebp - 0x15d], al
movzx ecx, byte [ebp - 0x159]
movzx edx, byte [ebp + ecx - 0x3b8]
mov dword [ebp - 0x3ec], edx
mov al, byte [ebp - 0x159]
add al, 1
mov byte [ebp - 0x159], al
movzx ecx, byte [ebp - 0x15a]
add ecx, dword [ebp - 0x3ec]
mov byte [ebp - 0x15a], cl
movzx edx, byte [ebp - 0x15a]
movzx eax, byte [ebp - 0x15c]
mov cl, byte [ebp + edx - 0x3b8]
mov byte [ebp + eax - 0x3b8], cl
movzx edx, byte [ebp - 0x15b]
movzx eax, byte [ebp - 0x15a]
mov cl, byte [ebp + edx - 0x3b8]
mov byte [ebp + eax - 0x3b8], cl
movzx edx, byte [ebp - 0x159]
movzx eax, byte [ebp - 0x15b]
mov cl, byte [ebp + edx - 0x3b8]
mov byte [ebp + eax - 0x3b8], cl
movzx edx, byte [ebp - 0x159]
mov al, byte [ebp - 0x15d]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x15d]
movzx edx, byte [ebp + ecx - 0x3b8]
movzx eax, byte [ebp - 0x15f]
add eax, edx
mov byte [ebp - 0x15f], al
movzx ecx, byte [ebp - 0x15e]
movzx edx, byte [ebp - 0x15a]
movzx eax, byte [ebp + edx - 0x3b8]
movzx edx, byte [ebp - 0x159]
movzx edx, byte [ebp + edx - 0x3b8]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x3b8]
xor ecx, eax
movzx edx, byte [ebp - 0x15b]
movzx eax, byte [ebp + edx - 0x3b8]
movzx edx, byte [ebp - 0x15c]
movzx edx, byte [ebp + edx - 0x3b8]
add eax, edx
movzx edx, byte [ebp - 0x15f]
movzx edx, byte [ebp + edx - 0x3b8]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x3b8]
movzx edx, byte [ebp + eax - 0x3b8]
xor ecx, edx
mov byte [ebp - 0x15b], cl
mov al, byte [ebp - 0x15e]
mov byte [ebp - 0x15c], al
mov cl, byte [ebp - 0x15b]
mov byte [ebp - 0x160], cl
cmp dword [ebp - 0x168], 0
jle 0x517425
mov edx, dword [ebp - 0x168]
mov al, byte [ebp - 0x160]
mov byte [ebp + edx - 0x15], al
mov ecx, dword [ebp - 0x16c]
add ecx, 5
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x168]
add edx, 1
mov dword [ebp - 0x284], edx
jmp 0x517454
mov eax, dword [ebp - 0x284]
add eax, 1
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x284]
cmp ecx, dword [ebp - 0x16c]
jge 0x5178c7
mov edx, dword [ebp - 0x168]
add edx, 1
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x168]
shl eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x188]
add ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov dword [ebp - 0x184], edx
mov dword [ebp - 0x180], 0xdf
mov eax, dword [ebp - 0x168]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x18c], ecx
mov edx, dword [ebp - 0x188]
add edx, dword [ebp - 0x18c]
movzx eax, byte [edx]
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x170], 0xaa
mov ecx, dword [ebp - 0x184]
sub ecx, dword [ebp - 0x180]
mov dword [ebp - 0x178], ecx
mov edx, dword [ebp - 0x17c]
sub edx, dword [ebp - 0x170]
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x178]
shl eax, 4
mov dword [ebp - 0x190], eax
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x190]
or edx, dword [ebp - 0x198]
mov dword [ebp - 0x194], edx
movsd xmm0, qword [0xabff10]
movsd qword [ebp - 0x1d0], xmm0
movsd xmm0, qword [0xabfcf0]
movsd qword [ebp - 0x230], xmm0
movsd xmm0, qword [0xabfa90]
movsd qword [ebp - 0x1ec], xmm0
movsd xmm0, qword [ebp - 0x230]
subsd xmm0, qword [ebp - 0x1ec]
movsd qword [ebp - 0x230], xmm0
movsd xmm0, qword [ebp - 0x1d0]
addsd xmm0, qword [ebp - 0x1ec]
movsd qword [ebp - 0x1d0], xmm0
movsd xmm0, qword [ebp - 0x1d0]
mulsd xmm0, qword [ebp - 0x1ec]
movsd qword [ebp - 0x1d0], xmm0
movsd xmm0, qword [ebp - 0x230]
comisd xmm0, xmmword [ebp - 0x1d0]
jbe 0x5176e6
movsd xmm0, qword [ebp - 0x1d0]
mulsd xmm0, qword [ebp - 0x230]
movsd qword [ebp - 0x1d0], xmm0
movsd xmm0, qword [ebp - 0x1d0]
divsd xmm0, qword [ebp - 0x230]
movsd qword [ebp - 0x1d0], xmm0
movsd xmm0, qword [ebp - 0x1ec]
mulsd xmm0, qword [ebp - 0x1d0]
movsd qword [ebp - 0x1ec], xmm0
movsd xmm0, qword [ebp - 0x1ec]
subsd xmm0, qword [ebp - 0x230]
movsd qword [ebp - 0x1ec], xmm0
movsd xmm0, qword [ebp - 0x1d0]
addsd xmm0, qword [ebp - 0x1ec]
movsd qword [ebp - 0x1d0], xmm0
movsd xmm0, qword [ebp - 0x1d0]
subsd xmm0, qword [ebp - 0x1ec]
movsd qword [ebp - 0x1d0], xmm0
movsd xmm0, qword [ebp - 0x230]
comisd xmm0, xmmword [ebp - 0x1d0]
jbe 0x51769c
movsd xmm0, qword [ebp - 0x230]
addsd xmm0, qword [ebp - 0x1ec]
movsd qword [ebp - 0x230], xmm0
movsd xmm0, qword [ebp - 0x230]
addsd xmm0, qword [ebp - 0x1ec]
movsd qword [ebp - 0x230], xmm0
movsd xmm0, qword [ebp - 0x1d0]
subsd xmm0, qword [ebp - 0x230]
movsd qword [ebp - 0x1d0], xmm0
jmp 0x5176e4
movsd xmm0, qword [ebp - 0x1ec]
divsd xmm0, qword [ebp - 0x1d0]
movsd qword [ebp - 0x1ec], xmm0
movsd xmm0, qword [ebp - 0x1ec]
divsd xmm0, qword [ebp - 0x1d0]
movsd qword [ebp - 0x1ec], xmm0
movsd xmm0, qword [ebp - 0x1ec]
divsd xmm0, qword [ebp - 0x1d0]
movsd qword [ebp - 0x1ec], xmm0
jmp 0x51773a
movsd xmm0, qword [ebp - 0x1ec]
mulsd xmm0, qword [ebp - 0x1d0]
movsd qword [ebp - 0x1ec], xmm0
movsd xmm0, qword [ebp - 0x230]
subsd xmm0, qword [ebp - 0x1ec]
movsd qword [ebp - 0x230], xmm0
movsd xmm0, qword [ebp - 0x1d0]
mulsd xmm0, qword [ebp - 0x230]
movsd qword [ebp - 0x1d0], xmm0
mov al, byte [ebp - 0x194]
mov byte [ebp - 0x15e], al
movzx ecx, byte [ebp - 0x15c]
mov dl, byte [ebp + ecx - 0x3b8]
mov byte [ebp - 0x15d], dl
movzx eax, byte [ebp - 0x159]
movzx ecx, byte [ebp + eax - 0x3b8]
mov dword [ebp - 0x3e8], ecx
mov dl, byte [ebp - 0x159]
add dl, 1
mov byte [ebp - 0x159], dl
movzx eax, byte [ebp - 0x15a]
add eax, dword [ebp - 0x3e8]
mov byte [ebp - 0x15a], al
movzx ecx, byte [ebp - 0x15a]
movzx edx, byte [ebp - 0x15c]
mov al, byte [ebp + ecx - 0x3b8]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp - 0x15a]
mov al, byte [ebp + ecx - 0x3b8]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x159]
movzx edx, byte [ebp - 0x15b]
mov al, byte [ebp + ecx - 0x3b8]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x159]
mov dl, byte [ebp - 0x15d]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x15d]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx edx, byte [ebp - 0x15f]
add edx, ecx
mov byte [ebp - 0x15f], dl
movzx eax, byte [ebp - 0x15e]
movzx ecx, byte [ebp - 0x15a]
movzx edx, byte [ebp + ecx - 0x3b8]
movzx ecx, byte [ebp - 0x159]
movzx ecx, byte [ebp + ecx - 0x3b8]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3b8]
xor eax, edx
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp + ecx - 0x3b8]
movzx ecx, byte [ebp - 0x15c]
movzx ecx, byte [ebp + ecx - 0x3b8]
add edx, ecx
movzx ecx, byte [ebp - 0x15f]
movzx ecx, byte [ebp + ecx - 0x3b8]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3b8]
movzx ecx, byte [ebp + edx - 0x3b8]
xor eax, ecx
mov byte [ebp - 0x15b], al
mov dl, byte [ebp - 0x15e]
mov byte [ebp - 0x15c], dl
mov al, byte [ebp - 0x15b]
mov byte [ebp - 0x160], al
cmp dword [ebp - 0x168], 0
jle 0x5178c2
mov ecx, dword [ebp - 0x168]
mov dl, byte [ebp - 0x160]
mov byte [ebp + ecx - 0x15], dl
jmp 0x517445
mov eax, dword [ebp - 0x16c]
add eax, 1
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x168]
add ecx, 1
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp - 0x16c]
add edx, 1
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x168]
shl eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x188]
add ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov dword [ebp - 0x184], edx
mov dword [ebp - 0x180], 0xdf
mov eax, dword [ebp - 0x168]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x18c], ecx
mov edx, dword [ebp - 0x188]
add edx, dword [ebp - 0x18c]
movzx eax, byte [edx]
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x170], 0xaa
mov ecx, dword [ebp - 0x184]
sub ecx, dword [ebp - 0x180]
mov dword [ebp - 0x178], ecx
mov edx, dword [ebp - 0x17c]
sub edx, dword [ebp - 0x170]
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x178]
shl eax, 4
mov dword [ebp - 0x190], eax
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x190]
or edx, dword [ebp - 0x198]
mov dword [ebp - 0x194], edx
mov al, byte [ebp - 0x194]
mov byte [ebp - 0x15e], al
movzx ecx, byte [ebp - 0x15c]
mov dl, byte [ebp + ecx - 0x3b8]
mov byte [ebp - 0x15d], dl
movzx eax, byte [ebp - 0x159]
movzx ecx, byte [ebp + eax - 0x3b8]
mov dword [ebp - 0x3e4], ecx
mov dl, byte [ebp - 0x159]
add dl, 1
mov byte [ebp - 0x159], dl
movzx eax, byte [ebp - 0x15a]
add eax, dword [ebp - 0x3e4]
mov byte [ebp - 0x15a], al
movzx ecx, byte [ebp - 0x15a]
movzx edx, byte [ebp - 0x15c]
mov al, byte [ebp + ecx - 0x3b8]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp - 0x15a]
mov al, byte [ebp + ecx - 0x3b8]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x159]
movzx edx, byte [ebp - 0x15b]
mov al, byte [ebp + ecx - 0x3b8]
mov byte [ebp + edx - 0x3b8], al
movzx ecx, byte [ebp - 0x159]
mov dl, byte [ebp - 0x15d]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x15d]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx edx, byte [ebp - 0x15f]
add edx, ecx
mov byte [ebp - 0x15f], dl
movss xmm0, dword [0xac04d8]
movss dword [ebp - 0x1fc], xmm0
movss xmm0, dword [0xac0428]
movss dword [ebp - 0x1f8], xmm0
movss xmm0, dword [0xac0370]
movss dword [ebp - 0x228], xmm0
movss xmm0, dword [0xac02ac]
movss dword [ebp - 0x1a8], xmm0
movss xmm0, dword [ebp - 0x1fc]
addss xmm0, dword [ebp - 0x1a8]
movss dword [ebp - 0x1fc], xmm0
movss xmm0, dword [ebp - 0x228]
subss xmm0, dword [ebp - 0x1a8]
movss dword [ebp - 0x228], xmm0
movss xmm0, dword [ebp - 0x1fc]
subss xmm0, dword [ebp - 0x1a8]
movss dword [ebp - 0x1fc], xmm0
movss xmm0, dword [ebp - 0x1fc]
mulss xmm0, dword [ebp - 0x1a8]
movss dword [ebp - 0x1fc], xmm0
movss xmm0, dword [ebp - 0x228]
comiss xmm0, dword [ebp - 0x1fc]
jbe 0x517b94
movss xmm0, dword [ebp - 0x1a8]
divss xmm0, dword [ebp - 0x1f8]
movss dword [ebp - 0x1a8], xmm0
movss xmm0, dword [ebp - 0x1a8]
divss xmm0, dword [ebp - 0x1f8]
movss dword [ebp - 0x1a8], xmm0
movss xmm0, dword [ebp - 0x1f8]
divss xmm0, dword [ebp - 0x1a8]
movss dword [ebp - 0x1f8], xmm0
movss xmm0, dword [ebp - 0x228]
subss xmm0, dword [ebp - 0x1fc]
movss dword [ebp - 0x228], xmm0
jmp 0x517c7a
movss xmm0, dword [ebp - 0x1f8]
addss xmm0, dword [ebp - 0x1a8]
movss dword [ebp - 0x1f8], xmm0
movss xmm0, dword [ebp - 0x1f8]
subss xmm0, dword [ebp - 0x1a8]
movss dword [ebp - 0x1f8], xmm0
movss xmm0, dword [ebp - 0x1a8]
mulss xmm0, dword [ebp - 0x1f8]
movss dword [ebp - 0x1a8], xmm0
movss xmm0, dword [ebp - 0x228]
mulss xmm0, dword [ebp - 0x1fc]
movss dword [ebp - 0x228], xmm0
movzx eax, byte [ebp - 0x15e]
movzx ecx, byte [ebp - 0x15a]
movzx edx, byte [ebp + ecx - 0x3b8]
movzx ecx, byte [ebp - 0x159]
movzx ecx, byte [ebp + ecx - 0x3b8]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3b8]
xor eax, edx
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp + ecx - 0x3b8]
movzx ecx, byte [ebp - 0x15c]
movzx ecx, byte [ebp + ecx - 0x3b8]
add edx, ecx
movzx ecx, byte [ebp - 0x15f]
movzx ecx, byte [ebp + ecx - 0x3b8]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x3b8]
movzx ecx, byte [ebp + edx - 0x3b8]
xor eax, ecx
mov byte [ebp - 0x15b], al
mov dl, byte [ebp - 0x15e]
mov byte [ebp - 0x15c], dl
mov al, byte [ebp - 0x15b]
mov byte [ebp - 0x160], al
cmp dword [ebp - 0x168], 0
jle 0x517cab
mov ecx, dword [ebp - 0x168]
mov dl, byte [ebp - 0x160]
mov byte [ebp + ecx - 0x15], dl
mov eax, dword [ebp - 0x168]
add eax, 1
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0x16c]
add ecx, 1
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x168]
shl edx, 1
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x188]
add eax, dword [ebp - 0x1a0]
movzx ecx, byte [eax]
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x180], 0xdf
mov edx, dword [ebp - 0x168]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x188]
add ecx, dword [ebp - 0x18c]
movzx edx, byte [ecx]
mov dword [ebp - 0x17c], edx
mov dword [ebp - 0x170], 0xaa
mov eax, dword [ebp - 0x184]
sub eax, dword [ebp - 0x180]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x17c]
sub ecx, dword [ebp - 0x170]
mov dword [ebp - 0x174], ecx
mov edx, dword [ebp - 0x178]
shl edx, 4
mov dword [ebp - 0x190], edx
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x190]
or ecx, dword [ebp - 0x198]
mov dword [ebp - 0x194], ecx
mov dl, byte [ebp - 0x194]
mov byte [ebp - 0x15e], dl
movzx eax, byte [ebp - 0x15c]
mov cl, byte [ebp + eax - 0x3b8]
mov byte [ebp - 0x15d], cl
movzx edx, byte [ebp - 0x159]
movzx eax, byte [ebp + edx - 0x3b8]
mov dword [ebp - 0x3e0], eax
mov cl, byte [ebp - 0x159]
add cl, 1
mov byte [ebp - 0x159], cl
movzx edx, byte [ebp - 0x15a]
add edx, dword [ebp - 0x3e0]
mov byte [ebp - 0x15a], dl
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp - 0x15c]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp - 0x15a]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x159]
movzx ecx, byte [ebp - 0x15b]
mov dl, byte [ebp + eax - 0x3b8]
mov byte [ebp + ecx - 0x3b8], dl
movzx eax, byte [ebp - 0x159]
mov cl, byte [ebp - 0x15d]
mov byte [ebp + eax - 0x3b8], cl
movzx edx, byte [ebp - 0x15d]
movzx eax, byte [ebp + edx - 0x3b8]
movzx ecx, byte [ebp - 0x15f]
add ecx, eax
mov byte [ebp - 0x15f], cl
movzx edx, byte [ebp - 0x15e]
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx eax, byte [ebp - 0x159]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3b8]
xor edx, ecx
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp + eax - 0x3b8]
movzx eax, byte [ebp - 0x15c]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
movzx eax, byte [ebp - 0x15f]
movzx eax, byte [ebp + eax - 0x3b8]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x3b8]
movzx eax, byte [ebp + ecx - 0x3b8]
xor edx, eax
mov byte [ebp - 0x15b], dl
mov cl, byte [ebp - 0x15e]
mov byte [ebp - 0x15c], cl
mov dl, byte [ebp - 0x15b]
mov byte [ebp - 0x160], dl
cmp dword [ebp - 0x168], 0
jle 0x517f0a
mov eax, dword [ebp - 0x168]
mov cl, byte [ebp - 0x160]
mov byte [ebp + eax - 0x15], cl
mov edx, 1
imul eax, edx, 0xf
mov dword [ebp - 0x2a0], eax
cmp dword [ebp - 0x2a0], 0x10
jae 0x517f23
jmp 0x517f28
call fcn.00a40cf2
mov ecx, dword [ebp - 0x2a0]
mov byte [ebp + ecx - 0x14], 0
jmp 0x517f82
mov dword [ebp - 0x274], 0
jmp 0x517f50
mov edx, dword [ebp - 0x274]
add edx, 1
mov dword [ebp - 0x274], edx
cmp dword [ebp - 0x274], 0x10
jge 0x517f82
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x2a4], eax
cmp dword [ebp - 0x2a4], 0x10
jae 0x517f70
jmp 0x517f75
call fcn.00a40cf2
mov ecx, dword [ebp - 0x2a4]
mov byte [ebp + ecx - 0x14], 0
jmp 0x517f41
lea edx, [ebp - 0x14]
mov dword [ebp - 0x248], edx
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x248]
mov dl, byte [ecx]
mov byte [ebp - 0x21a], dl
add dword [ebp - 0x248], 1
cmp byte [ebp - 0x21a], 0
jne 0x517f97
mov eax, dword [ebp - 0x248]
sub eax, dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0x2a8]
mov dword [ebp - 0x3dc], ecx
mov dword [ebp - 0x3f4], eax
lea edx, [ebp - 0x138]
add edx, 0xffffffff
mov dword [ebp - 0x270], edx
mov eax, dword [ebp - 0x270]
mov cl, byte [eax + 1]
mov byte [ebp - 0x21b], cl
add dword [ebp - 0x270], 1
cmp byte [ebp - 0x21b], 0
jne 0x517fe2
mov edi, dword [ebp - 0x270]
mov esi, dword [ebp - 0x3dc]
mov edx, dword [ebp - 0x3f4]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x38]
mov dword [ebp - 0x24c], eax
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x2ac], ecx
mov edx, dword [ebp - 0x24c]
mov al, byte [edx]
mov byte [ebp - 0x21c], al
add dword [ebp - 0x24c], 1
cmp byte [ebp - 0x21c], 0
jne 0x518036
mov ecx, dword [ebp - 0x24c]
sub ecx, dword [ebp - 0x2ac]
mov edx, dword [ebp - 0x2ac]
mov dword [ebp - 0x3cc], edx
mov dword [ebp - 0x3d0], ecx
lea eax, [ebp - 0x138]
add eax, 0xffffffff
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp - 0x26c]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x21d], dl
add dword [ebp - 0x26c], 1
cmp byte [ebp - 0x21d], 0
jne 0x518081
mov edi, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x3cc]
mov eax, dword [ebp - 0x3d0]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x294]
mov edx, dword [ecx + 0xc0]
mov dword [ebp - 0x3d4], edx
push 0
push 0
push 3
push 0
push 3
push 0
lea eax, [ebp - 0x138]
push eax
call dword [ebp - 0x3d4]
mov dword [ebp - 0x238], eax
cmp dword [ebp - 0x238], 0xffffffff
jne 0x518105
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x518358
xor ecx, ecx
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0
xor edx, edx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x13c], 0
mov eax, dword [ebp - 0x294]
mov ecx, dword [eax + 0xb0]
mov dword [ebp - 0x410], ecx
push 0
lea edx, [ebp - 0x13c]
push edx
push 8
lea eax, [ebp - 0x150]
push eax
push 0xc
lea ecx, [ebp - 0x148]
push ecx
push 0x2d1400
mov edx, dword [ebp - 0x238]
push edx
call dword [ebp - 0x410]
test eax, eax
jne 0x5181ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x250], eax
mov eax, dword [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x250]
jmp 0x518358
mov ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x288], ecx
mov edx, dword [ebp - 0x288]
push edx
call fcn.00a407c3
add esp, 4
mov dword [ebp - 0x3d8], eax
mov eax, dword [ebp - 0x3d8]
mov dword [ebp - 0x1d8], eax
mov ecx, dword [ebp - 0x288]
push ecx
push 0
mov edx, dword [ebp - 0x1d8]
push edx
call fcn.00a921e0
add esp, 0xc
mov eax, dword [ebp - 0x294]
mov ecx, dword [eax + 0xb0]
mov dword [ebp - 0x40c], ecx
push 0
lea edx, [ebp - 0x13c]
push edx
mov eax, dword [ebp - 0x288]
push eax
mov ecx, dword [ebp - 0x1d8]
push ecx
push 0xc
lea edx, [ebp - 0x148]
push edx
push 0x2d1400
mov eax, dword [ebp - 0x238]
push eax
call dword [ebp - 0x40c]
test eax, eax
jne 0x5182a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x250], eax
mov ecx, dword [ebp - 0x1d8]
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x2b0]
push edx
call fcn.00a407cc
add esp, 4
cmp dword [ebp - 0x2b0], 0
jne 0x518275
mov dword [ebp - 0x3bc], 0
jmp 0x51828b
mov dword [ebp - 0x1d8], 0x8123
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x3bc], eax
mov ecx, dword [ebp - 0x238]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x250]
jmp 0x518358
mov edx, dword [ebp - 0x1d8]
mov dword [ebp - 0x3c0], edx
mov eax, dword [ebp - 0x3c0]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2b4], ecx
cmp dword [ebp - 0x2b4], 0
je 0x5182ff
mov edx, dword [ebp - 0x1d8]
add edx, dword [ebp - 0x2b4]
push edx
lea ecx, [ebp - 0x428]
call fcn.0047cca0
mov dword [ebp - 0x3c4], eax
mov eax, dword [ebp - 0x3c4]
push eax
mov ecx, dword [ebp + 0xc]
call fcn.00509ef0
lea ecx, [ebp - 0x428]
call fcn.004794d0
mov ecx, dword [ebp - 0x1d8]
mov dword [ebp - 0x2b8], ecx
mov edx, dword [ebp - 0x2b8]
push edx
call fcn.00a407cc
add esp, 4
cmp dword [ebp - 0x2b8], 0
jne 0x51832f
mov dword [ebp - 0x3c8], 0
jmp 0x518345
mov dword [ebp - 0x1d8], 0x8123
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x238]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x250]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00a405be
mov esp, ebp
pop ebp
ret 8