Function at 0x416d1a
Capabilities:
Create thread
Encode data using xor
Encrypt data using rc4 ksa
Move file
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x598
lea eax, [ebp - 0x18]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x41dce0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
lea eax, [ebp - 0x5a4]
push 0x208
push 0
push eax
call fcn.005e2800
add esp, 0xc
xorpd xmm0, xmm0
movsd xmm3, qword [0x6128a8]
movsd xmm4, qword [0x6128b0]
movsd xmm5, qword [0x6128b8]
movsd xmm6, qword [0x6128c0]
xorpd xmm2, xmm2
movapd xmm7, xmm2
mulsd xmm7, qword [0x612898]
mulsd xmm7, xmm2
movapd xmm1, xmm2
mulsd xmm1, xmm2
subsd xmm7, xmm1
movapd xmm1, xmm2
mulsd xmm1, qword [0x6128a0]
mulsd xmm1, xmm2
addsd xmm1, xmm3
divsd xmm7, xmm1
addsd xmm7, xmm0
movapd xmm1, xmm2
mulsd xmm1, xmm4
addsd xmm1, xmm7
movapd xmm0, xmm5
cmpltsd xmm0, xmm7
andpd xmm1, xmm0
andnpd xmm0, xmm7
movsd xmm7, qword [0x612408]
orpd xmm0, xmm1
addsd xmm2, xmm7
ucomisd xmm6, xmm2
ja 0x416d87
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x416e37
pop ecx
jno 0x416e39
outsb dx, byte cs:[esi]
ja 0x416e3a
sub al, byte [ebp + 0x39]
jo 0x416e43
popal
jne 0x416e74
pop ecx
nop
movsb byte es:[edi], byte [esi]
cdq
mov byte [0x9b94a88e], al
invalid
lea edx, [0x416e0c]
movdqa xmm1, xmmword [0x612110]
or al, 0x6e
outsb dx, byte [esi]
inc ecx
add byte [esi + 0xf], ah
outsd dx, dword [esi]
or eax, 0x612110
popal
add byte [ecx], dh
shl byte [esi + 0xf], 0x6f
adc eax, 0x612120
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x39c], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x416e4f
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
pop esp
sal edx, 1
cvttps2pi mm0, xmm2
lea ecx, [0x416dfc]
mov dword [ebp - 0x30], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x34], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x28], edx
xor edx, edx
inc edx
cmp edi, 2
jb 0x416ec2
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x416ebb
mov dword [ebp - 0x20], edi
mov edi, 0xc
cmp ecx, 3
ja case.default.0x416ecf
jmp dword [ecx*4 + 0x612b88]
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffc64
mov eax, dword [ebp - 0x24]
jmp 0x416f07
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffc64
mov eax, dword [ebp - 0x34]
jmp 0x416f07
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffc64
mov eax, dword [ebp - 0x2c]
jmp 0x416f2e
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffc64
mov eax, dword [ebp - 0x24]
mov al, ah
jmp 0x416f2e
movzx eax, bl
mov al, byte [ebp + eax - 0x39c]
mov esi, dword [ebp - 0x30]
add esi, ecx
add esi, 0xfffffffc
add al, byte [esi]
inc ecx
movzx esi, al
add al, 0x14
cmp ecx, 0x13
mov ebx, 0
cmova ecx, ebx
movzx ebx, al
cmovbe ebx, esi
movzx esi, bl
mov eax, edx
and eax, esi
dec edi
je 0x416f5c
cmp eax, dword [ebp - 0x20]
ja 0x416eca
jmp 0x416f63
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov edi, dword [ebp - 0x20]
cmp edi, eax
mov edx, dword [ebp - 0x28]
je 0x416f9a
mov dl, byte [ebp + edi - 0x39c]
xor dl, byte [ebp + eax - 0x39c]
mov byte [ebp + edi - 0x39c], dl
xor dl, byte [ebp + eax - 0x39c]
mov byte [ebp + eax - 0x39c], dl
xor byte [ebp + edi - 0x39c], dl
mov edx, dword [ebp - 0x28]
dec edi
jne 0x416eb0
movzx eax, byte [ebp - 0x39b]
mov edi, edx
mov cl, byte [ebp - 0x397]
mov byte [ebp - 0x20], cl
movzx ecx, byte [ebp + esi - 0x39c]
mov dword [ebp - 0x24], ecx
mov bh, byte [edx]
mov ecx, eax
mov dword [ebp - 0x30], eax
mov bl, byte [ebp + eax - 0x39c]
add bl, byte [ebp - 0x399]
mov dl, byte [edx + 1]
movzx eax, bl
mov dword [ebp - 0x34], eax
mov dh, byte [ebp + eax - 0x39c]
movzx esi, byte [ebp - 0x395]
mov eax, dword [ebp - 0x24]
movzx edi, byte [ebp + eax - 0x39c]
mov dword [ebp - 0x2c], edi
mov byte [ebp + eax - 0x39c], dh
mov dh, byte [ebp + esi - 0x39c]
mov edi, dword [ebp - 0x34]
mov byte [ebp + edi - 0x39c], dh
mov dh, cl
inc dh
movzx eax, dh
mov dh, byte [ebp + eax - 0x39c]
mov byte [ebp + esi - 0x39c], dh
mov ecx, dword [ebp - 0x2c]
mov byte [ebp + eax - 0x39c], cl
movzx eax, byte [ebp + esi - 0x39c]
mov esi, dword [ebp - 0x24]
movzx esi, byte [ebp + esi - 0x39c]
add esi, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x39c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x39c]
add eax, esi
add dl, 0x66
shl bh, 4
add bh, 0x50
or bh, dl
movzx edi, byte [ebp + edi - 0x39c]
add edi, ecx
mov esi, 0xff
and edi, esi
mov dh, byte [ebp + edi - 0x39c]
xor dh, bh
and eax, esi
movzx eax, byte [ebp + eax - 0x39c]
xor dh, byte [ebp + eax - 0x39c]
add bl, cl
mov edi, dword [ebp - 0x28]
mov ah, byte [edi + 2]
mov al, byte [edi + 3]
mov byte [ebp - 0x34], al
movzx esi, bh
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 0x24], bl
movzx edi, bl
mov dword [ebp - 0x2c], edi
mov al, byte [ebp + edi - 0x39c]
movzx ebx, byte [ebp + esi - 0x39c]
mov byte [ebp + esi - 0x39c], al
movzx edx, dh
mov al, byte [ebp + edx - 0x39c]
mov byte [ebp + edi - 0x39c], al
mov al, cl
add al, 2
movzx edi, al
mov al, byte [ebp + edi - 0x39c]
mov byte [ebp + edx - 0x39c], al
mov byte [ebp + edi - 0x39c], bl
movzx edi, byte [ebp + edx - 0x39c]
movzx edx, byte [ebp + esi - 0x39c]
add edx, edi
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x39c]
mov byte [ebp - 0x20], al
movzx edi, al
movzx esi, byte [ebp + edi - 0x39c]
add esi, edx
mov al, byte [ebp - 0x34]
add al, 0x66
shl ah, 4
add ah, 0x50
or ah, al
mov edx, dword [ebp - 0x2c]
movzx edi, byte [ebp + edx - 0x39c]
mov dword [ebp - 0x2c], ebx
add edi, ebx
mov edx, 0xff
and edi, edx
mov al, byte [ebp + edi - 0x39c]
xor al, ah
and esi, edx
movzx edi, byte [ebp + esi - 0x39c]
xor al, byte [ebp + edi - 0x39c]
mov byte [ebp - 0x18d], al
add cl, 4
xor ebx, ebx
mov byte [ebp - 0x34], cl
mov cl, byte [ebp - 0x24]
add cl, byte [ebp - 0x2c]
movzx esi, ah
mov edx, dword [ebp - 0x28]
mov ah, byte [edx + ebx*2 + 4]
mov dl, byte [edx + ebx*2 + 5]
mov byte [ebp - 0x30], dl
movzx edx, byte [ebp + esi - 0x39c]
mov dword [ebp - 0x2c], edx
mov byte [ebp - 0x24], cl
movzx edi, cl
mov dword [ebp - 0x38], edi
mov dh, byte [ebp + edi - 0x39c]
mov byte [ebp + esi - 0x39c], dh
movzx ecx, al
mov al, byte [ebp + ecx - 0x39c]
mov byte [ebp + edi - 0x39c], al
mov al, byte [ebp - 0x34]
dec al
movzx edi, al
mov al, byte [ebp + edi - 0x39c]
mov byte [ebp + ecx - 0x39c], al
mov edx, dword [ebp - 0x2c]
mov byte [ebp + edi - 0x39c], dl
movzx ecx, byte [ebp + ecx - 0x39c]
movzx edi, byte [ebp + esi - 0x39c]
mov esi, edx
add edi, ecx
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x39c]
mov byte [ebp - 0x20], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x39c]
add ecx, edi
mov al, byte [ebp - 0x30]
add al, 0x66
shl ah, 4
add ah, 0x50
or ah, al
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x39c]
add edx, esi
mov edi, 0xff
and edx, edi
mov al, byte [ebp + edx - 0x39c]
mov dl, byte [ebp - 0x34]
xor al, ah
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x39c]
xor al, byte [ebp + ecx - 0x39c]
mov byte [ebp + ebx - 0x18c], al
mov ecx, edx
inc cl
inc ebx
cmp ebx, 7
jne 0x417168
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x28]
mov dh, byte [ecx + 0x12]
mov byte [ebp - 0x38], dh
mov ch, byte [ecx + 0x13]
movzx edi, ah
mov dword [ebp - 0x3c], edi
mov cl, byte [ebp - 0x24]
add cl, byte [ebp - 0x2c]
movzx ebx, byte [ebp + edi - 0x39c]
mov byte [ebp - 0x24], cl
movzx esi, cl
mov ah, byte [ebp + esi - 0x39c]
mov byte [ebp + edi - 0x39c], ah
movzx edi, al
mov al, byte [ebp + edi - 0x39c]
mov byte [ebp + esi - 0x39c], al
movzx eax, dl
mov dh, byte [ebp + eax - 0x39c]
mov byte [ebp + edi - 0x39c], dh
mov byte [ebp + eax - 0x39c], bl
mov al, byte [ebp - 0x38]
shl al, 4
add al, 0x50
add ch, 0x66
or ch, al
mov cl, byte [ebp - 0x20]
add cl, byte [ebp + ebx - 0x39c]
movzx eax, byte [ebp + esi - 0x39c]
add eax, ebx
movzx esi, byte [ebp + edi - 0x39c]
mov edx, dword [ebp - 0x3c]
movzx edx, byte [ebp + edx - 0x39c]
add edx, esi
mov byte [ebp - 0x20], cl
movzx esi, cl
movzx edi, byte [ebp + esi - 0x39c]
add edi, edx
mov edx, 0xff
and eax, edx
mov al, byte [ebp + eax - 0x39c]
mov ah, ch
xor al, ch
and edi, edx
movzx edi, byte [ebp + edi - 0x39c]
xor al, byte [ebp + edi - 0x39c]
mov byte [ebp - 0x185], al
xor edi, edi
mov cl, byte [ebp - 0x24]
add cl, bl
movzx ebx, ah
mov esi, dword [ebp - 0x28]
mov ah, byte [esi + edi*2 + 0x14]
mov dl, byte [esi + edi*2 + 0x15]
mov byte [ebp - 0x2c], dl
mov dword [ebp - 0x34], ebx
movzx edx, byte [ebp + ebx - 0x39c]
mov dword [ebp - 0x38], edx
mov byte [ebp - 0x24], cl
movzx esi, cl
mov ch, byte [ebp + esi - 0x39c]
mov byte [ebp + ebx - 0x39c], ch
movzx ebx, al
mov al, byte [ebp + ebx - 0x39c]
mov byte [ebp + esi - 0x39c], al
movzx edx, byte [ebp - 0x30]
mov al, byte [ebp + edx - 0x39c]
mov byte [ebp + ebx - 0x39c], al
mov ecx, dword [ebp - 0x38]
mov byte [ebp + edx - 0x39c], cl
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x39c]
mov edx, ecx
movzx ecx, byte [ebp + ebx - 0x39c]
mov ebx, edx
mov edx, dword [ebp - 0x34]
movzx edx, byte [ebp + edx - 0x39c]
add edx, ecx
mov byte [ebp - 0x20], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x39c]
add ecx, edx
mov al, byte [ebp - 0x2c]
add al, 0x66
shl ah, 4
add ah, 0x50
or ah, al
movzx edx, byte [ebp + esi - 0x39c]
add edx, ebx
mov esi, 0xff
and edx, esi
mov al, byte [ebp + edx - 0x39c]
xor al, ah
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x39c]
xor al, byte [ebp + ecx - 0x39c]
mov byte [ebp + edi - 0x184], al
mov ecx, dword [ebp - 0x30]
inc cl
mov dword [ebp - 0x30], ecx
inc edi
cmp edi, 9
jne 0x417327
mov byte [ebp - 0x17b], 0
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x48]
lea eax, [ebp - 0x18d]
lea edi, [ebp - 0x39c]
mov ecx, edi
push eax
call fcn.00401278
xor eax, eax
mov dword [ebp - 0x10], eax
mov ecx, esi
push eax
push edi
call fcn.004454fe
mov esi, eax
push dword [ebp - 0x384]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x388]
cmp ecx, 8
lea edi, [ebp - 0x5a4]
jb 0x41749f
mov eax, dword [ebp - 0x39c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x417495
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x4193b3
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 0x104
push edi
push 0
call esi
test eax, eax
je 0x4175bb
push 0x208
push 0
lea esi, [ebp - 0x39c]
push esi
call fcn.005e2800
add esp, 0xc
push edi
push esi
call fcn.005ffc02
add esp, 8
push 0x2e
push esi
call fcn.005e2f02
add esp, 8
cmp word [eax + 6], 0x65
je 0x417b9d
xorpd xmm4, xmm4
movsd xmm5, qword [0x6128e0]
movsd xmm6, qword [str.q_n0Z_]
movsd xmm7, qword [0x6120f8]
movsd xmm2, qword [0x6128f0]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x6128c8]
mulsd xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x6128d0]
mulsd xmm3, xmm4
addsd xmm3, qword [0x6128d8]
divsd xmm1, xmm3
addsd xmm1, xmm0
movapd xmm3, xmm4
mulsd xmm3, xmm5
addsd xmm3, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm3, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm3
addsd xmm4, xmm7
ucomisd xmm2, xmm4
ja 0x417516
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x4175c2
jg 0x4175b6
test dword [ebx], esi
mov ch, byte [eax + eax*4]
mov byte es:[esp + ebp], ah
dec edi
jb 0x4175c5
dec dx
inc ebp
dec ecx
sub edi, dword [edx + edi]
sub dl, byte [esi + 0x71]
jne 0x4175de
ja 0x417621
xor al, 0x3b
and cl, byte [ebp + 0x61]
insd dword es:[edi], dx
jl 0x4175ea
cmp dword [edi + edi + 0x46], esp
mov dword [ebp - 0x10], 0xffffffff
jmp 0x417b64
xor ebx, ebx
jmp 0x41939d
lea eax, [0x417587]
mov dword [ebp - 0x34], eax
movdqa xmm1, xmmword [0x612110]
jne 0x417608
add byte [ecx + 0xf66cc45], cl
outsd dx, dword [esi]
or eax, 0x612110
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x140], xmm1
movq qword [ebp + eax - 0x140], mm1
add eax, 0x10
paddb xmm1, xmm2
paddb mm1, mm2
cmp eax, 0x100
jne 0x4175dd
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x417591]
mov dword [ebp - 0x28], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
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 - 0x2c], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp esi, 2
jb 0x41764d
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x417646
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x41765a
jmp dword [ecx*4 + 0x612b98]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x24]
jmp 0x41768c
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x2c]
jmp 0x41768c
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x30]
jmp 0x4176b1
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x4176b1
movzx eax, bl
mov bl, byte [ebp + eax - 0x140]
mov eax, dword [ebp - 0x28]
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 0x4176e0
cmp eax, dword [ebp - 0x20]
ja 0x417655
jmp 0x4176e7
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
je 0x417718
mov dl, byte [ebp + esi - 0x140]
xor dl, byte [ebp + eax - 0x140]
mov byte [ebp + esi - 0x140], dl
xor dl, byte [ebp + eax - 0x140]
mov byte [ebp + eax - 0x140], dl
xor byte [ebp + esi - 0x140], dl
dec esi
jne 0x41763b
movzx eax, byte [ebp - 0x13f]
mov dword [ebp - 0x24], eax
mov ebx, eax
mov dh, byte [ebp - 0x13b]
movzx eax, byte [ebp + edi - 0x140]
mov esi, dword [ebp - 0x34]
mov cl, byte [esi]
mov ch, byte [esi + 1]
mov dl, byte [ebp + ebx - 0x140]
add dl, byte [ebp - 0x13d]
mov byte [ebp - 0x28], dl
movzx edi, dl
mov dl, byte [ebp + edi - 0x140]
movzx esi, byte [ebp - 0x139]
mov dword [ebp - 0x30], eax
movzx ebx, byte [ebp + eax - 0x140]
mov byte [ebp + eax - 0x140], dl
mov dl, byte [ebp + esi - 0x140]
mov byte [ebp + edi - 0x140], dl
mov eax, dword [ebp - 0x24]
mov dl, al
inc dl
movzx eax, dl
mov dl, byte [ebp + eax - 0x140]
mov byte [ebp + esi - 0x140], dl
mov byte [ebp + eax - 0x140], bl
add dh, byte [ebp + ebx - 0x140]
mov byte [ebp - 0x20], dh
movzx eax, byte [ebp + esi - 0x140]
mov esi, dword [ebp - 0x30]
movzx esi, byte [ebp + esi - 0x140]
add esi, eax
movzx eax, dh
movzx eax, byte [ebp + eax - 0x140]
add eax, esi
add ch, 0xdc
shl cl, 4
add cl, 0x50
or cl, ch
movzx edi, byte [ebp + edi - 0x140]
add edi, ebx
mov esi, 0xff
and edi, esi
mov dl, byte [ebp + edi - 0x140]
xor dl, cl
and eax, esi
movzx eax, byte [ebp + eax - 0x140]
xor dl, byte [ebp + eax - 0x140]
mov al, byte [ebp - 0x28]
add al, bl
mov byte [ebp - 0x28], al
mov ebx, dword [ebp - 0x34]
mov ch, byte [ebx + 2]
mov ah, byte [ebx + 3]
mov byte [ebp - 0x30], ah
movzx edi, cl
movzx esi, al
mov cl, byte [ebp + esi - 0x140]
movzx ebx, byte [ebp + edi - 0x140]
mov byte [ebp + edi - 0x140], cl
movzx edx, dl
mov cl, byte [ebp + edx - 0x140]
mov byte [ebp + esi - 0x140], cl
mov eax, dword [ebp - 0x24]
mov cl, al
add cl, 2
movzx eax, cl
mov cl, byte [ebp + eax - 0x140]
mov byte [ebp + edx - 0x140], cl
mov byte [ebp + eax - 0x140], bl
movzx eax, byte [ebp + edx - 0x140]
movzx edx, byte [ebp + edi - 0x140]
add edx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x140]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x140]
add eax, edx
mov cl, byte [ebp - 0x30]
add cl, 0xdc
shl ch, 4
add ch, 0x50
or ch, cl
movzx edx, byte [ebp + esi - 0x140]
add edx, ebx
mov esi, 0xff
and edx, esi
mov dl, byte [ebp + edx - 0x140]
xor dl, ch
and eax, esi
movzx eax, byte [ebp + eax - 0x140]
xor dl, byte [ebp + eax - 0x140]
movsx eax, dl
mov word [ebp - 0x160], ax
mov al, byte [ebp - 0x28]
add al, bl
mov byte [ebp - 0x28], al
mov esi, dword [ebp - 0x34]
mov cl, byte [esi + 4]
mov dh, byte [esi + 5]
movzx esi, ch
movzx edi, al
mov ch, byte [ebp + edi - 0x140]
mov dword [ebp - 0x30], esi
movzx ebx, byte [ebp + esi - 0x140]
mov byte [ebp + esi - 0x140], ch
movzx esi, dl
mov dl, byte [ebp + esi - 0x140]
mov byte [ebp + edi - 0x140], dl
mov eax, dword [ebp - 0x24]
mov dl, al
add dl, 3
movzx eax, dl
mov dl, byte [ebp + eax - 0x140]
mov byte [ebp + esi - 0x140], dl
mov byte [ebp + eax - 0x140], bl
add dh, 0xdc
shl cl, 4
add cl, 0x50
or cl, dh
movzx eax, byte [ebp + edi - 0x140]
add eax, ebx
mov edx, 0xff
and eax, edx
movzx edi, cl
mov dword [ebp - 0x2c], edi
xor cl, byte [ebp + eax - 0x140]
movzx eax, byte [ebp + esi - 0x140]
mov edx, dword [ebp - 0x30]
movzx edx, byte [ebp + edx - 0x140]
add edx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x140]
mov esi, ebx
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x140]
add eax, edx
mov edx, 0xff
and eax, edx
movzx eax, byte [ebp + eax - 0x140]
xor cl, byte [ebp + eax - 0x140]
movsx eax, cl
mov word [ebp - 0x15e], ax
mov bh, byte [ebp - 0x28]
mov eax, esi
add bh, al
mov eax, dword [ebp - 0x34]
mov bl, byte [eax + 6]
mov dl, byte [eax + 7]
movzx esi, bh
mov ch, byte [ebp + esi - 0x140]
movzx eax, byte [ebp + edi - 0x140]
mov dword [ebp - 0x30], eax
mov byte [ebp + edi - 0x140], ch
movzx edi, cl
mov dh, byte [ebp + edi - 0x140]
mov byte [ebp + esi - 0x140], dh
mov eax, dword [ebp - 0x24]
mov dh, al
add dh, 4
movzx eax, dh
mov dh, byte [ebp + eax - 0x140]
mov byte [ebp + edi - 0x140], dh
mov ecx, dword [ebp - 0x30]
mov byte [ebp + eax - 0x140], cl
add dl, 0xdc
shl bl, 4
add bl, 0x50
or bl, dl
movzx eax, byte [ebp + esi - 0x140]
mov edx, dword [ebp - 0x30]
add eax, edx
mov esi, 0xff
and eax, esi
movzx esi, bl
mov dword [ebp - 0x28], esi
xor bl, byte [ebp + eax - 0x140]
movzx eax, byte [ebp + edi - 0x140]
mov ecx, dword [ebp - 0x2c]
movzx ecx, byte [ebp + ecx - 0x140]
add ecx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x140]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x140]
add eax, ecx
mov ecx, 0xff
and eax, ecx
movzx eax, byte [ebp + eax - 0x140]
xor bl, byte [ebp + eax - 0x140]
movsx eax, bl
mov word [ebp - 0x15c], ax
add bh, dl
mov eax, dword [ebp - 0x34]
mov cl, byte [eax + 8]
mov ch, byte [eax + 9]
movzx esi, bh
mov bh, byte [ebp + esi - 0x140]
mov edx, dword [ebp - 0x28]
movzx eax, byte [ebp + edx - 0x140]
mov byte [ebp + edx - 0x140], bh
movzx edi, bl
mov bl, byte [ebp + edi - 0x140]
mov byte [ebp + esi - 0x140], bl
mov edx, dword [ebp - 0x24]
add dl, 5
movzx ebx, dl
mov dl, byte [ebp + ebx - 0x140]
mov byte [ebp + edi - 0x140], dl
mov byte [ebp + ebx - 0x140], al
movzx edx, byte [ebp + esi - 0x140]
add edx, eax
mov bl, byte [ebp - 0x20]
add bl, byte [ebp + eax - 0x140]
shl cl, 4
add cl, 0x50
add ch, 0xdc
or ch, cl
mov eax, 0xff
and edx, eax
xor ch, byte [ebp + edx - 0x140]
movzx eax, bl
movzx edx, byte [ebp + edi - 0x140]
mov esi, dword [ebp - 0x28]
movzx esi, byte [ebp + esi - 0x140]
add esi, edx
movzx eax, byte [ebp + eax - 0x140]
add eax, esi
mov edx, 0xff
and eax, edx
movzx eax, byte [ebp + eax - 0x140]
xor ch, byte [ebp + eax - 0x140]
movsx eax, ch
mov word [ebp - 0x15a], ax
mov word [ebp - 0x158], 0
mov dword [ebp - 0x10], 0xffffffff
lea edi, [ebp - 0x5a4]
push 0x2e
lea esi, [ebp - 0x39c]
push esi
call fcn.005e2f02
add esp, 8
mov word [eax], 0
lea eax, [ebp - 0x160]
push eax
push esi
call fcn.005ffb20
add esp, 8
push esi
push edi
call fcn.005fbde0
add esp, 8
mov ecx, dword [ebp + 8]
push esi
call fcn.0040677e
lea eax, [ebp - 0x194]
xor ecx, ecx
push eax
push ecx
push dword [ebp + 8]
push 0x41b504
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateThread]
lea ecx, [ebp - 0x148]
call fcn.004381ec
xorpd xmm3, xmm3
movsd xmm5, qword [0x612900]
movsd xmm6, qword [0x612908]
movsd xmm7, qword [0x612910]
xorpd xmm0, xmm0
movsd xmm4, qword [0x612408]
movapd xmm1, xmm3
mulsd xmm1, qword [0x6128f8]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x612208]
mulsd xmm2, xmm3
addsd xmm2, qword [0x6124b8]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm5
addsd xmm2, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm4
ucomisd xmm7, xmm3
ja 0x417bea
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x417c88
cmp eax, 0x276a4e4f
xor byte [ecx + 0x4b], dh
ja 0x417cd2
dec ecx
and ah, byte [0x11646745]
sbb al, 0x6b
sbb ch, byte [esi + edx + 0x72]
adc esi, dword [ecx + 0x11]
push 0x72197519
sbb dh, byte [ebx + 0xf]
insb byte es:[edi], dx
push ss
adc al, 0x70
jmp 0x418561
lea eax, [0x417c6b]
mov dword [ebp - 0x34], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x140], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x417ca3
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x417c5b]
mov dword [ebp - 0x28], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
inc ecx
add byte [ecx + 0x35d84d], cl
add byte [eax], al
xor dl, 0xf
sub al, 0xc8
ucomisd xmm0, xmm1
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 - 0x2c], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp esi, 2
jb 0x417d13
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x417d0c
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x417d20
jmp dword [ecx*4 + 0x612ba8]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x24]
jmp 0x417d52
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x2c]
jmp 0x417d52
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x30]
jmp 0x417d77
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x417d77
movzx eax, bl
mov bl, byte [ebp + eax - 0x140]
mov eax, dword [ebp - 0x28]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x14
cmp ecx, 0x13
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x417da6
cmp eax, dword [ebp - 0x20]
ja 0x417d1b
jmp 0x417dad
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
je 0x417dde
mov dl, byte [ebp + esi - 0x140]
xor dl, byte [ebp + eax - 0x140]
mov byte [ebp + esi - 0x140], dl
xor dl, byte [ebp + eax - 0x140]
mov byte [ebp + eax - 0x140], dl
xor byte [ebp + esi - 0x140], dl
dec esi
jne 0x417d01
mov ah, byte [ebp - 0x13f]
mov al, byte [ebp - 0x13b]
mov byte [ebp - 0x20], al
movzx esi, ah
movzx ecx, byte [ebp + edi - 0x140]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x34]
mov ch, byte [edx]
mov dword [ebp - 0x30], esi
mov cl, byte [ebp + esi - 0x140]
add cl, byte [ebp - 0x13d]
mov bl, byte [edx + 1]
mov byte [ebp - 0x40], bl
mov byte [ebp - 0x24], cl
movzx edi, cl
mov al, byte [ebp + edi - 0x140]
mov dword [ebp - 0x144], edi
movzx esi, byte [ebp - 0x139]
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x38]
movzx ebx, byte [ebp + esi - 0x140]
mov dword [ebp - 0x28], ebx
mov byte [ebp + esi - 0x140], al
mov esi, dword [ebp - 0x3c]
mov bh, byte [ebp + esi - 0x140]
mov byte [ebp + edi - 0x140], bh
inc ah
mov byte [ebp - 0x2c], ah
movzx esi, ah
mov bh, byte [ebp + esi - 0x140]
mov edi, dword [ebp - 0x3c]
mov byte [ebp + edi - 0x140], bh
mov eax, dword [ebp - 0x28]
mov byte [ebp + esi - 0x140], al
movzx esi, byte [ebp + edi - 0x140]
mov edi, dword [ebp - 0x38]
movzx ebx, byte [ebp + edi - 0x140]
add ebx, esi
mov cl, byte [ebp - 0x20]
add cl, byte [ebp + eax - 0x140]
mov byte [ebp - 0x20], cl
movzx esi, cl
movzx edi, byte [ebp + esi - 0x140]
add edi, ebx
mov al, byte [ebp - 0x40]
add al, 0x9a
shl ch, 4
add ch, 0x10
or ch, al
mov eax, dword [ebp - 0x144]
movzx ebx, byte [ebp + eax - 0x140]
add ebx, dword [ebp - 0x28]
mov eax, 0xff
and ebx, eax
mov bh, byte [ebp + ebx - 0x140]
xor bh, ch
and edi, eax
movzx edi, byte [ebp + edi - 0x140]
xor bh, byte [ebp + edi - 0x140]
xor edi, edi
mov esi, edi
mov al, byte [ebp - 0x24]
mov edi, edx
add al, byte [ebp - 0x28]
mov edx, esi
mov dword [ebp - 0x38], esi
mov cl, byte [edi + esi*2 + 2]
mov byte [ebp - 0x3c], cl
movzx esi, ch
mov ch, byte [edi + edx*2 + 3]
mov byte [ebp - 0x24], al
movzx edi, al
mov cl, byte [ebp + edi - 0x140]
movzx eax, byte [ebp + esi - 0x140]
mov dword [ebp - 0x28], eax
mov byte [ebp + esi - 0x140], cl
movzx edx, bh
mov cl, byte [ebp + edx - 0x140]
mov byte [ebp + edi - 0x140], cl
mov al, byte [ebp - 0x2c]
mov byte [ebp - 0x40], al
inc al
mov byte [ebp - 0x2c], al
movzx eax, al
mov cl, byte [ebp + eax - 0x140]
mov byte [ebp + edx - 0x140], cl
mov ebx, dword [ebp - 0x28]
mov byte [ebp + eax - 0x140], bl
movzx eax, byte [ebp + edx - 0x140]
movzx edx, byte [ebp + esi - 0x140]
add edx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x140]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x140]
add eax, edx
mov cl, byte [ebp - 0x3c]
shl cl, 4
add cl, 0x10
add ch, 0x9a
or ch, cl
movzx edx, byte [ebp + edi - 0x140]
add edx, ebx
mov edi, 0xff
and edx, edi
mov bh, byte [ebp + edx - 0x140]
mov edx, dword [ebp - 0x34]
xor bh, ch
and eax, edi
movzx eax, byte [ebp + eax - 0x140]
xor bh, byte [ebp + eax - 0x140]
movsx eax, bh
mov edi, dword [ebp - 0x38]
mov word [ebp + edi*2 - 0x160], ax
inc edi
cmp edi, 2
jne 0x417ef3
mov cl, byte [edx + 6]
mov al, byte [edx + 7]
mov byte [ebp - 0x38], al
movzx eax, ch
mov dword [ebp - 0x2c], eax
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x28]
mov byte [ebp - 0x24], al
movzx eax, al
mov dword [ebp - 0x28], eax
mov ch, byte [ebp + eax - 0x140]
mov eax, dword [ebp - 0x2c]
movzx esi, byte [ebp + eax - 0x140]
mov dword [ebp - 0x144], esi
mov byte [ebp + eax - 0x140], ch
movzx eax, bh
mov dword [ebp - 0x3c], eax
mov ch, byte [ebp + eax - 0x140]
mov esi, dword [ebp - 0x28]
mov byte [ebp + esi - 0x140], ch
mov ch, byte [ebp - 0x40]
add ch, 2
movzx edx, ch
mov ch, byte [ebp + edx - 0x140]
mov byte [ebp + eax - 0x140], ch
mov ebx, dword [ebp - 0x144]
mov byte [ebp + edx - 0x140], bl
mov al, byte [ebp - 0x38]
add al, 0x9a
shl cl, 4
add cl, 0x10
or cl, al
movzx edx, byte [ebp + esi - 0x140]
add edx, ebx
mov esi, ebx
mov eax, 0xff
and edx, eax
movzx eax, cl
mov dword [ebp - 0x28], eax
xor cl, byte [ebp + edx - 0x140]
mov eax, dword [ebp - 0x3c]
movzx edx, byte [ebp + eax - 0x140]
mov eax, dword [ebp - 0x2c]
movzx ebx, byte [ebp + eax - 0x140]
add ebx, edx
mov al, byte [ebp - 0x20]
add al, byte [ebp + esi - 0x140]
mov byte [ebp - 0x20], al
movzx edx, al
movzx edx, byte [ebp + edx - 0x140]
add edx, ebx
mov eax, 0xff
and edx, eax
movzx edx, byte [ebp + edx - 0x140]
xor cl, byte [ebp + edx - 0x140]
movsx edx, cl
mov word [ebp - 0x15c], dx
mov al, byte [ebp - 0x24]
mov edx, esi
add al, dl
mov byte [ebp - 0x24], al
mov esi, dword [ebp - 0x34]
mov dl, byte [esi + 8]
mov ch, byte [esi + 9]
movzx ebx, al
mov dword [ebp - 0x2c], ebx
mov dh, byte [ebp + ebx - 0x140]
mov esi, dword [ebp - 0x28]
movzx eax, byte [ebp + esi - 0x140]
mov byte [ebp + esi - 0x140], dh
movzx esi, cl
mov dword [ebp - 0x3c], esi
mov cl, byte [ebp + esi - 0x140]
mov byte [ebp + ebx - 0x140], cl
mov cl, byte [ebp - 0x40]
add cl, 3
movzx ebx, cl
mov cl, byte [ebp + ebx - 0x140]
mov byte [ebp + esi - 0x140], cl
mov byte [ebp + ebx - 0x140], al
add ch, 0x9a
shl dl, 4
add dl, 0x10
or dl, ch
mov ecx, dword [ebp - 0x2c]
movzx ecx, byte [ebp + ecx - 0x140]
add ecx, eax
mov esi, eax
mov ebx, 0xff
and ecx, ebx
movzx ebx, dl
mov dword [ebp - 0x2c], ebx
xor dl, byte [ebp + ecx - 0x140]
mov eax, dword [ebp - 0x3c]
movzx ecx, byte [ebp + eax - 0x140]
mov eax, dword [ebp - 0x28]
movzx ebx, byte [ebp + eax - 0x140]
add ebx, ecx
mov al, byte [ebp - 0x20]
mov dword [ebp - 0x38], esi
add al, byte [ebp + esi - 0x140]
mov byte [ebp - 0x20], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x140]
add ecx, ebx
mov ebx, 0xff
and ecx, ebx
movzx ecx, byte [ebp + ecx - 0x140]
xor dl, byte [ebp + ecx - 0x140]
movsx ecx, dl
mov word [ebp - 0x15a], cx
mov cl, byte [ebp - 0x24]
add cl, byte [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov bh, byte [eax + 0xa]
mov al, byte [eax + 0xb]
mov byte [ebp - 0x38], al
mov byte [ebp - 0x24], cl
movzx eax, cl
mov dword [ebp - 0x28], eax
mov bl, byte [ebp + eax - 0x140]
mov esi, dword [ebp - 0x2c]
movzx ecx, byte [ebp + esi - 0x140]
mov byte [ebp + esi - 0x140], bl
movzx eax, dl
mov bl, byte [ebp + eax - 0x140]
mov edx, dword [ebp - 0x28]
mov byte [ebp + edx - 0x140], bl
mov dl, byte [ebp - 0x40]
add dl, 4
movzx edx, dl
mov bl, byte [ebp + edx - 0x140]
mov byte [ebp + eax - 0x140], bl
mov byte [ebp + edx - 0x140], cl
movzx edx, byte [ebp + eax - 0x140]
movzx eax, byte [ebp + esi - 0x140]
add eax, edx
mov dword [ebp - 0x2c], eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x140]
mov byte [ebp - 0x20], al
movzx edx, al
movzx esi, byte [ebp + edx - 0x140]
add esi, dword [ebp - 0x2c]
mov al, byte [ebp - 0x38]
add al, 0x9a
shl bh, 4
add bh, 0x10
or bh, al
mov eax, dword [ebp - 0x28]
movzx edx, byte [ebp + eax - 0x140]
add edx, ecx
mov eax, 0xff
and edx, eax
mov dl, byte [ebp + edx - 0x140]
xor dl, bh
and esi, eax
movzx esi, byte [ebp + esi - 0x140]
xor dl, byte [ebp + esi - 0x140]
movsx esi, dl
mov word [ebp - 0x158], si
add dword [ebp - 0x30], edi
mov esi, 0xfffffffc
mov al, byte [ebp - 0x24]
add al, cl
mov ecx, dword [ebp - 0x34]
mov dh, byte [ecx + esi*2 + 0x14]
movzx edi, bh
mov dword [ebp - 0x2c], edi
mov bh, byte [ecx + esi*2 + 0x15]
movzx ecx, byte [ebp + edi - 0x140]
mov dword [ebp - 0x38], ecx
mov byte [ebp - 0x24], al
movzx eax, al
mov dword [ebp - 0x28], eax
mov bl, byte [ebp + eax - 0x140]
mov byte [ebp + edi - 0x140], bl
movzx ecx, dl
mov dl, byte [ebp + ecx - 0x140]
mov byte [ebp + eax - 0x140], dl
mov eax, dword [ebp - 0x30]
lea edi, [eax + esi]
add edi, 9
mov eax, 0xff
and edi, eax
mov dl, byte [ebp + edi - 0x140]
mov byte [ebp + ecx - 0x140], dl
mov eax, dword [ebp - 0x38]
mov byte [ebp + edi - 0x140], al
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + eax - 0x140]
mov edi, eax
movzx ecx, byte [ebp + ecx - 0x140]
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x140]
add eax, ecx
mov byte [ebp - 0x20], dl
movzx ecx, dl
movzx ecx, byte [ebp + ecx - 0x140]
add ecx, eax
shl dh, 4
add dh, 0x10
add bh, 0x9a
or bh, dh
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x140]
add eax, edi
mov edx, 0xff
and eax, edx
mov dl, byte [ebp + eax - 0x140]
xor dl, bh
mov eax, 0xff
and ecx, eax
movzx eax, byte [ebp + ecx - 0x140]
mov ecx, edi
xor dl, byte [ebp + eax - 0x140]
movsx eax, dl
mov word [ebp + esi*2 - 0x14e], ax
inc esi
jne 0x4182a7
mov al, byte [ebp - 0x24]
add al, cl
mov byte [ebp - 0x24], al
movzx edi, bh
mov dword [ebp - 0x38], edi
mov ecx, dword [ebp - 0x34]
mov dh, byte [ecx + 0x14]
mov cl, byte [ecx + 0x15]
movzx ebx, al
mov dword [ebp - 0x28], ebx
mov ch, byte [ebp + ebx - 0x140]
movzx eax, byte [ebp + edi - 0x140]
mov dword [ebp - 0x3c], eax
mov byte [ebp + edi - 0x140], ch
movzx edi, dl
mov dl, byte [ebp + edi - 0x140]
mov byte [ebp + ebx - 0x140], dl
mov eax, esi
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x30]
add eax, esi
add eax, 9
mov ebx, 0xff
and eax, ebx
mov dl, byte [ebp + eax - 0x140]
mov byte [ebp + edi - 0x140], dl
mov ebx, dword [ebp - 0x3c]
mov byte [ebp + eax - 0x140], bl
add cl, 0x9a
shl dh, 4
add dh, 0x10
or dh, cl
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x140]
add eax, ebx
mov ecx, 0xff
and eax, ecx
movzx ecx, dh
mov dword [ebp - 0x28], ecx
xor dh, byte [ebp + eax - 0x140]
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + ebx - 0x140]
mov byte [ebp - 0x20], dl
movzx eax, byte [ebp + edi - 0x140]
mov ecx, dword [ebp - 0x38]
movzx ecx, byte [ebp + ecx - 0x140]
add ecx, eax
movzx eax, dl
movzx eax, byte [ebp + eax - 0x140]
add eax, ecx
mov ecx, 0xff
and eax, ecx
movzx eax, byte [ebp + eax - 0x140]
xor dh, byte [ebp + eax - 0x140]
movsx eax, dh
mov word [ebp - 0x14e], ax
mov eax, dword [ebp - 0x2c]
add eax, esi
add eax, 0xa
mov ch, byte [ebp - 0x24]
add ch, bl
mov esi, dword [ebp - 0x34]
mov cl, byte [esi + 0x16]
mov dl, byte [esi + 0x17]
mov byte [ebp - 0x24], dl
movzx edi, ch
mov ch, byte [ebp + edi - 0x140]
mov esi, dword [ebp - 0x28]
movzx ebx, byte [ebp + esi - 0x140]
mov byte [ebp + esi - 0x140], ch
movzx esi, dh
mov ch, byte [ebp + esi - 0x140]
mov byte [ebp + edi - 0x140], ch
mov edx, 0xff
and eax, edx
mov ch, byte [ebp + eax - 0x140]
mov byte [ebp + esi - 0x140], ch
mov byte [ebp + eax - 0x140], bl
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + ebx - 0x140]
movzx eax, byte [ebp + edi - 0x140]
add eax, ebx
mov dl, byte [ebp - 0x24]
add dl, 0x9a
shl cl, 4
add cl, 0x10
or cl, dl
mov edi, 0xff
and eax, edi
xor cl, byte [ebp + eax - 0x140]
movzx eax, byte [ebp + esi - 0x140]
mov edx, dword [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x140]
add edx, eax
movzx eax, ch
movzx eax, byte [ebp + eax - 0x140]
add eax, edx
and eax, edi
movzx eax, byte [ebp + eax - 0x140]
xor cl, byte [ebp + eax - 0x140]
movsx eax, cl
mov word [ebp - 0x14c], ax
mov word [ebp - 0x14a], 0
mov dword [ebp - 0x10], 1
push 4
call fcn.005db3dd
add esp, 4
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], 3
lea eax, [ebp - 0x160]
lea ecx, [ebp - 0x140]
push eax
call fcn.00406642
mov ecx, dword [ebp - 0x3c]
mov dword [ecx], 0
mov dword [ebp - 0x10], 4
push 2
lea eax, [ebp - 0x140]
push eax
call fcn.0044527c
push dword [ebp - 0x128]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x12c]
cmp ecx, 8
jb 0x4185fd
mov eax, dword [ebp - 0x140]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x4185f3
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x4193b3
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
xorpd xmm4, xmm4
movsd xmm5, qword [0x612928]
movsd xmm6, qword [0x612930]
movsd xmm7, qword [0x6120f8]
movsd xmm2, qword [0x612938]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x612918]
mulsd xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x6122c8]
mulsd xmm3, xmm4
addsd xmm3, qword [0x612920]
divsd xmm1, xmm3
addsd xmm1, xmm0
movapd xmm3, xmm4
mulsd xmm3, xmm5
addsd xmm3, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm3, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm3
addsd xmm4, xmm7
ucomisd xmm2, xmm4
ja 0x418625
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x4186d7
and al, 0xae
sub byte [edx - 0x5cd656d2], ch
and byte [eax - 0x5bd14fd2], dh
and ebp, dword [edx - 0x4fe057d5]
daa
scasd eax, dword es:[edi]
sub al, 0xaa
and al, 0xa8
and dh, byte [eax + 0x77497c45]
jno 0x41871b
jbe 0x418718
push edx
push 0x75
and ah, byte [esi + 0x4a]
inc ecx
dec ecx
xor al, 0x4a
inc ebx
push eax
push esp
and al, 0x2a
push edi
dec ecx
jp 0x418721
and al, 0x38
sub byte [eax + 0x2b], dh
jmp 0x418bfd
lea edx, [0x418696]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x140], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x4186ef
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
sub al, 0xc2
lea ecx, [0x4186b2]
or eax, 0x4186b2
mov dword [ebp - 0x30], ecx
xor eax, 0x80000000
dec ebp
sal byte [0x80000000], 1
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x2c], 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 - 0x28], edx
xor edx, edx
inc edx
cmp esi, 2
jb 0x418762
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x41875b
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x41876f
jmp dword [ecx*4 + 0x612bb8]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x24]
jmp 0x4187a1
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x34]
jmp 0x4187a1
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x2c]
jmp 0x4187c6
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x4187c6
movzx eax, bl
mov bl, byte [ebp + eax - 0x140]
mov eax, dword [ebp - 0x30]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x24
cmp ecx, 0x23
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x4187f5
cmp eax, dword [ebp - 0x20]
ja 0x41876a
jmp 0x4187fc
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
mov edx, dword [ebp - 0x28]
je 0x418833
mov dl, byte [ebp + esi - 0x140]
xor dl, byte [ebp + eax - 0x140]
mov byte [ebp + esi - 0x140], dl
xor dl, byte [ebp + eax - 0x140]
mov byte [ebp + eax - 0x140], dl
xor byte [ebp + esi - 0x140], dl
mov edx, dword [ebp - 0x28]
dec esi
jne 0x418750
movzx ebx, byte [ebp - 0x13f]
mov al, byte [ebp - 0x13b]
mov byte [ebp - 0x20], al
movzx eax, byte [ebp + edi - 0x140]
mov cl, byte [edx]
mov ch, byte [edx + 1]
mov byte [ebp - 0x30], ch
mov dword [ebp - 0x40], ebx
mov dl, byte [ebp + ebx - 0x140]
add dl, byte [ebp - 0x13d]
mov byte [ebp - 0x24], dl
movzx esi, dl
mov ch, byte [ebp + esi - 0x140]
mov dword [ebp - 0x2c], esi
movzx edi, byte [ebp - 0x139]
movzx edx, byte [ebp + eax - 0x140]
mov byte [ebp + eax - 0x140], ch
mov ch, byte [ebp + edi - 0x140]
mov byte [ebp + esi - 0x140], ch
mov ch, bl
inc ch
movzx esi, ch
mov ch, byte [ebp + esi - 0x140]
mov byte [ebp + edi - 0x140], ch
mov byte [ebp + esi - 0x140], dl
movzx esi, byte [ebp + edi - 0x140]
movzx edi, byte [ebp + eax - 0x140]
add edi, esi
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x140]
mov byte [ebp - 0x20], al
movzx esi, al
movzx ebx, byte [ebp + esi - 0x140]
add ebx, edi
mov al, byte [ebp - 0x30]
add al, 0x5f
shl cl, 4
add cl, 0x10
or cl, al
mov eax, dword [ebp - 0x2c]
movzx esi, byte [ebp + eax - 0x140]
add esi, edx
mov edi, 0xff
and esi, edi
mov ah, byte [ebp + esi - 0x140]
xor ah, cl
and ebx, edi
movzx esi, byte [ebp + ebx - 0x140]
xor ah, byte [ebp + esi - 0x140]
mov ebx, dword [ebp - 0x40]
mov ch, bl
add ch, 2
movzx esi, ch
mov dword [ebp - 0x38], esi
xor esi, esi
mov al, byte [ebp - 0x24]
add al, dl
movzx edi, cl
mov edx, dword [ebp - 0x28]
mov cl, byte [edx + esi*2 + 2]
mov dl, byte [edx + esi*2 + 3]
mov byte [ebp - 0x30], dl
mov byte [ebp - 0x24], al
movzx edx, al
mov al, byte [ebp + edx - 0x140]
mov dword [ebp - 0x2c], edx
movzx ebx, byte [ebp + edi - 0x140]
mov dword [ebp - 0x34], ebx
mov byte [ebp + edi - 0x140], al
movzx eax, ah
mov bl, byte [ebp + eax - 0x140]
mov byte [ebp + edx - 0x140], bl
mov ebx, dword [ebp - 0x38]
add ebx, esi
mov edx, 0xff
and ebx, edx
mov ch, byte [ebp + ebx - 0x140]
mov byte [ebp + eax - 0x140], ch
mov edx, dword [ebp - 0x34]
mov byte [ebp + ebx - 0x140], dl
movzx eax, byte [ebp + eax - 0x140]
movzx edi, byte [ebp + edi - 0x140]
add edi, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x140]
mov byte [ebp - 0x20], al
movzx eax, al
movzx ebx, byte [ebp + eax - 0x140]
add ebx, edi
mov al, byte [ebp - 0x30]
add al, 0x5f
shl cl, 4
add cl, 0x10
or cl, al
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x140]
add eax, edx
mov edi, edx
mov edx, 0xff
and eax, edx
mov ah, byte [ebp + eax - 0x140]
xor ah, cl
and ebx, edx
movzx edx, byte [ebp + ebx - 0x140]
xor ah, byte [ebp + edx - 0x140]
mov edx, edi
mov byte [ebp + esi - 0x17a], ah
inc esi
cmp esi, 5
jne 0x418931
mov al, byte [ebp - 0x24]
add al, dl
mov edi, dword [ebp - 0x28]
mov dh, byte [edi + 0xc]
mov dl, byte [edi + 0xd]
movzx edi, cl
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x24], al
movzx ebx, al
mov dword [ebp - 0x2c], ebx
mov al, byte [ebp + ebx - 0x140]
movzx ecx, byte [ebp + edi - 0x140]
mov dword [ebp - 0x30], ecx
mov byte [ebp + edi - 0x140], al
movzx edi, ah
mov cl, byte [ebp + edi - 0x140]
mov byte [ebp + ebx - 0x140], cl
mov ebx, dword [ebp - 0x38]
add ebx, esi
mov eax, 0xff
and ebx, eax
mov ah, byte [ebp + ebx - 0x140]
mov byte [ebp + edi - 0x140], ah
mov ecx, dword [ebp - 0x30]
mov byte [ebp + ebx - 0x140], cl
movzx edi, byte [ebp + edi - 0x140]
mov eax, dword [ebp - 0x34]
movzx eax, byte [ebp + eax - 0x140]
add eax, edi
mov dword [ebp - 0x34], eax
mov al, byte [ebp - 0x20]
mov ebx, ecx
add al, byte [ebp + ecx - 0x140]
mov byte [ebp - 0x20], al
movzx edi, al
movzx ecx, byte [ebp + edi - 0x140]
add ecx, dword [ebp - 0x34]
add dl, 0x5f
shl dh, 4
add dh, 0x10
or dh, dl
mov eax, dword [ebp - 0x2c]
movzx edi, byte [ebp + eax - 0x140]
add edi, ebx
mov ebx, 0xff
and edi, ebx
mov ah, byte [ebp + edi - 0x140]
xor ah, dh
and ecx, ebx
movzx edi, byte [ebp + ecx - 0x140]
xor ah, byte [ebp + edi - 0x140]
mov byte [ebp - 0x175], ah
mov ecx, dword [ebp - 0x40]
add cl, 3
movzx ecx, cl
add ecx, esi
mov dword [ebp - 0x38], ecx
xor esi, esi
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x30]
movzx ebx, dh
mov dword [ebp - 0x34], ebx
mov edi, dword [ebp - 0x28]
mov dh, byte [edi + esi*2 + 0xe]
mov cl, byte [edi + esi*2 + 0xf]
mov byte [ebp - 0x30], cl
movzx ecx, byte [ebp + ebx - 0x140]
mov byte [ebp - 0x24], al
movzx edi, al
mov dword [ebp - 0x2c], edi
mov dl, byte [ebp + edi - 0x140]
mov byte [ebp + ebx - 0x140], dl
movzx ebx, ah
mov dl, byte [ebp + ebx - 0x140]
mov byte [ebp + edi - 0x140], dl
mov eax, dword [ebp - 0x38]
add eax, esi
mov edi, 0xff
and eax, edi
mov dl, byte [ebp + eax - 0x140]
mov byte [ebp + ebx - 0x140], dl
mov byte [ebp + eax - 0x140], cl
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + ecx - 0x140]
mov edi, ecx
movzx eax, byte [ebp + ebx - 0x140]
mov ecx, dword [ebp - 0x34]
movzx ecx, byte [ebp + ecx - 0x140]
add ecx, eax
mov byte [ebp - 0x20], dl
movzx eax, dl
movzx ebx, byte [ebp + eax - 0x140]
add ebx, ecx
mov al, byte [ebp - 0x30]
add al, 0x5f
shl dh, 4
add dh, 0x10
or dh, al
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x140]
mov ecx, edi
mov dword [ebp - 0x30], edi
add eax, edi
mov ecx, 0xff
and eax, ecx
mov ah, byte [ebp + eax - 0x140]
xor ah, dh
and ebx, ecx
movzx ecx, byte [ebp + ebx - 0x140]
xor ah, byte [ebp + ecx - 0x140]
mov byte [ebp + esi - 0x174], ah
inc esi
cmp esi, 7
jne 0x418b09
mov byte [ebp - 0x16d], 0
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0x17a]
lea ecx, [ebp - 0x140]
push eax
call fcn.00401278
mov dword [ebp - 0x10], 2
mov ecx, dword [ebp - 0x3c]
push 0
lea eax, [ebp - 0x140]
push eax
call fcn.004454fe
mov esi, eax
push dword [ebp - 0x128]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x12c]
cmp ecx, 8
jb 0x418c81
mov eax, dword [ebp - 0x140]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x418c77
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x4193b3
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
xorpd xmm3, xmm3
movsd xmm5, qword [0x612958]
movsd xmm6, qword [0x612960]
movsd xmm7, qword [0x612968]
xorpd xmm0, xmm0
movsd xmm4, qword [0x612408]
movapd xmm1, xmm3
mulsd xmm1, qword [0x612940]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x612948]
mulsd xmm2, xmm3
addsd xmm2, qword [0x612950]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm5
addsd xmm2, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm4
ucomisd xmm7, xmm3
ja 0x418ca9
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
mov dword [ebp - 0x3c], esi
jbe 0x418d47
push ecx
xor al, 0x4e
daa
dec esp
das
dec edx
inc esp
das
dec edi
sub dword [ebp + esi*2 + 0x46], edx
push ebx
imul eax, dword [eax + 0x7c], 0x58
inc edx
pop edx
jle 0x418d9a
pop ecx
cmp byte [ebp + 0x28], dh
pushal
insb byte es:[edi], dx
dec esp
dec edi
imul esp, dword [ebx + 0x33], 0xe1e96b5c
add eax, 0x158d0000
sbb eax, 0x6600418d
movq mm1, qword [0x612110]
lea edx, [0x418d1d]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x140], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x418d5f
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x418d29]
mov dword [ebp - 0x28], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
sub al, 0xc8
ucomisd xmm0, xmm1
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 - 0x2c], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x34], edx
xor edx, edx
inc edx
cmp esi, 2
jb 0x418dd2
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x418dcb
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x418ddf
jmp dword [ecx*4 + 0x612bc8]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x24]
jmp 0x418e11
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x2c]
jmp 0x418e11
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x30]
jmp 0x418e36
movzx eax, bl
add eax, ebp
add eax, 0xfffffec0
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x418e36
movzx eax, bl
mov bl, byte [ebp + eax - 0x140]
mov eax, dword [ebp - 0x28]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x1d
cmp ecx, 0x1c
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x418e65
cmp eax, dword [ebp - 0x20]
ja 0x418dda
jmp 0x418e6c
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
mov edx, dword [ebp - 0x34]
je 0x418ea3
mov dl, byte [ebp + esi - 0x140]
xor dl, byte [ebp + eax - 0x140]
mov byte [ebp + esi - 0x140], dl
xor dl, byte [ebp + eax - 0x140]
mov byte [ebp + eax - 0x140], dl
xor byte [ebp + esi - 0x140], dl
mov edx, dword [ebp - 0x34]
dec esi
jne 0x418dc0
movzx ebx, byte [ebp - 0x13f]
mov al, byte [ebp - 0x13b]
mov byte [ebp - 0x20], al
movzx eax, byte [ebp + edi - 0x140]
mov dword [ebp - 0x2c], eax
mov edi, eax
mov cl, byte [edx]
mov al, byte [ebp + ebx - 0x140]
mov dword [ebp - 0x28], ebx
add al, byte [ebp - 0x13d]
mov byte [ebp - 0x24], al
mov ah, byte [edx + 1]
mov byte [ebp - 0x30], ah
movzx esi, al
mov ch, byte [ebp + esi - 0x140]
movzx edx, byte [ebp - 0x139]
mov eax, edi
movzx edi, byte [ebp + edi - 0x140]
mov dword [ebp - 0x38], edi
mov byte [ebp + eax - 0x140], ch
mov ch, byte [ebp + edx - 0x140]
mov byte [ebp + esi - 0x140], ch
mov ch, bl
inc ch
movzx edi, ch
mov ch, byte [ebp + edi - 0x140]
mov byte [ebp + edx - 0x140], ch
mov ebx, dword [ebp - 0x38]
mov byte [ebp + edi - 0x140], bl
mov al, byte [ebp - 0x30]
add al, 0xda
shl cl, 4
add cl, 0xe0
or cl, al
movzx edi, byte [ebp + esi - 0x140]
add edi, ebx
mov esi, 0xff
and edi, esi
movzx esi, cl
mov dword [ebp - 0x30], esi
xor cl, byte [ebp + edi - 0x140]
mov ah, byte [ebp - 0x20]
add ah, byte [ebp + ebx - 0x140]
mov esi, ebx
mov byte [ebp - 0x20], ah
movzx edi, byte [ebp + edx - 0x140]
mov edx, dword [ebp - 0x2c]
movzx ebx, byte [ebp + edx - 0x140]
add ebx, edi
movzx edi, ah
movzx edi, byte [ebp + edi - 0x140]
add edi, ebx
mov edx, 0xff
and edi, edx
movzx edi, byte [ebp + edi - 0x140]
xor cl, byte [ebp + edi - 0x140]
mov edx, esi
mov al, byte [ebp - 0x24]
add al, dl
mov edx, dword [ebp - 0x34]
mov ah, byte [edx + 2]
mov ch, byte [edx + 3]
movzx ebx, al
mov dh, byte [ebp + ebx - 0x140]
mov edi, dword [ebp - 0x30]
movzx esi, byte [ebp + edi - 0x140]
mov dword [ebp - 0x24], esi
mov byte [ebp + edi - 0x140], dh
movzx esi, cl
mov cl, byte [ebp + esi - 0x140]
mov byte [ebp + ebx - 0x140], cl
mov edx, dword [ebp - 0x28]
mov cl, dl
add cl, 2
movzx edi, cl
mov cl, byte [ebp + edi - 0x140]
mov byte [ebp + esi - 0x140], cl
mov edx, dword [ebp - 0x24]
mov byte [ebp + edi - 0x140], dl
add ch, 0xda
shl ah, 4
add ah, 0xe0
or ah, ch
movzx ecx, byte [ebp + ebx - 0x140]
add ecx, edx
mov ebx, edx
mov edx, 0xff
and ecx, edx
movzx edi, ah
mov dword [ebp - 0x2c], edi
xor ah, byte [ebp + ecx - 0x140]
movzx ecx, byte [ebp + esi - 0x140]
mov edi, dword [ebp - 0x30]
movzx edi, byte [ebp + edi - 0x140]
add edi, ecx
mov cl, byte [ebp - 0x20]
add cl, byte [ebp + ebx - 0x140]
mov byte [ebp - 0x20], cl
movzx ecx, cl
movzx ecx, byte [ebp + ecx - 0x140]
add ecx, edi
and ecx, edx
movzx ecx, byte [ebp + ecx - 0x140]
xor ah, byte [ebp + ecx - 0x140]
movsx ecx, ah
mov word [ebp - 0x16c], cx
add al, bl
mov byte [ebp - 0x24], al
mov ecx, dword [ebp - 0x34]
mov bl, byte [ecx + 4]
mov bh, byte [ecx + 5]
movzx edx, al
mov al, byte [ebp + edx - 0x140]
mov ecx, dword [ebp - 0x2c]
movzx esi, byte [ebp + ecx - 0x140]
mov byte [ebp + ecx - 0x140], al
movzx edi, ah
mov ah, byte [ebp + edi - 0x140]
mov byte [ebp + edx - 0x140], ah
mov ecx, dword [ebp - 0x28]
mov ah, cl
add ah, 3
movzx ecx, ah
mov ah, byte [ebp + ecx - 0x140]
mov byte [ebp + edi - 0x140], ah
mov eax, esi
mov byte [ebp + ecx - 0x140], al
movzx ecx, byte [ebp + edi - 0x140]
mov esi, dword [ebp - 0x2c]
movzx edi, byte [ebp + esi - 0x140]
add edi, ecx
mov cl, byte [ebp - 0x20]
add cl, byte [ebp + eax - 0x140]
mov byte [ebp - 0x20], cl
movzx ecx, cl
movzx ecx, byte [ebp + ecx - 0x140]
add ecx, edi
shl bl, 4
add bl, 0xe0
add bh, 0xda
or bh, bl
movzx edi, byte [ebp + edx - 0x140]
add edi, eax
mov edx, eax
mov esi, 0xff
and edi, esi
mov bl, byte [ebp + edi - 0x140]
xor bl, bh
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x140]
xor bl, byte [ebp + ecx - 0x140]
movsx ecx, bl
mov word [ebp - 0x16a], cx
mov al, byte [ebp - 0x24]
add al, dl
mov ecx, dword [ebp - 0x34]
mov ah, byte [ecx + 6]
mov dl, byte [ecx + 7]
movzx esi, bh
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x24], al
movzx edi, al
mov dword [ebp - 0x30], edi
mov dh, byte [ebp + edi - 0x140]
movzx ecx, byte [ebp + esi - 0x140]
mov byte [ebp + esi - 0x140], dh
movzx esi, bl
mov dh, byte [ebp + esi - 0x140]
mov byte [ebp + edi - 0x140], dh
mov ebx, dword [ebp - 0x28]
mov dh, bl
add dh, 4
movzx edi, dh
mov dh, byte [ebp + edi - 0x140]
mov byte [ebp + esi - 0x140], dh
mov byte [ebp + edi - 0x140], cl
movzx edi, byte [ebp + esi - 0x140]
mov esi, dword [ebp - 0x2c]
movzx ebx, byte [ebp + esi - 0x140]
add ebx, edi
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x140]
mov byte [ebp - 0x20], al
movzx edi, al
movzx edi, byte [ebp + edi - 0x140]
add edi, ebx
add dl, 0xda
shl ah, 4
add ah, 0xe0
or ah, dl
mov edx, dword [ebp - 0x30]
movzx ebx, byte [ebp + edx - 0x140]
mov esi, ecx
add ebx, ecx
mov ecx, 0xff
and ebx, ecx
mov dh, byte [ebp + ebx - 0x140]
xor dh, ah
and edi, ecx
movzx edi, byte [ebp + edi - 0x140]
xor dh, byte [ebp + edi - 0x140]
movsx edi, dh
mov word [ebp - 0x168], di
mov ecx, dword [ebp - 0x28]
add cl, 5
movzx ecx, cl
mov dword [ebp - 0x38], ecx
xor edi, edi
mov al, byte [ebp - 0x24]
mov ecx, esi
add al, cl
movzx esi, ah
mov ecx, dword [ebp - 0x34]
mov ah, byte [ecx + edi*2 + 8]
mov cl, byte [ecx + edi*2 + 9]
mov byte [ebp - 0x28], cl
movzx ecx, byte [ebp + esi - 0x140]
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x24], al
movzx ebx, al
mov dword [ebp - 0x30], ebx
mov dl, byte [ebp + ebx - 0x140]
mov byte [ebp + esi - 0x140], dl
movzx edx, dh
mov cl, byte [ebp + edx - 0x140]
mov byte [ebp + ebx - 0x140], cl
mov ecx, dword [ebp - 0x38]
add ecx, edi
mov ebx, 0xff
and ecx, ebx
mov al, byte [ebp + ecx - 0x140]
mov byte [ebp + edx - 0x140], al
mov ebx, dword [ebp - 0x2c]
mov byte [ebp + ecx - 0x140], bl
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x140]
movzx ecx, byte [ebp + edx - 0x140]
movzx edx, byte [ebp + esi - 0x140]
add edx, ecx
mov byte [ebp - 0x20], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x140]
add ecx, edx
mov al, byte [ebp - 0x28]
add al, 0xda
shl ah, 4
add ah, 0xe0
or ah, al
mov edx, dword [ebp - 0x30]
movzx edx, byte [ebp + edx - 0x140]
mov esi, ebx
add edx, ebx
mov ebx, 0xff
and edx, ebx
mov dh, byte [ebp + edx - 0x140]
xor dh, ah
and ecx, ebx
movzx ecx, byte [ebp + ecx - 0x140]
xor dh, byte [ebp + ecx - 0x140]
movsx ecx, dh
mov word [ebp + edi*2 - 0x166], cx
inc edi
cmp edi, 3
jne 0x419232
mov word [ebp - 0x162], 0
mov dword [ebp - 0x10], 1
lea ecx, [ebp - 0x148]
push dword [ebp + 8]
call fcn.0043823a
xor edx, edx
lea ecx, [ebp - 0x16c]
push 1
push edx
push eax
lea eax, [ebp - 0x39c]
push eax
push ecx
push edx
call dword [ebp - 0x3c]
xor ecx, ecx
mov byte [ebp + ecx - 0x5a4], 0
inc ecx
cmp ecx, 0x208
jne 0x419357
xor ecx, ecx
mov byte [ebp + ecx - 0x39c], 0
inc ecx
cmp ecx, 0x208
jne 0x41936a
cmp eax, 0x20
setg bl
cmp eax, 0x21
jl 0x419392
mov eax, dword [ebp + 8]
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x148]
call fcn.004381f6
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, ebx
add esp, 0x598
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x128]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x12c]
cmp ecx, 8
jb 0x41940c
mov eax, dword [ebp - 0x140]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x419402
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x41942e
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 7
mov word [ebp - 0x140], 0
add esp, 0x18
pop ebp
ret
call fcn.005f5844
nop
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x128]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x12c]
cmp ecx, 8
jb 0x419488
mov eax, dword [ebp - 0x140]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x41947e
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x41948d
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 0x18
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x384]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x388]
cmp ecx, 8
jb 0x4194e6
mov eax, dword [ebp - 0x39c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x4194dc
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x4194eb
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 0x18
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x3c]
call fcn.005db40d
add esp, 0x1c
pop ebp
ret