Function at 0x403e6c
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x190
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
lea edx, [ebp - 0x18]
mov dword [edx - 4], esp
mov dword [edx + 8], 0xffffffff
mov dword [edx + 4], 0x408e50
mov esi, dword fs:[0]
mov dword [edx], esi
mov dword fs:[0], edx
mov byte [ecx], 1
xor edx, edx
mov dword [ecx + 4], edx
mov word [ecx + 8], 0
mov dword [ecx + 0xc], edx
mov word [ecx + 0x10], 0x100
xorps xmm0, xmm0
movups xmmword [ecx + 0x14], xmm0
movups xmmword [ecx + 0x24], xmm0
mov dword [ecx + 0x34], edx
mov dword [ecx + 0x38], edi
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x40], edx
mov byte [ecx + 0x44], 0
xorpd xmm1, xmm1
movsd xmm4, qword [0x6120e0]
movsd xmm5, qword [0x6120e8]
movsd xmm6, qword [0x6120f0]
movsd xmm0, qword [0x612100]
xorpd xmm3, xmm3
movapd xmm7, xmm3
mulsd xmm7, qword [0x6120d0]
mulsd xmm7, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm7, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x6120d8]
mulsd xmm2, xmm3
addsd xmm2, xmm4
divsd xmm7, xmm2
addsd xmm7, xmm1
movapd xmm2, xmm3
mulsd xmm2, xmm5
addsd xmm2, xmm7
movapd xmm1, xmm6
cmpltsd xmm1, xmm7
andpd xmm2, xmm1
andnpd xmm1, xmm7
movsd xmm7, qword [0x6120f8]
orpd xmm1, xmm2
addsd xmm3, xmm7
ucomisd xmm0, xmm3
ja 0x403efc
xorpd xmm0, xmm0
ucomisd xmm0, xmm1
mov dword [ebp - 0x144], ecx
jbe 0x403f9f
sub word [esi], sp
outsd dx, dword [esi]
and byte ss:[ecx + eax*2 + 0x6c], cl
outsd dx, dword [esi]
cmp bh, byte ss:[esi + 0x79]
jp 0x403fb7
insd dword es:[edi], dx
adc al, cl
adc bh, byte [edi - 0x3af442e8]
or eax, 0x19bd18c3
mov edi, 0xc70bc012
jmp 0x4048a1
lea eax, [0x403f88]
mov dword [ebp - 0x34], eax
movdqa xmm0, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
and dword [ecx], esp
movdqu xmmword [ebp + eax - 0x13c], xmm0
add eax, 0x10
paddb xmm0, xmm2
cmp eax, 0x100
jne 0x403fba
movsd xmm0, qword [0x612130]
movapd xmm2, xmm1
subsd xmm2, xmm0
cvttsd2si eax, xmm2
lea ecx, [0x403f77]
mov dword [ebp - 0x2c], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm1
ucomisd xmm1, xmm0
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x30], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
xor edx, edx
inc edx
cmp edi, 2
jb 0x40402a
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x404023
mov dword [ebp - 0x20], edi
mov edi, 0xc
cmp ecx, 3
ja case.default.0x404037
jmp dword [ecx*4 + 0x6122f0]
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffec4
mov eax, dword [ebp - 0x24]
jmp 0x40406f
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffec4
mov eax, dword [ebp - 0x30]
jmp 0x40406f
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffec4
mov eax, dword [ebp - 0x28]
jmp 0x404096
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffec4
mov eax, dword [ebp - 0x24]
mov al, ah
jmp 0x404096
movzx eax, bl
mov al, byte [ebp + eax - 0x13c]
mov esi, dword [ebp - 0x2c]
add esi, ecx
add esi, 0xfffffffc
add al, byte [esi]
inc ecx
movzx esi, al
add al, 0x15
cmp ecx, 0x14
mov ebx, 0
cmova ecx, ebx
movzx ebx, al
cmovbe ebx, esi
movzx esi, bl
mov eax, edx
and eax, esi
dec edi
je 0x4040c4
cmp eax, dword [ebp - 0x20]
ja 0x404032
jmp 0x4040cb
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov edi, dword [ebp - 0x20]
cmp edi, eax
je 0x4040fc
mov dl, byte [ebp + edi - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x13c], dl
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dl
xor byte [ebp + edi - 0x13c], dl
dec edi
jne 0x404018
movzx eax, byte [ebp - 0x13b]
mov dword [ebp - 0x2c], eax
mov edi, eax
mov bh, byte [ebp - 0x137]
movzx eax, byte [ebp + esi - 0x13c]
mov edx, dword [ebp - 0x34]
mov cl, byte [edx]
mov esi, edx
mov dl, byte [ebp + edi - 0x13c]
add dl, byte [ebp - 0x139]
mov byte [ebp - 0x24], dl
mov ch, byte [esi + 1]
movzx esi, dl
mov bl, byte [ebp + esi - 0x13c]
movzx edi, byte [ebp - 0x135]
mov dword [ebp - 0x28], eax
movzx edx, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], bl
mov bl, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], bl
mov eax, dword [ebp - 0x2c]
mov bl, al
inc bl
movzx eax, bl
mov bl, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x13c], bl
mov byte [ebp + eax - 0x13c], dl
add ch, 0x47
shl cl, 4
add cl, 0x60
or cl, ch
movzx eax, byte [ebp + esi - 0x13c]
add eax, edx
mov esi, 0xff
and eax, esi
movzx esi, cl
mov dword [ebp - 0x30], esi
xor cl, byte [ebp + eax - 0x13c]
add bh, byte [ebp + edx - 0x13c]
mov esi, edx
mov byte [ebp - 0x20], bh
movzx eax, byte [ebp + edi - 0x13c]
mov edx, dword [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x13c]
add edx, eax
movzx eax, bh
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
mov edx, 0xff
and eax, edx
movzx eax, byte [ebp + eax - 0x13c]
xor cl, byte [ebp + eax - 0x13c]
mov dh, byte [ebp - 0x24]
mov eax, esi
add dh, al
mov byte [ebp - 0x24], dh
mov eax, dword [ebp - 0x34]
mov dl, byte [eax + 2]
mov ch, byte [eax + 3]
movzx edi, dh
mov dh, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x30]
movzx ebx, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dh
movzx esi, cl
mov cl, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], cl
mov eax, dword [ebp - 0x2c]
mov cl, al
add cl, 2
movzx eax, cl
mov cl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], cl
mov byte [ebp + eax - 0x13c], bl
shl dl, 4
add dl, 0x60
add ch, 0x47
or ch, dl
movzx eax, byte [ebp + edi - 0x13c]
add eax, ebx
mov edi, 0xff
and eax, edi
movzx edx, ch
mov dword [ebp - 0x28], edx
xor ch, byte [ebp + eax - 0x13c]
movzx eax, byte [ebp + esi - 0x13c]
mov edx, dword [ebp - 0x30]
movzx edx, byte [ebp + edx - 0x13c]
add edx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
and eax, edi
movzx eax, byte [ebp + eax - 0x13c]
xor ch, byte [ebp + eax - 0x13c]
movsx eax, ch
mov word [ebp - 0x16a], ax
mov al, byte [ebp - 0x24]
add al, bl
mov byte [ebp - 0x24], al
mov edx, dword [ebp - 0x34]
mov bl, byte [edx + 4]
mov cl, byte [edx + 5]
movzx edi, al
mov bh, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x28]
movzx edx, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], bh
movzx esi, ch
mov ch, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], ch
mov eax, dword [ebp - 0x2c]
mov ch, al
add ch, 3
movzx eax, ch
mov ch, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], ch
mov byte [ebp + eax - 0x13c], dl
movzx eax, byte [ebp + esi - 0x13c]
mov esi, dword [ebp - 0x28]
movzx esi, byte [ebp + esi - 0x13c]
add esi, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, esi
add cl, 0x47
shl bl, 4
add bl, 0x60
or bl, cl
movzx ecx, byte [ebp + edi - 0x13c]
add ecx, edx
mov edi, edx
mov esi, 0xff
and ecx, esi
mov dl, byte [ebp + ecx - 0x13c]
xor dl, bl
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
movsx eax, dl
mov word [ebp - 0x168], ax
mov dh, byte [ebp - 0x24]
mov eax, edi
add dh, al
mov byte [ebp - 0x24], dh
mov eax, dword [ebp - 0x34]
mov cl, byte [eax + 6]
mov ch, byte [eax + 7]
movzx eax, bl
mov dword [ebp - 0x30], eax
movzx edi, dh
mov dh, byte [ebp + edi - 0x13c]
movzx esi, byte [ebp + eax - 0x13c]
mov dword [ebp - 0x28], esi
mov byte [ebp + eax - 0x13c], dh
movzx esi, dl
mov bl, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], bl
mov eax, dword [ebp - 0x2c]
mov ebx, eax
add bl, 4
movzx ebx, bl
mov al, byte [ebp + ebx - 0x13c]
mov byte [ebp + esi - 0x13c], al
mov edx, dword [ebp - 0x28]
mov byte [ebp + ebx - 0x13c], dl
add ch, 0x47
shl cl, 4
add cl, 0x60
or cl, ch
movzx eax, byte [ebp + edi - 0x13c]
add eax, edx
mov ebx, 0xff
and eax, ebx
movzx edi, cl
xor cl, byte [ebp + eax - 0x13c]
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], ch
movzx eax, byte [ebp + esi - 0x13c]
mov edx, dword [ebp - 0x30]
movzx edx, byte [ebp + edx - 0x13c]
add edx, eax
movzx eax, ch
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
and eax, ebx
movzx eax, byte [ebp + eax - 0x13c]
xor cl, byte [ebp + eax - 0x13c]
movsx eax, cl
mov word [ebp - 0x166], ax
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x28]
mov byte [ebp - 0x24], al
mov edx, dword [ebp - 0x34]
mov ch, byte [edx + 8]
mov dl, byte [edx + 9]
mov byte [ebp - 0x28], dl
movzx esi, al
mov al, byte [ebp + esi - 0x13c]
movzx edx, byte [ebp + edi - 0x13c]
mov byte [ebp + edi - 0x13c], al
movzx ebx, cl
mov cl, byte [ebp + ebx - 0x13c]
mov byte [ebp + esi - 0x13c], cl
mov eax, dword [ebp - 0x2c]
mov cl, al
add cl, 5
movzx eax, cl
mov cl, byte [ebp + eax - 0x13c]
mov byte [ebp + ebx - 0x13c], cl
mov byte [ebp + eax - 0x13c], dl
movzx eax, byte [ebp + ebx - 0x13c]
movzx edi, byte [ebp + edi - 0x13c]
add edi, eax
mov al, byte [ebp - 0x20]
mov ebx, edx
add al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, edi
mov cl, byte [ebp - 0x28]
add cl, 0x47
shl ch, 4
add ch, 0x60
or ch, cl
movzx edx, byte [ebp + esi - 0x13c]
add edx, ebx
mov edi, ebx
mov esi, 0xff
and edx, esi
mov dl, byte [ebp + edx - 0x13c]
xor dl, ch
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
movsx eax, dl
mov word [ebp - 0x164], ax
mov bl, byte [ebp - 0x24]
mov eax, edi
add bl, al
mov byte [ebp - 0x24], bl
mov eax, dword [ebp - 0x34]
mov cl, byte [eax + 0xa]
mov al, byte [eax + 0xb]
mov byte [ebp - 0x28], al
movzx esi, ch
movzx edi, bl
mov ch, byte [ebp + edi - 0x13c]
movzx eax, byte [ebp + esi - 0x13c]
mov dword [ebp - 0x30], eax
mov byte [ebp + esi - 0x13c], ch
movzx ebx, dl
mov dl, byte [ebp + ebx - 0x13c]
mov byte [ebp + edi - 0x13c], dl
mov eax, dword [ebp - 0x2c]
mov edx, eax
add dl, 6
movzx eax, dl
mov dl, byte [ebp + eax - 0x13c]
mov byte [ebp + ebx - 0x13c], dl
mov edx, dword [ebp - 0x30]
mov byte [ebp + eax - 0x13c], dl
movzx eax, byte [ebp + ebx - 0x13c]
movzx esi, byte [ebp + esi - 0x13c]
add esi, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x13c]
mov ebx, edx
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, esi
mov dl, byte [ebp - 0x28]
add dl, 0x47
shl cl, 4
add cl, 0x60
or cl, dl
movzx edx, byte [ebp + edi - 0x13c]
add edx, ebx
mov edi, ebx
mov esi, 0xff
and edx, esi
mov dl, byte [ebp + edx - 0x13c]
xor dl, cl
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
movsx eax, dl
mov word [ebp - 0x162], ax
mov bh, byte [ebp - 0x24]
mov eax, edi
add bh, al
mov eax, dword [ebp - 0x34]
mov ch, byte [eax + 0xc]
mov bl, byte [eax + 0xd]
movzx eax, cl
mov dword [ebp - 0x24], eax
movzx edi, bh
mov cl, byte [ebp + edi - 0x13c]
movzx esi, byte [ebp + eax - 0x13c]
mov dword [ebp - 0x30], esi
mov byte [ebp + eax - 0x13c], cl
movzx esi, dl
mov cl, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], cl
mov eax, dword [ebp - 0x2c]
mov cl, al
add cl, 7
movzx eax, cl
mov cl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], cl
mov edx, dword [ebp - 0x30]
mov byte [ebp + eax - 0x13c], dl
shl ch, 4
add ch, 0x60
add bl, 0x47
or bl, ch
movzx eax, byte [ebp + edi - 0x13c]
add eax, edx
mov ecx, 0xff
and eax, ecx
movzx ecx, bl
mov dword [ebp - 0x28], ecx
xor bl, byte [ebp + eax - 0x13c]
movzx eax, byte [ebp + esi - 0x13c]
mov ecx, dword [ebp - 0x24]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, ecx
mov ecx, 0xff
and eax, ecx
movzx eax, byte [ebp + eax - 0x13c]
xor bl, byte [ebp + eax - 0x13c]
movsx eax, bl
mov word [ebp - 0x160], ax
mov cl, bh
add cl, dl
mov byte [ebp - 0x24], cl
mov esi, dword [ebp - 0x34]
mov al, byte [esi + 0xe]
mov dl, byte [esi + 0xf]
mov byte [ebp - 0x30], dl
movzx esi, cl
mov ah, byte [ebp + esi - 0x13c]
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ebp + ecx - 0x13c]
mov byte [ebp + ecx - 0x13c], ah
mov edi, ecx
movzx ebx, bl
mov ah, byte [ebp + ebx - 0x13c]
mov byte [ebp + esi - 0x13c], ah
mov ecx, dword [ebp - 0x2c]
mov ah, cl
add ah, 8
movzx ecx, ah
mov ah, byte [ebp + ecx - 0x13c]
mov byte [ebp + ebx - 0x13c], ah
mov byte [ebp + ecx - 0x13c], dl
movzx ecx, byte [ebp + ebx - 0x13c]
movzx edi, byte [ebp + edi - 0x13c]
add edi, ecx
mov cl, byte [ebp - 0x20]
mov ebx, edx
add cl, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], cl
movzx ecx, cl
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edi
mov dl, byte [ebp - 0x30]
add dl, 0x47
shl al, 4
add al, 0x60
or al, dl
movzx edx, byte [ebp + esi - 0x13c]
add edx, ebx
mov esi, 0xff
and edx, esi
mov dl, byte [ebp + edx - 0x13c]
xor dl, al
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x13c]
xor dl, byte [ebp + ecx - 0x13c]
movsx ecx, dl
mov word [ebp - 0x15e], cx
mov cl, byte [ebp - 0x24]
add cl, bl
mov esi, dword [ebp - 0x34]
mov dh, byte [esi + 0x10]
mov bl, byte [esi + 0x11]
movzx eax, al
mov dword [ebp - 0x24], eax
movzx esi, cl
mov bh, byte [ebp + esi - 0x13c]
movzx ecx, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], bh
movzx edi, dl
mov dl, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], dl
mov eax, dword [ebp - 0x2c]
add al, 9
movzx eax, al
mov dl, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x13c], dl
mov byte [ebp + eax - 0x13c], cl
movzx eax, byte [ebp + esi - 0x13c]
add eax, ecx
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + ecx - 0x13c]
shl dh, 4
add dh, 0x60
add bl, 0x47
or bl, dh
mov esi, 0xff
and eax, esi
xor bl, byte [ebp + eax - 0x13c]
movzx eax, dl
movzx ecx, byte [ebp + edi - 0x13c]
mov edx, dword [ebp - 0x24]
movzx edx, byte [ebp + edx - 0x13c]
add edx, ecx
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor bl, byte [ebp + eax - 0x13c]
movsx eax, bl
mov word [ebp - 0x15c], ax
mov word [ebp - 0x15a], 0
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x140], eax
xorpd xmm5, xmm5
movsd xmm6, qword [0x612150]
movsd xmm7, qword [0x612158]
movsd xmm0, qword [0x612160]
movsd xmm3, qword [0x612168]
xorpd xmm1, xmm1
movapd xmm2, xmm5
mulsd xmm2, qword [0x612138]
mulsd xmm2, xmm5
movapd xmm4, xmm5
mulsd xmm4, xmm5
subsd xmm2, xmm4
movapd xmm4, xmm5
mulsd xmm4, qword [0x612140]
mulsd xmm4, xmm5
addsd xmm4, qword [0x612148]
divsd xmm2, xmm4
addsd xmm2, xmm1
movapd xmm4, xmm5
mulsd xmm4, xmm6
addsd xmm4, xmm2
movapd xmm1, xmm7
cmpltsd xmm1, xmm2
andpd xmm4, xmm1
andnpd xmm1, xmm2
orpd xmm1, xmm4
addsd xmm5, xmm0
ucomisd xmm3, xmm5
ja 0x4048cf
xorpd xmm0, xmm0
ucomisd xmm0, xmm1
jbe 0x404981
pop edx
rcr byte [eax - 0x2c], 1
push ecx
fisttp dword [edi - 0x2d]
dec esp
xlatb
dec ebx
fst qword [esi - 0x28]
push esp
ror dword [ebp - 0x29], 1
dec esp
rcl dword [eax - 0x25]
push ebx
invalid
lea eax, [0x404940]
mov dword [ebp - 0x34], eax
movdqa xmm0, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x13c], xmm0
add eax, 0x10
paddb xmm0, xmm2
cmp eax, 0x100
jne 0x40499c
movsd xmm0, qword [0x612130]
movapd xmm2, xmm1
subsd xmm2, xmm0
cvttsd2si eax, xmm2
lea ecx, [0x404958]
mov dword [ebp - 0x2c], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm1
ucomisd xmm1, xmm0
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x30], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp esi, 2
jb 0x404a0c
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x404a05
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x404a19
jmp dword [ecx*4 + 0x612300]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
jmp 0x404a4b
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x30]
jmp 0x404a4b
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x28]
jmp 0x404a70
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x404a70
movzx eax, bl
mov bl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 0x2c]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x22
cmp ecx, 0x21
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x404a9f
cmp eax, dword [ebp - 0x20]
ja 0x404a14
jmp 0x404aa6
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
je 0x404ad7
mov dl, byte [ebp + esi - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], dl
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dl
xor byte [ebp + esi - 0x13c], dl
dec esi
jne 0x4049fa
movzx eax, byte [ebp - 0x13b]
mov dword [ebp - 0x2c], eax
mov esi, eax
mov al, byte [ebp - 0x137]
mov byte [ebp - 0x20], al
movzx ecx, byte [ebp + edi - 0x13c]
mov edx, dword [ebp - 0x34]
mov ah, byte [edx]
mov al, byte [edx + 1]
mov byte [ebp - 0x28], al
mov al, byte [ebp + esi - 0x13c]
add al, byte [ebp - 0x139]
mov byte [ebp - 0x24], al
movzx edi, al
mov al, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x30], edi
movzx esi, byte [ebp - 0x135]
mov dword [ebp - 0x38], ecx
movzx ebx, byte [ebp + ecx - 0x13c]
mov byte [ebp + ecx - 0x13c], al
mov al, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], al
mov ecx, dword [ebp - 0x2c]
mov al, cl
inc al
movzx ecx, al
mov al, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x13c], al
mov byte [ebp + ecx - 0x13c], bl
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
movzx ecx, byte [ebp + esi - 0x13c]
mov esi, dword [ebp - 0x38]
movzx esi, byte [ebp + esi - 0x13c]
add esi, ecx
mov byte [ebp - 0x20], al
movzx ecx, al
movzx edi, byte [ebp + ecx - 0x13c]
add edi, esi
mov al, byte [ebp - 0x28]
add al, 0x30
shl ah, 4
add ah, 0x50
or ah, al
mov ecx, dword [ebp - 0x30]
movzx ecx, byte [ebp + ecx - 0x13c]
mov dword [ebp - 0x28], ebx
add ecx, ebx
mov esi, 0xff
and ecx, esi
mov ch, byte [ebp + ecx - 0x13c]
xor ch, ah
and edi, esi
movzx edi, byte [ebp + edi - 0x13c]
xor ch, byte [ebp + edi - 0x13c]
mov ebx, dword [ebp - 0x2c]
add bl, 4
mov dword [ebp - 0x2c], ebx
xor edi, edi
mov dword [ebp - 0x38], edi
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x28]
movzx esi, ah
mov ah, byte [edx + edi*2 + 2]
mov cl, byte [edx + edi*2 + 3]
mov byte [ebp - 0x30], cl
mov byte [ebp - 0x24], al
movzx edi, al
mov cl, byte [ebp + edi - 0x13c]
movzx edx, byte [ebp + esi - 0x13c]
mov dword [ebp - 0x28], edx
mov byte [ebp + esi - 0x13c], cl
movzx edx, ch
mov bl, byte [ebp + edx - 0x13c]
mov byte [ebp + edi - 0x13c], bl
mov ecx, dword [ebp - 0x2c]
mov ebx, ecx
add bl, 0xfe
movzx ebx, bl
mov al, byte [ebp + ebx - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov ecx, dword [ebp - 0x28]
mov byte [ebp + ebx - 0x13c], cl
movzx edx, byte [ebp + edx - 0x13c]
movzx esi, byte [ebp + esi - 0x13c]
add esi, edx
mov al, byte [ebp - 0x20]
mov edx, ecx
add al, byte [ebp + ecx - 0x13c]
mov byte [ebp - 0x20], al
movzx ecx, al
movzx ebx, byte [ebp + ecx - 0x13c]
add ebx, esi
mov al, byte [ebp - 0x30]
add al, 0x30
shl ah, 4
add ah, 0x50
or ah, al
movzx ecx, byte [ebp + edi - 0x13c]
add ecx, edx
mov edx, 0xff
and ecx, edx
mov ch, byte [ebp + ecx - 0x13c]
xor ch, ah
and ebx, edx
movzx edx, byte [ebp + ebx - 0x13c]
xor ch, byte [ebp + edx - 0x13c]
movsx edx, ch
mov esi, dword [ebp - 0x38]
mov word [ebp + esi*2 - 0x182], dx
mov ebx, dword [ebp - 0x34]
lea edi, [esi + 1]
mov edx, dword [ebp - 0x2c]
inc dl
mov dword [ebp - 0x2c], edx
mov edx, ebx
cmp edi, 3
jne 0x404be1
mov cl, byte [edx + 8]
mov al, byte [edx + 9]
mov byte [ebp - 0x30], al
movzx esi, ah
mov dword [ebp - 0x38], esi
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x28]
movzx ebx, byte [ebp + esi - 0x13c]
mov byte [ebp - 0x24], al
movzx edi, al
mov dl, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], dl
movzx esi, ch
mov ch, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], ch
mov eax, dword [ebp - 0x2c]
mov ch, al
add ch, 0xfe
movzx edx, ch
mov ch, byte [ebp + edx - 0x13c]
mov byte [ebp + esi - 0x13c], ch
mov byte [ebp + edx - 0x13c], bl
mov al, byte [ebp - 0x30]
add al, 0x30
shl cl, 4
add cl, 0x50
or cl, al
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
movzx edx, byte [ebp + edi - 0x13c]
add edx, ebx
movzx esi, byte [ebp + esi - 0x13c]
mov edi, dword [ebp - 0x38]
movzx edi, byte [ebp + edi - 0x13c]
add edi, esi
mov dword [ebp - 0x28], edi
mov byte [ebp - 0x20], al
movzx esi, al
mov eax, dword [ebp - 0x2c]
movzx edi, byte [ebp + esi - 0x13c]
add edi, dword [ebp - 0x28]
mov esi, 0xff
and edx, esi
mov dh, byte [ebp + edx - 0x13c]
xor dh, cl
and edi, esi
movzx edi, byte [ebp + edi - 0x13c]
xor dh, byte [ebp + edi - 0x13c]
movsx edi, dh
mov word [ebp - 0x17c], di
xor edi, edi
mov ah, al
mov byte [ebp - 0x30], al
mov al, byte [ebp - 0x24]
add al, bl
movzx ebx, cl
mov dword [ebp - 0x38], ebx
mov esi, dword [ebp - 0x34]
mov cl, byte [esi + edi + 0xa]
mov dl, byte [esi + edi + 0xb]
mov byte [ebp - 0x28], dl
movzx esi, byte [ebp + ebx - 0x13c]
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x24], al
movzx esi, al
mov dl, byte [ebp + esi - 0x13c]
mov byte [ebp + ebx - 0x13c], dl
movzx edx, dh
mov al, byte [ebp + edx - 0x13c]
mov byte [ebp + esi - 0x13c], al
mov al, ah
dec al
movzx eax, al
mov ch, byte [ebp + eax - 0x13c]
mov byte [ebp + edx - 0x13c], ch
mov ebx, dword [ebp - 0x2c]
mov byte [ebp + eax - 0x13c], bl
movzx eax, byte [ebp + edx - 0x13c]
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x13c]
mov ebx, dword [ebp - 0x2c]
add edx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
mov dl, byte [ebp - 0x28]
add dl, 0x30
shl cl, 4
add cl, 0x50
or cl, dl
movzx edx, byte [ebp + esi - 0x13c]
add edx, ebx
mov esi, 0xff
and edx, esi
mov dh, byte [ebp + edx - 0x13c]
mov dl, byte [ebp - 0x30]
xor dh, cl
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor dh, byte [ebp + eax - 0x13c]
movsx eax, dh
mov word [ebp + edi - 0x17a], ax
add edi, 2
mov eax, edx
inc al
cmp edi, 0xa
jne 0x404db4
mov ch, byte [ebp - 0x24]
add ch, bl
mov byte [ebp - 0x24], ch
movzx edi, cl
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x34]
mov al, byte [esi + 0x14]
mov ah, byte [esi + 0x15]
movzx esi, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x3c], esi
movzx esi, ch
mov bl, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], bl
movzx ebx, dh
mov dh, byte [ebp + ebx - 0x13c]
mov byte [ebp + esi - 0x13c], dh
movzx edi, dl
mov cl, byte [ebp + edi - 0x13c]
mov byte [ebp + ebx - 0x13c], cl
mov edx, dword [ebp - 0x3c]
mov byte [ebp + edi - 0x13c], dl
add ah, 0x30
shl al, 4
add al, 0x50
or al, ah
movzx ecx, byte [ebp + esi - 0x13c]
add ecx, edx
mov esi, edx
mov edx, 0xff
and ecx, edx
movzx edx, al
mov dword [ebp - 0x28], edx
xor al, byte [ebp + ecx - 0x13c]
movzx ecx, byte [ebp + ebx - 0x13c]
mov edx, dword [ebp - 0x38]
movzx edi, byte [ebp + edx - 0x13c]
add edi, ecx
mov bh, byte [ebp - 0x20]
mov edx, esi
add bh, byte [ebp + esi - 0x13c]
movzx ecx, bh
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edi
mov esi, 0xff
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x13c]
xor al, byte [ebp + ecx - 0x13c]
movsx ecx, al
mov word [ebp - 0x170], cx
mov cl, byte [ebp - 0x24]
add cl, dl
mov edx, dword [ebp - 0x34]
mov ah, byte [edx + 0x16]
mov bl, byte [edx + 0x17]
movzx edi, cl
mov cl, byte [ebp + edi - 0x13c]
mov esi, dword [ebp - 0x28]
movzx edx, byte [ebp + esi - 0x13c]
mov byte [ebp + esi - 0x13c], cl
movzx esi, al
mov al, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], al
movzx ecx, byte [ebp - 0x2c]
mov al, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x13c], al
mov byte [ebp + ecx - 0x13c], dl
add bh, byte [ebp + edx - 0x13c]
movzx ecx, byte [ebp + edi - 0x13c]
add ecx, edx
add bl, 0x30
shl ah, 4
add ah, 0x50
or ah, bl
mov edi, 0xff
and ecx, edi
xor ah, byte [ebp + ecx - 0x13c]
movzx ecx, bh
movzx edx, byte [ebp + esi - 0x13c]
mov esi, dword [ebp - 0x28]
movzx esi, byte [ebp + esi - 0x13c]
add esi, edx
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, esi
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x13c]
xor ah, byte [ebp + ecx - 0x13c]
movsx eax, ah
mov word [ebp - 0x16e], ax
mov word [ebp - 0x16c], 0
xorpd xmm4, xmm4
movsd xmm6, qword [0x612188]
movsd xmm7, qword [0x612190]
movsd xmm0, qword [0x612198]
xorpd xmm1, xmm1
movsd xmm5, qword [0x6120f8]
movapd xmm2, xmm4
mulsd xmm2, qword [0x612170]
mulsd xmm2, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm2, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x612178]
mulsd xmm3, xmm4
addsd xmm3, qword [0x612180]
divsd xmm2, xmm3
addsd xmm2, xmm1
movapd xmm3, xmm4
mulsd xmm3, xmm6
addsd xmm3, xmm2
movapd xmm1, xmm7
cmpltsd xmm1, xmm2
andpd xmm3, xmm1
andnpd xmm1, xmm2
orpd xmm1, xmm3
addsd xmm4, xmm5
ucomisd xmm0, xmm4
ja 0x405070
xorpd xmm0, xmm0
ucomisd xmm0, xmm1
jbe 0x40511e
inc eax
cmp dh, byte [esi + ecx*2 + 0x75]
jp 0x40511c
inc ecx
sub ebx, dword [edx + ebp + 0x79]
push esp
dec ebx
aas
cmp eax, 0x37704532
bound edx, qword [ecx + 0x2b]
sub ebx, ebp
fcmovnu st(0), st(7)
aam 0xe1
fcomp st(6)
xlatb
fsub st(0)
in eax, 0xd8
salc
aad 0xe2
invalid
add byte [eax], al
lea edx, [0x4050f9]
movdqa xmm0, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x13c], xmm0
add eax, 0x10
paddb xmm0, xmm2
cmp eax, 0x100
jne 0x405136
movsd xmm0, qword [0x612130]
movapd xmm2, xmm1
subsd xmm2, xmm0
cvttsd2si eax, xmm2
lea ecx, [0x4050e1]
mov dword [ebp - 0x2c], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm1
ucomisd xmm1, xmm0
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x34], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x30], edx
xor edx, edx
inc edx
cmp esi, 2
jb 0x4051a9
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x4051a2
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x4051b6
jmp dword [ecx*4 + 0x612310]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
jmp 0x4051e8
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x34]
jmp 0x4051e8
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x28]
jmp 0x40520d
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x40520d
movzx eax, bl
mov bl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 0x2c]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x1c
cmp ecx, 0x1b
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x40523c
cmp eax, dword [ebp - 0x20]
ja 0x4051b1
jmp 0x405243
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
mov edx, dword [ebp - 0x30]
je 0x40527a
mov dl, byte [ebp + esi - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], dl
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dl
xor byte [ebp + esi - 0x13c], dl
mov edx, dword [ebp - 0x30]
dec esi
jne 0x405197
movzx eax, byte [ebp - 0x13b]
mov dword [ebp - 0x24], eax
mov esi, eax
mov al, byte [ebp - 0x137]
movzx ecx, byte [ebp + edi - 0x13c]
mov ah, byte [edx]
mov bl, byte [edx + 1]
mov byte [ebp - 0x20], bl
mov dl, byte [ebp + esi - 0x13c]
add dl, byte [ebp - 0x139]
movzx esi, dl
mov dh, byte [ebp + esi - 0x13c]
movzx edi, byte [ebp - 0x135]
mov dword [ebp - 0x28], ecx
movzx ebx, byte [ebp + ecx - 0x13c]
mov dword [ebp - 0x2c], ebx
mov byte [ebp + ecx - 0x13c], dh
mov bl, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], bl
mov ecx, dword [ebp - 0x24]
mov ebx, ecx
inc bl
movzx ebx, bl
mov dh, byte [ebp + ebx - 0x13c]
mov byte [ebp + edi - 0x13c], dh
mov ecx, dword [ebp - 0x2c]
mov byte [ebp + ebx - 0x13c], cl
mov cl, byte [ebp - 0x20]
add cl, 0x2c
shl ah, 4
add ah, 0xa0
or ah, cl
movzx ecx, byte [ebp + esi - 0x13c]
mov ebx, dword [ebp - 0x2c]
add ecx, ebx
mov esi, 0xff
and ecx, esi
movzx esi, ah
mov dword [ebp - 0x20], esi
xor ah, byte [ebp + ecx - 0x13c]
movzx ecx, byte [ebp + edi - 0x13c]
mov esi, dword [ebp - 0x28]
movzx edi, byte [ebp + esi - 0x13c]
add edi, ecx
add al, byte [ebp + ebx - 0x13c]
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edi
mov esi, 0xff
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x13c]
xor ah, byte [ebp + ecx - 0x13c]
add dl, bl
mov ecx, dword [ebp - 0x30]
mov dh, byte [ecx + 2]
mov cl, byte [ecx + 3]
movzx esi, dl
mov ch, byte [ebp + esi - 0x13c]
mov edi, dword [ebp - 0x20]
movzx ebx, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x2c], ebx
mov byte [ebp + edi - 0x13c], ch
movzx edi, ah
mov dword [ebp - 0x28], edi
mov ah, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], ah
mov ebx, dword [ebp - 0x24]
mov ah, bl
add ah, 2
movzx edi, ah
mov ah, byte [ebp + edi - 0x13c]
mov ebx, dword [ebp - 0x28]
mov byte [ebp + ebx - 0x13c], ah
mov ebx, dword [ebp - 0x2c]
mov byte [ebp + edi - 0x13c], bl
add cl, 0x2c
shl dh, 4
add dh, 0xa0
or dh, cl
movzx ecx, byte [ebp + esi - 0x13c]
add ecx, ebx
mov esi, 0xff
and ecx, esi
movzx esi, dh
xor dh, byte [ebp + ecx - 0x13c]
add al, byte [ebp + ebx - 0x13c]
mov ecx, dword [ebp - 0x28]
movzx ecx, byte [ebp + ecx - 0x13c]
mov edi, dword [ebp - 0x20]
movzx ebx, byte [ebp + edi - 0x13c]
add ebx, ecx
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, ebx
mov edi, dword [ebp - 0x30]
mov ebx, 0xff
and ecx, ebx
movzx ecx, byte [ebp + ecx - 0x13c]
xor dh, byte [ebp + ecx - 0x13c]
movsx ecx, dh
mov word [ebp - 0x19c], cx
add dl, byte [ebp - 0x2c]
mov cl, byte [edi + 4]
mov byte [ebp - 0x20], cl
mov ah, byte [edi + 5]
movzx edi, dl
mov dword [ebp - 0x2c], edi
mov ch, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x34], esi
movzx ebx, byte [ebp + esi - 0x13c]
mov byte [ebp + esi - 0x13c], ch
movzx esi, dh
mov ch, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], ch
mov ecx, dword [ebp - 0x24]
mov ch, cl
add ch, 3
movzx edi, ch
mov ch, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], ch
mov byte [ebp + edi - 0x13c], bl
movzx edi, byte [ebp + esi - 0x13c]
mov ecx, dword [ebp - 0x34]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edi
add al, byte [ebp + ebx - 0x13c]
movzx edi, al
movzx edi, byte [ebp + edi - 0x13c]
add edi, ecx
mov cl, byte [ebp - 0x20]
shl cl, 4
add cl, 0xa0
add ah, 0x2c
or ah, cl
mov ecx, dword [ebp - 0x2c]
movzx ecx, byte [ebp + ecx - 0x13c]
mov dword [ebp - 0x20], ebx
add ecx, ebx
mov esi, 0xff
and ecx, esi
mov dh, byte [ebp + ecx - 0x13c]
xor dh, ah
and edi, esi
movzx ecx, byte [ebp + edi - 0x13c]
xor dh, byte [ebp + ecx - 0x13c]
movsx ecx, dh
mov word [ebp - 0x19a], cx
mov ecx, dword [ebp - 0x24]
add cl, 4
movzx ecx, cl
mov dword [ebp - 0x24], ecx
xor edi, edi
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 0x2c], al
add dl, byte [ebp - 0x20]
mov byte [ebp - 0x28], dl
movzx esi, ah
mov ah, byte [ecx + edi*2 + 6]
mov al, byte [ecx + edi*2 + 7]
mov byte [ebp - 0x34], al
movzx ecx, byte [ebp + esi - 0x13c]
mov dword [ebp - 0x20], ecx
movzx ecx, dl
mov dword [ebp - 0x38], ecx
mov dl, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x13c], dl
movzx edx, dh
mov al, byte [ebp + edx - 0x13c]
mov byte [ebp + ecx - 0x13c], al
mov ebx, dword [ebp - 0x24]
add ebx, edi
mov ecx, 0xff
and ebx, ecx
mov al, byte [ebp + ebx - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov al, byte [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
mov byte [ebp + ebx - 0x13c], cl
add al, byte [ebp + ecx - 0x13c]
movzx edx, byte [ebp + edx - 0x13c]
movzx esi, byte [ebp + esi - 0x13c]
add esi, edx
movzx edx, al
movzx ebx, byte [ebp + edx - 0x13c]
mov dl, byte [ebp - 0x28]
add ebx, esi
mov cl, byte [ebp - 0x34]
add cl, 0x2c
shl ah, 4
add ah, 0xa0
or ah, cl
mov ecx, dword [ebp - 0x38]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, dword [ebp - 0x20]
mov esi, 0xff
and ecx, esi
mov dh, byte [ebp + ecx - 0x13c]
xor dh, ah
and ebx, esi
movzx ecx, byte [ebp + ebx - 0x13c]
xor dh, byte [ebp + ecx - 0x13c]
movsx ecx, dh
mov word [ebp + edi*2 - 0x198], cx
inc edi
cmp edi, 4
jne 0x405529
add dword [ebp - 0x24], edi
xor esi, esi
mov byte [ebp - 0x2c], al
add dl, byte [ebp - 0x20]
mov byte [ebp - 0x28], dl
movzx ecx, ah
mov edi, dword [ebp - 0x30]
mov ah, byte [edi + esi*2 + 0xe]
mov al, byte [edi + esi*2 + 0xf]
mov byte [ebp - 0x20], al
mov edi, ecx
mov dword [ebp - 0x38], ecx
movzx ebx, byte [ebp + ecx - 0x13c]
movzx ecx, dl
mov dword [ebp - 0x34], ecx
mov dl, byte [ebp + ecx - 0x13c]
mov byte [ebp + edi - 0x13c], dl
movzx edx, dh
mov al, byte [ebp + edx - 0x13c]
mov byte [ebp + ecx - 0x13c], al
movzx edi, byte [ebp - 0x24]
mov al, byte [ebp + edi - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov al, byte [ebp - 0x2c]
mov byte [ebp + edi - 0x13c], bl
add al, byte [ebp + ebx - 0x13c]
movzx edx, byte [ebp + edx - 0x13c]
mov ecx, dword [ebp - 0x38]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edx
movzx edx, al
movzx edi, byte [ebp + edx - 0x13c]
mov dl, byte [ebp - 0x28]
add edi, ecx
mov cl, byte [ebp - 0x20]
add cl, 0x2c
shl ah, 4
add ah, 0xa0
or ah, cl
mov ecx, dword [ebp - 0x34]
movzx ecx, byte [ebp + ecx - 0x13c]
mov dword [ebp - 0x20], ebx
add ecx, ebx
mov ebx, 0xff
and ecx, ebx
mov dh, byte [ebp + ecx - 0x13c]
xor dh, ah
and edi, ebx
movzx ecx, byte [ebp + edi - 0x13c]
xor dh, byte [ebp + ecx - 0x13c]
movsx ecx, dh
mov word [ebp + esi*2 - 0x190], cx
inc esi
mov ecx, dword [ebp - 0x24]
inc cl
mov dword [ebp - 0x24], ecx
cmp esi, 6
jne 0x40561a
mov word [ebp - 0x184], 0
xorpd xmm4, xmm4
movsd xmm6, qword [0x6121b8]
movsd xmm7, qword [0x6121c0]
movsd xmm0, qword [0x6121c8]
xorpd xmm1, xmm1
movsd xmm5, qword [0x6120f8]
movapd xmm2, xmm4
mulsd xmm2, qword [0x6121a0]
mulsd xmm2, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm2, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x6121a8]
mulsd xmm3, xmm4
addsd xmm3, qword [0x6121b0]
divsd xmm2, xmm3
addsd xmm2, xmm1
movapd xmm3, xmm4
mulsd xmm3, xmm6
fdivr st(2), st(0)
mulps xmm3, xmm6
pop ecx
fdivrp st(2)
addps xmm3, xmm2
addsd xmm3, xmm2
movapd xmm1, xmm7
cmpltsd xmm1, xmm2
andpd xmm3, xmm1
andnpd xmm1, xmm2
orpd xmm1, xmm3
addsd xmm4, xmm5
ucomisd xmm0, xmm4
ja 0x40573b
xorpd xmm0, xmm0
ucomisd xmm0, xmm1
jbe 0x4057e9
lds esi, [ecx - 0x43]
imul edi, dword [ebx - 0x43934290], 0xc86bc674
jae 0x40577a
jbe 0x40577d
jne 0x405787
push 0xffffffffffffffc6
outsb dx, byte [esi]
sal byte [ecx - 0x3d], 0x73
enter 0xffffffffffffc56a, 0x74
mov esi, 0x6e763c76
push esp
pop esi
jne 0x40583b
push edi
imul esi, dword [eax], 0x37
pop ebx
dec edx
inc eax
jns 0x405853
cmp al, 0x89
test eax, eax
invalid
lea edx, [0x4057ac]
movdqa xmm0, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x13c], xmm0
add eax, 0x10
paddb xmm0, xmm2
cmp eax, 0x100
jne 0x405801
movsd xmm0, qword [0x612130]
movapd xmm2, xmm1
subsd xmm2, xmm0
cvttsd2si eax, xmm2
lea ecx, [0x4057cc]
mov dword [ebp - 0x28], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm1
cvttps2pi mm1, xmm1
ucomisd xmm1, xmm0
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x34], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x2c], edx
xor edx, edx
inc edx
cmp esi, 2
jb 0x405874
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x40586d
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x405881
jmp dword [ecx*4 + 0x612320]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
jmp 0x4058b3
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x34]
jmp 0x4058b3
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x30]
jmp 0x4058d8
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x4058d8
movzx eax, bl
mov bl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 0x28]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x16
cmp ecx, 0x15
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x405907
cmp eax, dword [ebp - 0x20]
ja 0x40587c
jmp 0x40590e
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
mov edx, dword [ebp - 0x2c]
je 0x405945
mov dl, byte [ebp + esi - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], dl
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dl
xor byte [ebp + esi - 0x13c], dl
mov edx, dword [ebp - 0x2c]
dec esi
jne 0x405862
mov cl, byte [ebp - 0x13b]
mov byte [ebp - 0x148], cl
mov al, byte [ebp - 0x137]
mov byte [ebp - 0x20], al
mov esi, edx
movzx edx, cl
movzx ebx, byte [ebp + edi - 0x13c]
mov cl, byte [esi]
mov dword [ebp - 0x3c], edx
mov dl, byte [ebp + edx - 0x13c]
add dl, byte [ebp - 0x139]
mov al, byte [esi + 1]
mov byte [ebp - 0x28], al
mov byte [ebp - 0x24], dl
movzx edx, dl
mov al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x38], al
mov eax, edx
mov dword [ebp - 0x34], edx
movzx edi, byte [ebp - 0x135]
mov edx, ebx
mov dword [ebp - 0x30], ebx
movzx ebx, byte [ebp + ebx - 0x13c]
mov ch, byte [ebp - 0x38]
mov byte [ebp + edx - 0x13c], ch
mov dh, byte [ebp + edi - 0x13c]
mov byte [ebp + eax - 0x13c], dh
mov al, byte [ebp - 0x148]
inc al
movzx esi, al
mov ah, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], ah
mov byte [ebp + esi - 0x13c], bl
movzx esi, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x30]
movzx edi, byte [ebp + eax - 0x13c]
add edi, esi
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
mov byte [ebp - 0x20], al
movzx esi, al
movzx edx, byte [ebp + esi - 0x13c]
add edx, edi
mov al, byte [ebp - 0x28]
add al, 0x99
shl cl, 4
add cl, 0x60
or cl, al
mov eax, dword [ebp - 0x34]
movzx esi, byte [ebp + eax - 0x13c]
add esi, ebx
mov edi, 0xff
and esi, edi
mov ah, byte [ebp + esi - 0x13c]
xor ah, cl
and edx, edi
movzx esi, byte [ebp + edx - 0x13c]
xor ah, byte [ebp + esi - 0x13c]
xor esi, esi
mov al, byte [ebp - 0x24]
add al, bl
movzx edi, cl
mov edx, dword [ebp - 0x2c]
mov cl, byte [edx + esi*2 + 2]
mov dl, byte [edx + esi*2 + 3]
mov byte [ebp - 0x28], dl
mov byte [ebp - 0x24], al
movzx edx, al
mov al, byte [ebp + edx - 0x13c]
mov dword [ebp - 0x30], edx
movzx ebx, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x34], ebx
mov byte [ebp + edi - 0x13c], al
movzx eax, ah
mov bl, byte [ebp + eax - 0x13c]
mov byte [ebp + edx - 0x13c], bl
mov ebx, dword [ebp - 0x3c]
add ebx, esi
add ebx, 2
mov edx, 0xff
and ebx, edx
mov ch, byte [ebp + ebx - 0x13c]
mov byte [ebp + eax - 0x13c], ch
mov edx, dword [ebp - 0x34]
mov byte [ebp + ebx - 0x13c], dl
movzx eax, byte [ebp + eax - 0x13c]
movzx edi, byte [ebp + edi - 0x13c]
add edi, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx ebx, byte [ebp + eax - 0x13c]
add ebx, edi
mov al, byte [ebp - 0x28]
add al, 0x99
shl cl, 4
add cl, 0x60
or cl, al
mov eax, dword [ebp - 0x30]
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
mov edi, edx
mov edx, 0xff
and eax, edx
mov ah, byte [ebp + eax - 0x13c]
xor ah, cl
and ebx, edx
movzx edx, byte [ebp + ebx - 0x13c]
mov ebx, edi
xor ah, byte [ebp + edx - 0x13c]
mov byte [ebp + esi - 0x158], ah
inc esi
cmp esi, 4
jne 0x405a53
mov edx, dword [ebp - 0x2c]
mov al, byte [edx + 0xa]
mov byte [ebp - 0x28], al
mov dh, byte [edx + 0xb]
mov dl, byte [ebp - 0x24]
add dl, bl
movzx ecx, cl
mov dword [ebp - 0x24], ecx
movzx edi, dl
mov al, byte [ebp + edi - 0x13c]
movzx ebx, byte [ebp + ecx - 0x13c]
mov dword [ebp - 0x34], ebx
mov byte [ebp + ecx - 0x13c], al
movzx ebx, ah
mov cl, byte [ebp + ebx - 0x13c]
mov dword [ebp - 0x30], ebx
mov byte [ebp + edi - 0x13c], cl
mov eax, dword [ebp - 0x3c]
lea ecx, [eax + esi]
add ecx, 2
mov eax, 0xff
and ecx, eax
mov ah, byte [ebp + ecx - 0x13c]
mov byte [ebp + ebx - 0x13c], ah
mov ebx, dword [ebp - 0x34]
mov byte [ebp + ecx - 0x13c], bl
mov al, byte [ebp - 0x28]
shl al, 4
add al, 0x60
add dh, 0x99
or dh, al
movzx ecx, byte [ebp + edi - 0x13c]
add ecx, ebx
mov eax, 0xff
and ecx, eax
movzx eax, dh
mov dword [ebp - 0x28], eax
xor dh, byte [ebp + ecx - 0x13c]
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
mov ecx, dword [ebp - 0x30]
movzx ecx, byte [ebp + ecx - 0x13c]
mov edi, dword [ebp - 0x24]
movzx edi, byte [ebp + edi - 0x13c]
add edi, ecx
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edi
mov edi, 0xff
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x13c]
xor dh, byte [ebp + ecx - 0x13c]
mov edi, dword [ebp - 0x3c]
lea ecx, [edi + esi]
mov dword [ebp - 0x38], ecx
add esi, edi
add esi, 3
add dl, bl
mov byte [ebp - 0x154], dh
mov ecx, dword [ebp - 0x2c]
mov ah, byte [ecx + 0xc]
mov cl, byte [ecx + 0xd]
mov byte [ebp - 0x30], cl
mov byte [ebp - 0x24], dl
movzx ebx, dl
mov dl, byte [ebp + ebx - 0x13c]
mov edi, dword [ebp - 0x28]
movzx ecx, byte [ebp + edi - 0x13c]
mov byte [ebp + edi - 0x13c], dl
movzx edi, dh
mov dh, byte [ebp + edi - 0x13c]
mov byte [ebp + ebx - 0x13c], dh
mov edx, 0xff
and esi, edx
mov dh, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], dh
mov byte [ebp + esi - 0x13c], cl
movzx esi, byte [ebp + edi - 0x13c]
mov edx, dword [ebp - 0x28]
movzx edi, byte [ebp + edx - 0x13c]
add edi, esi
add al, byte [ebp + ecx - 0x13c]
mov byte [ebp - 0x20], al
movzx esi, al
movzx esi, byte [ebp + esi - 0x13c]
add esi, edi
mov al, byte [ebp - 0x30]
add al, 0x99
shl ah, 4
add ah, 0x60
or ah, al
movzx edi, byte [ebp + ebx - 0x13c]
mov dword [ebp - 0x28], ecx
add edi, ecx
mov ecx, 0xff
and edi, ecx
mov dh, byte [ebp + edi - 0x13c]
xor dh, ah
and esi, ecx
movzx esi, byte [ebp + esi - 0x13c]
xor dh, byte [ebp + esi - 0x13c]
mov byte [ebp - 0x153], dh
xor ebx, ebx
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x28]
movzx edi, ah
mov ecx, dword [ebp - 0x2c]
mov esi, ebx
mov ah, byte [ecx + ebx*2 + 0xe]
mov cl, byte [ecx + ebx*2 + 0xf]
mov byte [ebp - 0x30], cl
movzx ecx, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x28], ecx
mov ebx, edi
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x24], al
movzx edi, al
mov dl, byte [ebp + edi - 0x13c]
mov byte [ebp + ebx - 0x13c], dl
movzx edx, dh
mov cl, byte [ebp + edx - 0x13c]
mov byte [ebp + edi - 0x13c], cl
mov ecx, dword [ebp - 0x38]
add ecx, esi
add ecx, 4
mov ebx, 0xff
and ecx, ebx
mov al, byte [ebp + ecx - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov ebx, dword [ebp - 0x28]
mov byte [ebp + ecx - 0x13c], bl
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
movzx ecx, byte [ebp + edx - 0x13c]
mov edx, dword [ebp - 0x34]
movzx edx, byte [ebp + edx - 0x13c]
add edx, ecx
mov byte [ebp - 0x20], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edx
mov al, byte [ebp - 0x30]
add al, 0x99
shl ah, 4
add ah, 0x60
or ah, al
movzx edx, byte [ebp + edi - 0x13c]
add edx, ebx
mov edi, 0xff
and edx, edi
mov dh, byte [ebp + edx - 0x13c]
xor dh, ah
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x13c]
xor dh, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x152], dh
inc esi
mov ebx, esi
cmp esi, 6
jne 0x405cfb
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x28]
mov byte [ebp - 0x24], al
movzx edi, ah
mov ecx, dword [ebp - 0x2c]
mov dl, byte [ecx + 0x1a]
mov cl, byte [ecx + 0x1b]
mov byte [ebp - 0x34], cl
movzx esi, al
mov al, byte [ebp + esi - 0x13c]
mov ecx, edi
mov dword [ebp - 0x28], edi
movzx edi, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x148], edi
mov byte [ebp + ecx - 0x13c], al
movzx edi, dh
mov dh, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x3c], edi
mov byte [ebp + esi - 0x13c], dh
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 4
mov ecx, 0xff
and eax, ecx
mov dh, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x13c], dh
mov ecx, dword [ebp - 0x148]
mov byte [ebp + eax - 0x13c], cl
mov al, byte [ebp - 0x34]
add al, 0x99
shl dl, 4
add dl, 0x60
or dl, al
movzx eax, byte [ebp + esi - 0x13c]
add eax, ecx
mov esi, 0xff
and eax, esi
movzx edi, dl
mov dword [ebp - 0x34], edi
xor dl, byte [ebp + eax - 0x13c]
mov bh, byte [ebp - 0x20]
add bh, byte [ebp + ecx - 0x13c]
mov edi, ecx
mov eax, dword [ebp - 0x3c]
movzx eax, byte [ebp + eax - 0x13c]
mov ecx, dword [ebp - 0x28]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, eax
movzx eax, bh
movzx eax, byte [ebp + eax - 0x13c]
add eax, ecx
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov cl, byte [ebp - 0x24]
mov eax, edi
add cl, al
mov byte [ebp - 0x24], cl
mov byte [ebp - 0x14c], dl
mov esi, dword [ebp - 0x2c]
mov ah, byte [esi + 0x1c]
mov al, byte [esi + 0x1d]
movzx esi, cl
mov dh, byte [ebp + esi - 0x13c]
mov ecx, dword [ebp - 0x34]
movzx edi, byte [ebp + ecx - 0x13c]
mov dword [ebp - 0x3c], edi
mov byte [ebp + ecx - 0x13c], dh
movzx ecx, dl
mov dword [ebp - 0x20], ecx
mov cl, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x13c], cl
mov ecx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x30]
add ecx, edi
add ecx, 5
mov edx, 0xff
and ecx, edx
mov bl, byte [ebp + ecx - 0x13c]
mov edi, dword [ebp - 0x20]
mov byte [ebp + edi - 0x13c], bl
mov edx, dword [ebp - 0x3c]
mov byte [ebp + ecx - 0x13c], dl
add al, 0x99
shl ah, 4
add ah, 0x60
or ah, al
movzx ecx, byte [ebp + esi - 0x13c]
add ecx, edx
mov esi, 0xff
and ecx, esi
movzx esi, ah
mov dword [ebp - 0x28], esi
xor ah, byte [ebp + ecx - 0x13c]
movzx ecx, byte [ebp + edi - 0x13c]
mov esi, dword [ebp - 0x34]
movzx esi, byte [ebp + esi - 0x13c]
add esi, ecx
add bh, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], bh
mov edi, edx
movzx ecx, bh
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, esi
mov edx, 0xff
and ecx, edx
movzx ecx, byte [ebp + ecx - 0x13c]
xor ah, byte [ebp + ecx - 0x13c]
mov dl, byte [ebp - 0x24]
mov ecx, edi
add dl, cl
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x30]
add ecx, esi
add ecx, 6
mov byte [ebp - 0x14b], ah
mov esi, dword [ebp - 0x2c]
mov al, byte [esi + 0x1e]
mov bl, byte [esi + 0x1f]
movzx esi, dl
mov dl, byte [ebp + esi - 0x13c]
mov byte [ebp - 0x24], dl
mov edi, dword [ebp - 0x28]
movzx edx, byte [ebp + edi - 0x13c]
mov bh, byte [ebp - 0x24]
mov byte [ebp + edi - 0x13c], bh
movzx edi, ah
mov dword [ebp - 0x24], edi
mov ah, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], ah
mov edi, 0xff
and ecx, edi
mov ah, byte [ebp + ecx - 0x13c]
mov edi, dword [ebp - 0x24]
mov byte [ebp + edi - 0x13c], ah
mov byte [ebp + ecx - 0x13c], dl
mov ah, byte [ebp - 0x20]
add ah, byte [ebp + edx - 0x13c]
movzx ecx, byte [ebp + esi - 0x13c]
add ecx, edx
add bl, 0x99
shl al, 4
add al, 0x60
or al, bl
mov esi, 0xff
and ecx, esi
xor al, byte [ebp + ecx - 0x13c]
movzx ecx, byte [ebp + edi - 0x13c]
mov edx, dword [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x13c]
add edx, ecx
movzx ecx, ah
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edx
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x13c]
xor al, byte [ebp + ecx - 0x13c]
mov byte [ebp - 0x14a], al
mov byte [ebp - 0x149], 0
mov dword [ebp - 0x10], 0xffffffff
push 4
call fcn.005db3dd
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x16a]
lea ecx, [ebp - 0x13c]
push eax
call fcn.00406642
mov ecx, dword [ebp - 0x20]
mov dword [ecx], 0
mov dword [ebp - 0x10], 1
push 2
lea eax, [ebp - 0x13c]
push eax
call fcn.0044527c
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x48], ecx
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x406143
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x406139
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x406488
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
push 4
call fcn.005db3dd
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 2
lea eax, [ebp - 0x182]
lea ecx, [ebp - 0x13c]
push eax
call fcn.00406642
mov ecx, dword [ebp - 0x20]
mov dword [ecx], 0
mov dword [ebp - 0x10], 3
push 2
lea eax, [ebp - 0x13c]
push eax
call fcn.0044527c
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x4c], ecx
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x4061eb
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x4061e1
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x406488
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
mov esi, 4
push esi
call fcn.005db3dd
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], esi
lea eax, [ebp - 0x19c]
lea ecx, [ebp - 0x13c]
push eax
call fcn.00406642
mov ecx, dword [ebp - 0x20]
mov dword [ecx], 0
mov dword [ebp - 0x10], 5
push 2
lea eax, [ebp - 0x13c]
push eax
call fcn.0044527c
mov edi, dword [ebp - 0x144]
mov eax, dword [ebp - 0x20]
mov dword [edi + 0x50], eax
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
lea ebx, [ebp - 0x13c]
jb 0x406299
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x40628f
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x406488
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov esi, dword [edi + 0x48]
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x158]
mov ecx, ebx
push eax
call fcn.00401278
mov dword [ebp - 0x10], 6
mov ecx, esi
push 0
push ebx
call fcn.004454fe
mov esi, dword [ebp - 0x144]
mov dword [esi + 0xc], eax
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x40631c
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x406312
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x406488
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
push 0x11
call fcn.005db443
add esp, 4
mov dword [esi + 0x18], eax
xor ecx, ecx
mov byte [eax + ecx], 0
inc ecx
cmp ecx, 0x11
jne 0x406332
mov dword [ebp - 0x10], 0xffffffff
push 0x208
call fcn.005db443
add esp, 4
mov dword [esi + 0x20], eax
xor ecx, ecx
mov byte [eax + ecx], 0
inc ecx
cmp ecx, 0x208
jne 0x406355
mov dword [ebp - 0x10], 0xffffffff
push 0x208
call fcn.005db443
add esp, 4
mov dword [esi + 0x24], eax
xor ecx, ecx
mov byte [eax + ecx], 0
inc ecx
cmp ecx, 0x208
jne 0x40637b
mov dword [ebp - 0x10], 0xffffffff
push 0x208
call fcn.005db443
add esp, 4
mov dword [esi + 0x28], eax
xor ecx, ecx
mov byte [eax + ecx], 0
inc ecx
cmp ecx, 0x208
jne 0x4063a1
mov dword [ebp - 0x10], 0xffffffff
push 0x208
call fcn.005db443
add esp, 4
mov dword [esi + 0x2c], eax
xor ecx, ecx
mov byte [eax + ecx], 0
inc ecx
cmp ecx, 0x208
jne 0x4063c7
mov dword [ebp - 0x10], 0xffffffff
push 0x1000
call fcn.005db443
add esp, 4
mov dword [esi + 0x1c], eax
xor ecx, ecx
mov byte [eax + ecx], 0
inc ecx
cmp ecx, 0x1000
jne 0x4063ed
mov dword [ebp - 0x10], 0xffffffff
push 0x208
call fcn.005db443
add esp, 4
mov dword [esi + 4], eax
xor ecx, ecx
mov byte [eax + ecx], 0
inc ecx
cmp ecx, 0x208
jne 0x406413
mov dword [ebp - 0x10], 0xffffffff
push 0x208
call fcn.005db443
add esp, 4
mov dword [esi + 0x34], eax
xor ecx, ecx
mov byte [eax + ecx], 0
inc ecx
cmp ecx, 0x208
jne 0x406439
mov dword [ebp - 0x10], 0xffffffff
push 0x208
call fcn.005db443
add esp, 4
mov dword [esi + 0x30], eax
xor ecx, ecx
mov byte [eax + ecx], 0
inc ecx
cmp ecx, 0x208
jne 0x40645f
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp - 0x140]
add esp, 0x190
pop esi
pop edi
pop ebx
pop ebp
ret 8
call fcn.005f5844
nop
push ebp
sub esp, 8
add ebp, 0xc
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x4064e2
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x4064d8
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x4064e7
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 8
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 8
add ebp, 0xc
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x406540
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x406536
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x406545
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 8
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 8
add ebp, 0xc
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x40659e
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x406594
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x4065a3
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 8
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 8
add ebp, 0xc
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x4065fc
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x4065f2
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x406601
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 8
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 8
add ebp, 0xc
push dword [ebp - 0x20]
call fcn.005db40d
add esp, 0xc
pop ebp
ret