Function at 0x417430
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], edi
cmp edx, eax
jne 0x4174e5
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x20], 4
mov ecx, dword [ebp + edx*4 - 0x34]
mul ecx
mov ebx, eax
mov eax, dword [ebp + 0x10]
mul ecx
mov ecx, dword [ebp + 8]
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x10], ecx
add ebx, edx
jne 0x417498
test eax, eax
je case.default.0x417502
mov dword [ebp - 8], ebx
mov esi, eax
test ebx, ebx
jne 0x4174a6
cmp eax, 0xffffffff
jbe 0x4174b0
or esi, 0xffffffff
mov dword [ebp - 8], 0
push esi
push ecx
push edi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [ebp - 0x10]
sub eax, esi
mov dword [ebp + 0xc], eax
sbb ebx, dword [ebp - 8]
add ecx, esi
add edi, esi
mov dword [ebp - 0x10], ecx
test ebx, ebx
ja 0x417498
jb case.default.0x417502
test eax, eax
jne 0x417498
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec eax
cmp eax, 4
ja case.default.0x417502
jmp dword [eax*4 + 0x418400]
add edx, 0xfffffffe
cmp edx, 3
ja case.default.0x417502
jmp dword [edx*4 + 0x418414]
cmp dword [ebp + 0x14], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jb case.default.0x417502
mov ebx, dword [ebp + 0x10]
ja 0x417528
test ebx, ebx
je case.default.0x417502
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
nop
mov eax, dword [ebp + 8]
movzx ecx, byte [edx + eax]
mov eax, 0x80
sub cx, ax
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
mov word [edi + edx*2], cx
add edx, 1
adc esi, 0
cmp esi, dword [ebp + 0x14]
jb 0x417530
ja case.default.0x417502
cmp edx, ebx
jb 0x417530
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jb case.default.0x417502
mov ebx, dword [ebp + 0x10]
ja 0x41758a
test ebx, ebx
je case.default.0x417502
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov cl, byte [edx + eax]
lea eax, [edi + edx*2]
add cl, 0x80
mov word [edx + eax], 0
mov byte [edx + eax + 2], cl
add edx, 1
adc esi, 0
cmp esi, dword [ebp + 0x14]
jb 0x417590
ja case.default.0x417502
cmp edx, ebx
jb 0x417590
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0x14]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
test ebx, ebx
jb case.default.0x417502
mov esi, dword [ebp + 0x10]
ja 0x4175e2
test esi, esi
je case.default.0x417502
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
nop dword [eax + eax]
mov eax, dword [ebp + 8]
movzx eax, byte [ecx + eax]
add eax, 0xffffff80
shl eax, 0x18
mov dword [edi + ecx*4], eax
add ecx, 1
adc edx, 0
cmp edx, ebx
jb 0x4175f0
ja case.default.0x417502
cmp ecx, esi
jb 0x4175f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0x14]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
test ebx, ebx
jb case.default.0x417502
mov esi, dword [ebp + 0x10]
ja 0x41763b
test esi, esi
je case.default.0x417502
movss xmm1, dword [0x4f4960]
movss xmm2, dword [0x4f4a1c]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
movzx eax, byte [ecx + eax]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
subss xmm0, xmm2
movss dword [edi + ecx*4], xmm0
add ecx, 1
adc edx, 0
cmp edx, ebx
jb 0x417651
ja case.default.0x417502
cmp ecx, esi
jb 0x417651
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec edx
cmp edx, 4
ja case.default.0x417502
jmp dword [edx*4 + 0x418424]
cmp dword [ebp + 0x18], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jne 0x4176eb
mov ebx, dword [ebp + 0x14]
test ebx, ebx
jb case.default.0x417502
mov esi, dword [ebp + 0x10]
ja 0x4176be
test esi, esi
je case.default.0x417502
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov al, byte [eax + ecx*2 + 1]
sub al, 0x80
mov byte [ecx + edi], al
add ecx, 1
adc edx, 0
cmp edx, ebx
jb 0x4176c4
ja case.default.0x417502
cmp ecx, esi
jb 0x4176c4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
jb case.default.0x417502
ja 0x417701
cmp dword [ebp + 0x10], 0
jbe case.default.0x417502
mov esi, dword [ebp - 0x18]
mov ecx, SysReAllocString
mov ebx, dword [ebp - 0x1c]
mov dword [ebp + 0xc], esi
nop
mov eax, dword [ebp + 8]
movzx eax, word [eax + ebx*2]
mov edx, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 0x18]
cmp edx, 1
jne 0x417742
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ecx
mov dword [0x50e484], edx
shr edx, 0x18
add edx, 0xffffff80
jmp 0x41778b
cmp edx, 2
jne 0x417789
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ecx
mov esi, edx
imul eax, esi, 0xbc8f
cdq
idiv ecx
mov eax, 0x1ffff8f
mov ecx, edx
mul esi
mov dword [0x50e484], ecx
sub esi, edx
shr ecx, 0x19
shr esi, 1
add esi, edx
shr esi, 0x18
lea edx, [ecx - 0x80]
mov ecx, SysReAllocString
add edx, esi
mov esi, dword [ebp + 0xc]
jmp 0x41778b
xor edx, edx
mov eax, dword [ebp - 0x18]
cwde
add eax, edx
cmp eax, 0x7fff
jg 0x4177a2
mov eax, dword [ebp - 0x10]
add eax, edx
movzx eax, ax
jmp 0x4177a7
mov eax, 0x7fff
sar eax, 8
sub al, 0x80
mov byte [ebx + edi], al
add ebx, 1
adc esi, 0
mov dword [ebp + 0xc], esi
cmp esi, dword [ebp + 0x14]
jb 0x417710
ja case.default.0x417502
cmp ebx, dword [ebp + 0x10]
jb 0x417710
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jb case.default.0x417502
ja 0x4177f5
cmp dword [ebp + 0x10], 0
jbe case.default.0x417502
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
nop
lea ecx, [edi + edx*2]
mov byte [edx + ecx], 0
movzx eax, byte [ebx + edx*2]
mov byte [edx + ecx + 1], al
movzx eax, byte [ebx + edx*2 + 1]
mov byte [edx + ecx + 2], al
add edx, 1
adc esi, 0
cmp esi, dword [ebp + 0x14]
jb 0x417800
ja case.default.0x417502
cmp edx, dword [ebp + 0x10]
jb 0x417800
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0x14]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
test ebx, ebx
jb case.default.0x417502
mov esi, dword [ebp + 0x10]
ja 0x417855
test esi, esi
je case.default.0x417502
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
nop dword [eax + eax]
mov eax, dword [ebp + 8]
movsx eax, word [eax + ecx*2]
shl eax, 0x10
mov dword [edi + ecx*4], eax
add ecx, 1
adc edx, 0
cmp edx, ebx
jb 0x417860
ja case.default.0x417502
cmp ecx, esi
jb 0x417860
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0x14]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
test ebx, ebx
jb case.default.0x417502
mov esi, dword [ebp + 0x10]
ja 0x4178a8
test esi, esi
je case.default.0x417502
movss xmm1, dword [0x4f4948]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
nop word [eax + eax]
mov eax, dword [ebp + 8]
movsx eax, word [eax + ecx*2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [edi + ecx*4], xmm0
add ecx, 1
adc edx, 0
cmp edx, ebx
jb 0x4178c0
ja case.default.0x417502
cmp ecx, esi
jb 0x4178c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec edx
cmp edx, 4
ja case.default.0x417502
jmp dword [edx*4 + 0x418438]
cmp dword [ebp + 0x18], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jne 0x41795a
mov ebx, dword [ebp + 0x14]
test ebx, ebx
jb case.default.0x417502
mov esi, dword [ebp + 0x10]
ja 0x417929
test esi, esi
je case.default.0x417502
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
nop
mov eax, dword [ebp + 8]
lea eax, [eax + ecx*2]
mov al, byte [ecx + eax + 2]
sub al, 0x80
mov byte [ecx + edi], al
add ecx, 1
adc edx, 0
cmp edx, ebx
jb 0x417930
ja case.default.0x417502
cmp ecx, esi
jb 0x417930
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
jb case.default.0x417502
ja 0x417970
cmp dword [ebp + 0x10], 0
jbe case.default.0x417502
mov eax, dword [ebp - 0x18]
mov ebx, SysReAllocString
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 8]
lea ecx, [eax + edx*2]
movzx esi, byte [edx + ecx + 2]
movzx eax, byte [edx + ecx + 1]
shl esi, 8
or esi, eax
movzx eax, byte [edx + ecx]
shl esi, 8
or esi, eax
mov eax, dword [ebp + 0x18]
shl esi, 8
cmp eax, 1
jne 0x4179ca
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ebx
mov ebx, edx
mov dword [0x50e484], ebx
shr ebx, 8
sub ebx, 0x800000
jmp 0x4179ff
cmp eax, 2
jne 0x4179fd
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ebx
mov ecx, edx
imul eax, ecx, 0xbc8f
shr ecx, 9
cdq
idiv ebx
lea ebx, [ecx - 0x800000]
mov dword [0x50e484], edx
shr edx, 9
add ebx, edx
jmp 0x4179ff
xor ebx, ebx
mov eax, esi
cdq
mov dword [ebp + 0xc], eax
mov ecx, edx
mov eax, ebx
cdq
add dword [ebp + 0xc], eax
adc ecx, edx
test ecx, ecx
jg 0x417a23
jl 0x417a1e
cmp dword [ebp + 0xc], 0x7fffffff
ja 0x417a23
lea eax, [esi + ebx]
jmp 0x417a28
mov eax, SysReAllocString
mov edx, dword [ebp - 0x10]
mov ebx, SysReAllocString
sar eax, 0x18
sub al, 0x80
mov byte [edx + edi], al
add edx, 1
mov eax, dword [ebp - 8]
adc eax, 0
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], eax
cmp eax, dword [ebp + 0x14]
jb 0x417981
ja case.default.0x417502
cmp edx, dword [ebp + 0x10]
jb 0x417981
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x18], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jne 0x417ac8
cmp dword [ebp + 0x14], 0
jb case.default.0x417502
mov ebx, dword [ebp + 0x10]
ja 0x417a8b
test ebx, ebx
je case.default.0x417502
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
lea eax, [eax + edx*2]
movzx ecx, byte [edx + eax + 2]
movzx eax, byte [edx + eax + 1]
shl cx, 8
or cx, ax
mov word [edi + edx*2], cx
add edx, 1
adc esi, 0
cmp esi, dword [ebp + 0x14]
jb 0x417a91
ja case.default.0x417502
cmp edx, ebx
jb 0x417a91
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
jb case.default.0x417502
ja 0x417ade
cmp dword [ebp + 0x10], 0
jbe case.default.0x417502
mov eax, dword [ebp - 0x18]
mov esi, SysReAllocString
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], edx
nop
mov eax, dword [ebp + 8]
lea ecx, [eax + edx*2]
movzx ebx, byte [edx + ecx + 2]
movzx eax, byte [edx + ecx + 1]
shl ebx, 8
or ebx, eax
movzx eax, byte [edx + ecx]
shl ebx, 8
or ebx, eax
mov eax, dword [ebp + 0x18]
shl ebx, 8
cmp eax, 1
jne 0x417b39
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv esi
mov esi, edx
mov dword [0x50e484], esi
shr esi, 0x10
sub esi, 0x8000
jmp 0x417b82
cmp eax, 2
jne 0x417b80
imul eax, dword [0x50e484], 0xbc8f
mov ecx, SysReAllocString
cdq
idiv esi
mov esi, edx
imul eax, esi, 0xbc8f
cdq
idiv ecx
mov eax, 0x18003
mov ecx, edx
mul esi
mov dword [0x50e484], ecx
sub esi, edx
shr ecx, 0x11
shr esi, 1
add esi, edx
shr esi, 0x10
add esi, 0xffff8000
add esi, ecx
jmp 0x417b82
xor esi, esi
mov eax, esi
cdq
mov dword [ebp + 0xc], eax
mov ecx, edx
mov eax, ebx
cdq
add dword [ebp + 0xc], eax
adc ecx, edx
test ecx, ecx
jg 0x417ba5
jl 0x417ba1
cmp dword [ebp + 0xc], 0x7fffffff
ja 0x417ba5
add ebx, esi
jmp 0x417baa
mov ebx, SysReAllocString
mov edx, dword [ebp - 0x10]
mov esi, SysReAllocString
mov eax, dword [ebp - 8]
sar ebx, 0x10
mov word [edi + edx*2], bx
add edx, 1
mov dword [ebp - 0x10], edx
adc eax, 0
mov dword [ebp - 8], eax
cmp eax, dword [ebp + 0x14]
jb 0x417af0
ja case.default.0x417502
cmp edx, dword [ebp + 0x10]
jb 0x417af0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jb case.default.0x417502
ja 0x417c05
cmp dword [ebp + 0x10], 0
jbe case.default.0x417502
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
nop dword [eax + eax]
mov eax, dword [ebp + 8]
lea ecx, [eax + esi*2]
movzx edx, byte [esi + ecx + 2]
movzx eax, byte [esi + ecx + 1]
shl edx, 8
or edx, eax
movzx eax, byte [esi + ecx]
shl edx, 8
or edx, eax
shl edx, 8
mov dword [edi + esi*4], edx
add esi, 1
adc ebx, 0
cmp ebx, dword [ebp + 0x14]
jb 0x417c10
ja case.default.0x417502
cmp esi, dword [ebp + 0x10]
jb 0x417c10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jb case.default.0x417502
ja 0x417c6f
cmp dword [ebp + 0x10], 0
jbe case.default.0x417502
movss xmm1, dword [0x4f4944]
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
nop dword [eax]
mov eax, dword [ebp + 8]
lea ecx, [eax + esi*2]
movzx edx, byte [esi + ecx + 2]
movzx eax, byte [esi + ecx + 1]
shl edx, 8
or edx, eax
movzx eax, byte [esi + ecx]
shl edx, 8
or edx, eax
shl edx, 8
sar edx, 8
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [edi + esi*4], xmm0
add esi, 1
adc ebx, 0
cmp ebx, dword [ebp + 0x14]
jb 0x417c80
ja case.default.0x417502
cmp esi, dword [ebp + 0x10]
jb 0x417c80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec edx
cmp edx, 4
ja case.default.0x417502
jmp dword [edx*4 + 0x41844c]
mov edx, dword [ebp + 0x18]
xorps xmm0, xmm0
test edx, edx
jne 0x417d37
mov ebx, dword [ebp + 0x14]
movlpd qword [ebp - 0x1c], xmm0
test ebx, ebx
jb case.default.0x417502
mov esi, dword [ebp + 0x10]
ja 0x417d09
test esi, esi
je case.default.0x417502
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
nop
mov eax, dword [ebp + 8]
mov al, byte [eax + ecx*4 + 3]
sub al, 0x80
mov byte [ecx + edi], al
add ecx, 1
adc edx, 0
cmp edx, ebx
jb 0x417d10
ja case.default.0x417502
cmp ecx, esi
jb 0x417d10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
movlpd qword [ebp - 0x14], xmm0
jb case.default.0x417502
ja 0x417d52
cmp dword [ebp + 0x10], 0
jbe case.default.0x417502
mov eax, dword [ebp - 0x10]
mov ebx, SysReAllocString
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x10], ecx
cmp edx, 1
jne 0x417d91
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ebx
mov esi, edx
mov dword [0x50e484], esi
shr esi, 8
sub esi, 0x800000
jmp 0x417dc9
cmp edx, 2
jne 0x417dc7
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ebx
mov ecx, edx
imul eax, ecx, 0xbc8f
shr ecx, 9
cdq
lea esi, [ecx - 0x800000]
idiv ebx
mov ecx, dword [ebp - 0x10]
mov dword [0x50e484], edx
shr edx, 9
add esi, edx
jmp 0x417dc9
xor esi, esi
mov eax, ecx
cdq
mov dword [ebp + 0xc], eax
mov ecx, edx
mov eax, esi
cdq
add dword [ebp + 0xc], eax
adc ecx, edx
test ecx, ecx
jg 0x417deb
jl 0x417de4
cmp dword [ebp + 0xc], ebx
ja 0x417deb
mov eax, dword [ebp - 0x10]
add eax, esi
jmp 0x417ded
mov eax, ebx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
sar eax, 0x18
sub al, 0x80
mov byte [ecx + edi], al
add ecx, 1
mov eax, dword [ebp - 0x18]
adc eax, 0
mov dword [ebp - 8], ecx
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp + 0x14]
jb 0x417d63
ja case.default.0x417502
cmp ecx, dword [ebp + 0x10]
jb 0x417d63
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x18]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
test edx, edx
jne 0x417e87
mov ebx, dword [ebp + 0x14]
test ebx, ebx
jb case.default.0x417502
mov esi, dword [ebp + 0x10]
ja 0x417e50
test esi, esi
je case.default.0x417502
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
nop word [eax + eax]
mov eax, dword [ebp + 8]
mov ax, word [eax + ecx*4 + 2]
mov word [edi + ecx*2], ax
add ecx, 1
adc edx, 0
cmp edx, ebx
jb 0x417e60
ja case.default.0x417502
cmp ecx, esi
jb 0x417e60
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
jb case.default.0x417502
ja 0x417e9d
cmp dword [ebp + 0x10], 0
jbe case.default.0x417502
mov eax, dword [ebp - 0x18]
mov ecx, SysReAllocString
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
nop
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + eax*4]
cmp edx, 1
jne 0x417edb
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ecx
mov esi, edx
mov dword [0x50e484], esi
shr esi, 0x10
sub esi, 0x8000
jmp 0x417f1f
cmp edx, 2
jne 0x417f1d
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ecx
mov esi, edx
imul eax, esi, 0xbc8f
cdq
idiv ecx
mov eax, 0x18003
mov ecx, edx
mul esi
mov dword [0x50e484], ecx
sub esi, edx
shr ecx, 0x11
shr esi, 1
add esi, edx
shr esi, 0x10
add esi, 0xffff8000
add esi, ecx
jmp 0x417f1f
xor esi, esi
mov eax, esi
cdq
mov dword [ebp + 0xc], eax
mov ecx, edx
mov eax, ebx
cdq
add dword [ebp + 0xc], eax
adc ecx, edx
test ecx, ecx
jg 0x417f42
jl 0x417f3e
cmp dword [ebp + 0xc], 0x7fffffff
ja 0x417f42
add ebx, esi
jmp 0x417f47
mov ebx, SysReAllocString
mov eax, dword [ebp - 0x18]
mov ecx, SysReAllocString
mov edx, dword [ebp - 0x10]
sar ebx, 0x10
mov word [edi + eax*2], bx
add eax, 1
mov dword [ebp - 0x18], eax
adc edx, 0
cmp edx, dword [ebp + 0x14]
mov dword [ebp - 0x10], edx
mov edx, dword [ebp + 0x18]
jb 0x417eb0
ja case.default.0x417502
cmp eax, dword [ebp + 0x10]
jb 0x417eb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jb case.default.0x417502
ja 0x417fa5
cmp dword [ebp + 0x10], 0
jbe case.default.0x417502
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
nop dword [eax + eax]
mov eax, dword [ebp + 8]
lea ecx, [edi + esi*2]
mov edx, dword [eax + esi*4]
mov eax, edx
shr eax, 8
mov byte [esi + ecx], al
mov eax, edx
shr eax, 0x10
shr edx, 0x18
mov byte [esi + ecx + 1], al
mov byte [esi + ecx + 2], dl
add esi, 1
adc ebx, 0
cmp ebx, dword [ebp + 0x14]
jb 0x417fb0
ja case.default.0x417502
cmp esi, dword [ebp + 0x10]
jb 0x417fb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0x14]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
test esi, esi
jb case.default.0x417502
mov edx, dword [ebp + 0x10]
ja 0x41800e
test edx, edx
je case.default.0x417502
mov ebx, dword [ebp + 8]
movsd xmm1, qword [0x4f4970]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
nop
movd xmm0, dword [ebx + eax*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + eax*4], xmm0
add eax, 1
adc ecx, 0
cmp ecx, esi
jb 0x418020
ja case.default.0x417502
cmp eax, edx
jb 0x418020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec edx
cmp edx, 3
ja case.default.0x417502
jmp dword [edx*4 + 0x418460]
mov eax, dword [ebp + 0x18]
xorps xmm1, xmm1
movss dword [ebp + 0xc], xmm1
xorps xmm3, xmm3
xorps xmm5, xmm5
test eax, eax
je 0x41808c
movss xmm1, dword [0x4f4964]
movss xmm5, dword [0x4f4b34]
movss dword [ebp + 0xc], xmm1
cmp dword [ebp + 0x14], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0xc], xmm0
jb case.default.0x417502
mov edx, dword [ebp + 0x10]
ja 0x4180ab
test edx, edx
je case.default.0x417502
mov ecx, dword [ebp - 8]
mov ebx, SysReAllocString
movss xmm6, dword [0x4f4a1c]
movsd xmm2, qword [0x4f4ac0]
movss xmm7, dword [0x4f4b38]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
mov edi, dword [ebp + 8]
movss xmm4, dword [edi + esi*4]
mov edi, dword [ebp - 0x10]
cmp eax, 1
jne 0x418118
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ebx
mov dword [0x50e484], edx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mov edx, dword [ebp + 0x10]
divsd xmm0, xmm2
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm1
subss xmm0, xmm5
mulss xmm2, xmm0
addss xmm2, xmm5
jmp 0x41818e
cmp eax, 2
jne 0x41818b
imul eax, dword [0x50e484], 0xbc8f
cdq
idiv ebx
mov ecx, edx
imul eax, ecx, 0xbc8f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
cdq
mov ecx, dword [ebp - 0x18]
idiv ebx
divsd xmm0, xmm2
mov dword [0x50e484], edx
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm3
subss xmm0, xmm5
mulss xmm2, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mov edx, dword [ebp + 0x10]
addss xmm2, xmm5
divsd xmm0, qword [0x4f4ac0]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [ebp + 0xc]
subss xmm0, xmm3
mulss xmm1, xmm0
addss xmm1, xmm3
addss xmm2, xmm1
jmp 0x41818e
movaps xmm2, xmm3
addss xmm2, xmm4
comiss xmm7, xmm2
jbe 0x41819c
movaps xmm0, xmm7
jmp 0x4181a3
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm1, dword [ebp + 0xc]
addss xmm0, xmm6
movsd xmm2, qword [0x4f4ac0]
mulss xmm0, dword [0x4f4adc]
cvttss2si eax, xmm0
mov byte [esi + edi], al
add esi, 1
mov eax, dword [ebp + 0x18]
adc ecx, 0
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp + 0x14]
jb 0x4180d1
ja case.default.0x417502
cmp esi, edx
jb 0x4180d1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0x18]
mov edx, dword [ebp + 8]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.00416860
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jb case.default.0x417502
mov eax, dword [ebp + 0x10]
ja 0x418227
test eax, eax
je case.default.0x417502
movss xmm3, dword [0x4f4a1c]
movss xmm2, dword [0x4f4b38]
movss xmm4, dword [0x4f4b28]
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
movss xmm1, dword [eax + esi*4]
comiss xmm2, xmm1
jbe 0x418257
movaps xmm0, xmm2
jmp 0x41825e
movaps xmm0, xmm3
minss xmm0, xmm1
mulss xmm0, xmm4
lea ecx, [edi + esi*2]
cvttss2si edx, xmm0
mov byte [esi + ecx], dl
mov eax, edx
sar eax, 8
sar edx, 0x10
mov byte [esi + ecx + 1], al
mov byte [esi + ecx + 2], dl
add esi, 1
adc ebx, 0
cmp ebx, dword [ebp + 0x14]
jb 0x418245
ja case.default.0x417502
cmp esi, dword [ebp + 0x10]
jb 0x418245
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x14]
xor ecx, ecx
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
test edx, edx
jb 0x418398
ja 0x4182c3
test esi, esi
je 0x418398
test edx, edx
jne 0x4182c3
cmp esi, 4
jb 0x418398
lea eax, [esi - 1]
xor ecx, ecx
lea eax, [ebx + eax*4]
cmp edi, eax
ja 0x4182dd
lea eax, [esi - 1]
lea eax, [edi + eax*4]
cmp eax, ebx
jae 0x418398
movaps xmm4, xmmword [0x4f4ee0]
mov eax, esi
movaps xmm5, xmmword [0x4f4de0]
lea esi, [edi + 8]
movaps xmm6, xmmword [0x4f4e40]
and eax, 0xfffffffc
mov dword [ebp + 0xc], esi
mov esi, ebx
sub esi, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x18], esi
mov esi, dword [ebp + 0x10]
nop word [eax + eax]
movsd xmm1, qword [ebx + ecx*4]
lea edi, [edi + 0x10]
mov edx, dword [ebp - 0x18]
movaps xmm0, xmm5
cvtps2pd xmm1, xmm1
mov dword [ebp + 0xc], 0
add ecx, 4
movaps xmm3, xmm1
cmpltpd xmm3, xmm4
minpd xmm0, xmm1
movsd xmm1, qword [edx + edi - 0x10]
movaps xmm2, xmm3
andnpd xmm2, xmm0
mov edx, dword [ebp + 0x14]
andps xmm3, xmm4
orps xmm2, xmm3
mulpd xmm2, xmm6
cvtps2pd xmm1, xmm1
cvttpd2dq xmm0, xmm2
movaps xmm3, xmm1
movq qword [edi - 0x18], xmm0
movaps xmm0, xmm5
cmpltpd xmm3, xmm4
minpd xmm0, xmm1
movaps xmm2, xmm3
andps xmm3, xmm4
andnpd xmm2, xmm0
orps xmm2, xmm3
mulpd xmm2, xmm6
cvttpd2dq xmm0, xmm2
movq qword [edi - 0x10], xmm0
cmp dword [ebp + 0xc], edx
jb 0x418310
ja 0x418395
cmp ecx, eax
jb 0x418310
mov edi, dword [ebp - 0x10]
xor eax, eax
cmp eax, edx
ja case.default.0x417502
jb 0x4183a4
cmp ecx, esi
jae case.default.0x417502
movsd xmm4, qword [0x4f4ac0]
lea edx, [edi + ecx*4]
movsd xmm2, qword [0x4f4b40]
sub ebx, edi
movsd xmm3, qword [0x4f4a50]
mov edi, dword [ebp + 0x14]
movss xmm1, dword [edx + ebx]
cvtps2pd xmm1, xmm1
comisd xmm2, xmm1
jbe 0x4183d7
movaps xmm0, xmm2
jmp 0x4183de
movaps xmm0, xmm3
minsd xmm0, xmm1
mulsd xmm0, xmm4
inc ecx
cvttsd2si eax, xmm0
mov dword [edx], eax
xor eax, eax
add edx, 4
cmp eax, edi
jb 0x4183c4
ja case.default.0x417502
cmp ecx, esi
jb 0x4183c4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret