Function at 0x440290
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x60
mov esi, dword [ecx + 0xc]
mov eax, esi
inc eax
jne 0x4402b5
push 1
call fcn.005fa440
add esp, 4
mov esi, eax
jmp 0x4403c5
mov dword [esp + 8], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x24], esi
mov esi, ecx
mov dword [esp + 0x34], esi
lea ebx, [edx + 1]
mov dword [esp + 0x28], edx
mov ecx, ebx
mov edi, ebx
shr ecx, 3
and edi, 0xfffffff8
sub edi, ecx
cmp edx, 8
cmovb edi, edx
mov ecx, edi
shr ecx, 1
cmp eax, ecx
jbe 0x440359
inc edi
cmp eax, edi
cmova edi, eax
cmp edi, 8
mov esi, edi
jae 0x4403cf
xor eax, eax
cmp esi, 4
setae al
lea edx, [eax*4 + 4]
mov esi, edx
lea edi, [edx + 0x10]
shl esi, 4
mov ebx, esi
add ebx, edi
jb 0x4402a4
cmp ebx, 0x7ffffff1
jae 0x4402a4
test ebx, ebx
je 0x440c67
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 0x10
push ebx
mov dword [esp + 0x20], edx
call fcn.004ed010
mov edx, dword [esp + 0x20]
add esp, 8
test eax, eax
jne 0x440c6c
push ebx
push 0x10
push 1
call fcn.005fa490
add esp, 0xc
mov esi, eax
jmp 0x4403c5
mov ecx, ebx
mov dword [esp + 0x18], edi
mov edi, dword [esi]
xor eax, eax
shr ecx, 4
test bl, 0xf
setne al
add eax, ecx
je 0x440396
movdqa xmm0, xmmword [0x6b2520]
mov ecx, edi
nop word [eax + eax]
pxor xmm1, xmm1
dec eax
pcmpgtb xmm1, xmmword [ecx]
por xmm1, xmm0
movdqa xmmword [ecx], xmm1
lea ecx, [ecx + 0x10]
jne 0x440380
cmp ebx, 0x10
jae 0x440411
lea eax, [edi + 0x10]
push ebx
push edi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
test ebx, ebx
mov ebx, dword [esp + 0x28]
jne 0x440429
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov esi, 0x80000001
sub ecx, dword [esp + 0x24]
mov dword [eax + 8], ecx
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp esi, 0x20000000
jae 0x440c3f
shl esi, 3
mov edx, 1
cmp esi, 0xe
jb 0x440307
mov ecx, 0x24924925
mov eax, esi
mul ecx
sub esi, edx
shr esi, 1
add esi, edx
mov edx, 0xffffffff
shr esi, 2
dec esi
bsr ecx, esi
not ecx
shr edx, cl
inc edx
jmp 0x440c56
movq xmm0, qword [edi]
movq xmm1, qword [edi + 8]
movq qword [edi + ebx + 8], xmm1
movq qword [edi + ebx], xmm0
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 8]
mov dword [esp + 0x20], edi
movdqu xmm1, xmmword [eax]
xor eax, eax
pshufd xmm0, xmm1, 0x44
pshufd xmm2, xmm1, 0xee
pxor xmm0, xmmword [str.arenegyluespemossetybdetmodnarod]
pxor xmm2, xmmword [0x6b2540]
movdqa xmmword [esp + 0x40], xmm0
jmp 0x440482
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x20]
lea ecx, [eax - 0x10]
and ecx, ebx
shr edx, 0x19
mov byte [edi + eax], dl
mov byte [ecx + edi + 0x10], dl
cmp eax, ebx
lea eax, [eax + 1]
je 0x4403b1
cmp byte [edi + eax], 0x80
jne 0x440477
mov dword [esp + 0x30], eax
shl eax, 4
sub edi, eax
lea eax, [edi - 0x10]
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], eax
nop dword [eax]
mov eax, dword [esp + 0x38]
movaps xmm4, xmmword [esp + 0x40]
xor edx, edx
mov esi, 0
movdqa xmm1, xmm2
mov ebx, dword [eax - 0xc]
mov eax, dword [eax - 8]
mov ecx, eax
and ecx, 0xfffffff8
je 0x4405c4
movdqa xmm4, xmmword [esp + 0x40]
xor esi, esi
movdqa xmm1, xmm2
mov dword [esp + 4], eax
nop word cs:[eax + eax]
nop
mov edi, dword [ebx + esi]
mov edx, dword [ebx + esi + 4]
movd eax, xmm1
pshufd xmm5, xmm1, 0x55
movdqa xmm3, xmm1
add esi, 8
psrlq xmm3, 0x33
xor eax, edi
movd xmm6, eax
movd eax, xmm5
xor eax, edx
movd xmm5, eax
punpcklqdq xmm5, xmm6
shufps xmm5, xmm1, 0xe2
psllq xmm1, 0xd
paddq xmm4, xmm5
movdqa xmm7, xmm5
psllq xmm5, 0x10
pshufd xmm6, xmm4, 0xff
psrlq xmm7, 0x30
movsd xmm1, xmm5
movdqa xmm5, xmm4
movd eax, xmm6
movsd xmm3, xmm7
movd xmm6, eax
orpd xmm1, xmm3
shufps xmm5, xmm6, 0x4e
xorpd xmm1, xmm4
shufps xmm5, xmm4, 0x42
movapd xmm4, xmm1
movapd xmm7, xmm1
paddq xmm5, xmm1
psrlq xmm4, 0x2b
psrlq xmm7, 0x2f
pshufd xmm3, xmm5, 0x55
movsd xmm7, xmm4
movdqa xmm4, xmm1
psllq xmm1, 0x11
movd eax, xmm3
psllq xmm4, 0x15
xor eax, edx
movd edx, xmm5
movsd xmm1, xmm4
movdqa xmm4, xmm5
xor edx, edi
movd xmm6, eax
orpd xmm1, xmm7
cmp esi, ecx
movd xmm3, edx
xorpd xmm1, xmm5
punpcklqdq xmm6, xmm3
shufps xmm4, xmm6, 0x2b
jb 0x4404e0
dec ecx
mov eax, dword [esp + 4]
xor edx, edx
and ecx, 0xfffffff8
add ecx, 8
mov esi, ecx
mov edi, eax
mov dword [esp + 4], esi
and edi, 7
cmp edi, 3
jbe 0x4405f0
mov esi, dword [ebx + esi]
mov dword [esp + 0x10], 0
mov edx, 4
mov ecx, edx
or ecx, 1
cmp ecx, edi
jb 0x440603
jmp 0x44064a
xor esi, esi
mov dword [esp + 0x10], 0
mov ecx, edx
or ecx, 1
cmp ecx, edi
jae 0x44064a
mov ecx, dword [esp + 4]
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
xor esi, esi
add ecx, edx
movzx edx, word [ebx + ecx]
mov ecx, dword [esp + 0xc]
lea ecx, [ecx*8]
shld esi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, eax
mov eax, 0
cmovne esi, edx
cmovne edx, eax
mov eax, ecx
or dword [esp + 0x10], esi
mov esi, dword [esp + 8]
or esi, edx
mov edx, dword [esp + 0xc]
or edx, 2
movd ecx, xmm4
cmp edx, edi
pshufd xmm7, xmm4, 0x55
pshufd xmm6, xmm4, 0xff
pshufd xmm5, xmm4, 0xee
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
jae 0x4406a0
mov esi, dword [esp + 4]
mov ecx, edx
shl ecx, 3
add esi, edx
movzx edx, byte [ebx + esi]
xor esi, esi
mov ebx, dword [esp + 0x10]
shld esi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
inc eax
or dword [esp + 8], edx
or ebx, esi
mov dword [esp + 4], eax
jmp 0x4406b1
inc eax
test edi, edi
mov dword [esp + 4], eax
je 0x4407d2
mov ebx, dword [esp + 0x10]
lea ecx, [edi*8]
mov esi, 0xff
xor eax, eax
mov edx, 0xff
shld eax, edx, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
or esi, dword [esp + 8]
or eax, ebx
cmp edi, 7
jne 0x4407c0
pshufd xmm3, xmm1, 0x55
movd ecx, xmm1
movdqa xmm7, xmm1
movd edx, xmm3
xor ecx, esi
psrlq xmm7, 0x33
xor edx, eax
movd xmm3, ecx
movd xmm5, edx
punpcklqdq xmm5, xmm3
shufps xmm5, xmm1, 0xe2
psllq xmm1, 0xd
paddq xmm4, xmm5
pshufd xmm3, xmm4, 0xff
movd ecx, xmm3
movdqa xmm3, xmm5
psllq xmm5, 0x10
psrlq xmm3, 0x30
movsd xmm1, xmm5
movd xmm6, ecx
movdqa xmm5, xmm4
movsd xmm7, xmm3
shufps xmm5, xmm6, 0x4e
orpd xmm1, xmm7
shufps xmm5, xmm4, 0x42
xorpd xmm1, xmm4
paddq xmm5, xmm1
movdqa xmm3, xmm1
movdqa xmm4, xmm1
movdqa xmm6, xmm1
psllq xmm1, 0x11
psllq xmm6, 0x15
pshufd xmm0, xmm5, 0xee
psrlq xmm3, 0x2b
psrlq xmm4, 0x2f
movd edi, xmm5
movd dword [esp + 0x14], xmm0
pshufd xmm0, xmm5, 0x55
movsd xmm4, xmm3
movsd xmm1, xmm6
xor edi, esi
xor esi, esi
orpd xmm1, xmm4
movd ecx, xmm0
pshufd xmm4, xmm5, 0xff
xor ecx, eax
xorpd xmm1, xmm5
xor eax, eax
movd dword [esp + 0xc], xmm4
mov dword [esp + 8], ecx
jmp 0x4407f0
movd dword [esp + 0x14], xmm7
movd dword [esp + 8], xmm6
movd edi, xmm5
jmp 0x4407f0
xor eax, eax
movd dword [esp + 0x14], xmm7
movd dword [esp + 8], xmm6
movd edi, xmm5
mov esi, 0xff
nop dword [eax]
mov edx, dword [esp + 4]
pshufd xmm3, xmm1, 0x55
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x14]
movd ecx, xmm3
pshufd xmm3, xmm1, 0xff
shl edx, 0x18
or edx, eax
mov dword [esp + 4], edx
xor ecx, edx
movd edx, xmm1
pshufd xmm1, xmm1, 0xee
xor edx, esi
movd esi, xmm1
add edi, esi
mov eax, esi
mov dword [esp + 0x10], edi
movd edi, xmm3
adc dword [esp + 8], edi
shld eax, edi, 0xd
shld edi, esi, 0xd
mov esi, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
add eax, edx
adc ebx, ecx
shld esi, ecx, 0x10
shrd edx, ecx, 0x10
xor esi, eax
xor edx, ebx
mov ecx, esi
add ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
mov ecx, edx
adc ecx, dword [esp + 0x10]
xor edi, dword [esp + 8]
mov dword [esp + 0x14], ecx
mov ecx, esi
shrd esi, edx, 0xb
movd xmm6, edi
shld ecx, edx, 0x15
mov edx, dword [esp + 0x3c]
movd xmm1, esi
movd xmm7, ecx
punpckldq xmm7, xmm1
movd xmm1, dword [esp + 4]
xor edx, dword [esp + 0x10]
add eax, edx
movd xmm0, edx
adc ebx, edi
punpckldq xmm0, xmm6
movd xmm4, eax
movd xmm3, ebx
movdqa xmm5, xmm0
mov ebx, dword [esp + 0x28]
punpckldq xmm4, xmm3
movdqa xmm3, xmm0
psrlq xmm5, 0x2f
psllq xmm0, 0x11
punpcklqdq xmm3, xmm4
punpcklqdq xmm4, xmmword [0x6b2550]
movdqa xmm6, xmm3
psllq xmm3, 0x20
psrlq xmm6, 0x20
shufps xmm0, xmm3, 0xe4
movd xmm3, dword [esp + 0xc]
shufps xmm5, xmm6, 0xe4
orps xmm0, xmm5
movd xmm5, dword [esp + 0x1c]
pxor xmm4, xmm0
movdqa xmm0, xmm4
psrlq xmm0, 0x33
punpckldq xmm5, xmm1
movd xmm1, dword [esp + 0x14]
punpcklqdq xmm5, xmm7
punpckldq xmm3, xmm1
pshufd xmm3, xmm3, 0x44
pxor xmm3, xmm5
movdqa xmm5, xmm4
psllq xmm4, 0xd
movdqa xmm1, xmm3
paddq xmm5, xmm3
psllq xmm3, 0x10
psrlq xmm1, 0x30
movsd xmm3, xmm4
pshufd xmm4, xmm5, 0x1e
movsd xmm1, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm5
movapd xmm0, xmm3
movapd xmm1, xmm3
paddq xmm4, xmm3
psrlq xmm0, 0x2f
psrlq xmm1, 0x2b
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x15
psllq xmm0, 0x11
movsd xmm3, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm4
pshufd xmm4, xmm4, 0x1e
movapd xmm0, xmm3
movapd xmm1, xmm3
paddq xmm4, xmm3
psrlq xmm0, 0x33
psrlq xmm1, 0x30
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x10
psllq xmm0, 0xd
movsd xmm3, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm4
pshufd xmm4, xmm4, 0x1e
movapd xmm0, xmm3
movapd xmm1, xmm3
paddq xmm4, xmm3
psrlq xmm0, 0x2f
psrlq xmm1, 0x2b
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x15
psllq xmm0, 0x11
movsd xmm3, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm4
pshufd xmm4, xmm4, 0x1e
movapd xmm0, xmm3
movapd xmm1, xmm3
paddq xmm4, xmm3
psrlq xmm0, 0x33
psrlq xmm1, 0x30
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x10
psllq xmm0, 0xd
movsd xmm3, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm4
movapd xmm0, xmm3
movapd xmm1, xmm3
pshufd xmm5, xmm3, 0x44
psrlq xmm0, 0x2f
psrlq xmm1, 0x2b
paddq xmm5, xmm4
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x15
pshufd xmm4, xmm5, 0xee
psllq xmm0, 0x11
movd eax, xmm4
movsd xmm3, xmm0
orpd xmm3, xmm1
pshufd xmm0, xmm3, 0xee
pxor xmm0, xmm3
pshufd xmm3, xmm5, 0xff
movd ecx, xmm3
xor ecx, eax
movd eax, xmm0
xor eax, ecx
mov ecx, ebx
and ecx, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov esi, ecx
movdqu xmm0, xmmword [eax + ecx]
pmovmskb edx, xmm0
test edx, edx
jne 0x440ac4
mov edi, 0x10
mov esi, ecx
nop word cs:[eax + eax]
add esi, edi
add edi, 0x10
and esi, ebx
movdqu xmm0, xmmword [eax + esi]
pmovmskb edx, xmm0
test edx, edx
je 0x440ab0
tzcnt edx, edx
add edx, esi
and edx, ebx
cmp byte [eax + edx], 0
js 0x440ade
movdqa xmm0, xmmword [eax]
pmovmskb edx, xmm0
tzcnt edx, edx
mov eax, dword [esp + 0x30]
mov edi, edx
sub edi, ecx
mov esi, eax
sub esi, ecx
xor edi, esi
and edi, ebx
cmp edi, 0x10
jb 0x440460
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 4]
lea esi, [edx - 0x10]
and esi, ebx
movzx ecx, byte [edi + edx]
shr eax, 0x19
mov byte [edi + edx], al
shl edx, 4
mov byte [esi + edi + 0x10], al
neg edx
lea eax, [edi + edx - 0x10]
cmp cl, 0xff
je 0x440c10
mov esi, dword [esp + 0x2c]
movzx edx, byte [eax]
movzx ecx, byte [esi]
mov byte [esi], dl
mov byte [eax], cl
movzx ecx, byte [esi + 1]
movzx edx, byte [eax + 1]
mov byte [esi + 1], dl
mov byte [eax + 1], cl
movzx ecx, byte [esi + 2]
movzx edx, byte [eax + 2]
mov byte [esi + 2], dl
mov byte [eax + 2], cl
movzx ecx, byte [esi + 3]
movzx edx, byte [eax + 3]
mov byte [esi + 3], dl
mov byte [eax + 3], cl
movzx ecx, byte [esi + 4]
movzx edx, byte [eax + 4]
mov byte [esi + 4], dl
mov byte [eax + 4], cl
movzx ecx, byte [esi + 5]
movzx edx, byte [eax + 5]
mov byte [esi + 5], dl
mov byte [eax + 5], cl
movzx ecx, byte [esi + 6]
movzx edx, byte [eax + 6]
mov byte [esi + 6], dl
mov byte [eax + 6], cl
movzx ecx, byte [esi + 7]
movzx edx, byte [eax + 7]
mov byte [esi + 7], dl
mov byte [eax + 7], cl
movzx ecx, byte [esi + 8]
movzx edx, byte [eax + 8]
mov byte [esi + 8], dl
mov byte [eax + 8], cl
movzx ecx, byte [esi + 9]
movzx edx, byte [eax + 9]
mov byte [esi + 9], dl
mov byte [eax + 9], cl
movzx ecx, byte [esi + 0xa]
movzx edx, byte [eax + 0xa]
mov byte [esi + 0xa], dl
mov byte [eax + 0xa], cl
movzx ecx, byte [esi + 0xb]
movzx edx, byte [eax + 0xb]
mov byte [esi + 0xb], dl
mov byte [eax + 0xb], cl
movzx ecx, byte [esi + 0xc]
movzx edx, byte [eax + 0xc]
mov byte [esi + 0xc], dl
mov byte [eax + 0xc], cl
movzx ecx, byte [esi + 0xd]
movzx edx, byte [eax + 0xd]
mov byte [esi + 0xd], dl
mov byte [eax + 0xd], cl
movzx ecx, byte [esi + 0xe]
movzx edx, byte [eax + 0xe]
mov byte [esi + 0xe], dl
mov byte [eax + 0xe], cl
movzx ecx, byte [esi + 0xf]
movzx edx, byte [eax + 0xf]
mov byte [esi + 0xf], dl
mov byte [eax + 0xf], cl
jmp 0x4404a0
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
lea ecx, [edx - 0x10]
mov byte [edi + edx], 0xff
and ecx, ebx
mov byte [ecx + edi + 0x10], 0xff
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
mov eax, edx
jmp 0x440477
push 1
call fcn.005fa440
add esp, 4
mov esi, eax
cmp eax, 0x80000001
jne 0x4403c5
cmp edx, 0xfffffff
ja 0x4402a4
jmp 0x440307
mov eax, 0x10
mov ebx, edi
mov edi, edx
lea ecx, [edx - 1]
and edx, 0xfffffff8
shr edi, 3
mov dword [esp + 4], ecx
sub edx, edi
cmp ecx, 8
cmovb edx, ecx
add eax, esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
push ebx
push 0xff
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x24], 0
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
je 0x440dff
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x1c]
xor ebx, ebx
mov ecx, dword [eax]
movdqa xmm0, xmmword [esi]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 4]
pmovmskb edx, xmm0
not edx
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x38], eax
lea eax, [esi - 0x10]
mov dword [esp + 0x2c], eax
jmp 0x440d43
mov eax, dword [esp + 0x20]
lea ecx, [edx - 0x10]
and ecx, dword [esp + 4]
shr eax, 0x19
mov byte [edi + edx], al
mov byte [ecx + edi + 0x10], al
mov ecx, dword [esp + 0x10]
shl edx, 4
lea eax, [ecx - 1]
and eax, ecx
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0xc]
movq xmm1, qword [ecx - 8]
movq xmm0, qword [ecx - 0x10]
mov ecx, edi
sub ecx, edx
neg edx
movq qword [ecx - 8], xmm1
mov ecx, dword [esp + 8]
movq qword [edi + edx - 0x10], xmm0
mov edx, eax
dec ecx
test ecx, ecx
je 0x440dff
test dx, dx
mov dword [esp + 8], ecx
jne 0x440d69
nop dword [eax]
movdqa xmm0, xmmword [esi + 0x10]
add esi, 0x10
add ebx, 0x10
pmovmskb edx, xmm0
cmp edx, 0xffff
je 0x440d50
not edx
mov eax, dword [esp + 0x2c]
tzcnt ecx, edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x40]
add ecx, ebx
shl ecx, 4
mov dword [esp + 0xc], ecx
sub eax, ecx
mov ecx, dword [esp + 0x3c]
push eax
push dword [esp + 0x34]
push dword [esp + 0x40]
call fcn.0042ef80
add esp, 0xc
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], eax
and ecx, eax
movdqu xmm0, xmmword [edi + ecx]
pmovmskb edx, xmm0
test edx, edx
jne 0x440dd8
mov eax, edi
mov edi, 0x10
nop dword [eax + eax]
add ecx, edi
add edi, 0x10
and ecx, dword [esp + 4]
movdqu xmm0, xmmword [eax + ecx]
pmovmskb edx, xmm0
test edx, edx
je 0x440dc0
mov edi, eax
mov eax, dword [esp + 4]
tzcnt edx, edx
add edx, ecx
and edx, eax
cmp byte [edi + edx], 0
js 0x440cf0
movdqa xmm0, xmmword [edi]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x440cf0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 4]
sub ecx, dword [esp + 0x24]
mov dword [eax], edx
mov dword [eax + 4], esi
mov esi, 0x80000001
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4403c5
mov eax, ecx
shl eax, 4
add ecx, eax
add ecx, 0x21
je 0x4403c5
mov edx, dword [esp + 0x1c]
sub edx, eax
add edx, 0xfffffff0
push 0x10
push ecx
push edx
call fcn.004ed020
add esp, 0xc
jmp 0x4403c5