Function at 0x4058c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
push ebx
push esi
push edi
mov dword [ebp - 0x48], 0x55c4
mov dword [ebp - 0x44], 0x29a5
mov dword [ebp - 0x60], 0x2536
mov dword [ebp - 0x5c], 0x37d3
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov edx, 0xae8
sub edx, eax
mov eax, 0xffffd957
sbb eax, ecx
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
add edx, ecx
adc eax, esi
xor edx, 0x55d0
mov dword [ebp - 0x70], edx
xor eax, 0x37a
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x78], 0x1a62
mov dword [ebp - 0x74], 0x1e4d
mov dword [ebp - 0x60], 0x4533
mov dword [ebp - 0x5c], 0x2ac9
mov dword [ebp - 0x48], 0x244d
mov dword [ebp - 0x44], 0x2af4
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
push esi
xor eax, 0xfffffef5
push ecx
xor edx, 0xfffff3bf
and eax, 0x614b
and edx, 0xc48
push eax
push edx
call fcn.004065b4
mov ecx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x74]
push esi
push ecx
push edx
push eax
call fcn.004065b4
mov ecx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x6c]
cmp ecx, eax
jne 0x40598d
cmp esi, edx
je 0x4063f9
mov dword [ebp - 0x28], 0xf47
mov dword [ebp - 0x2c], 0x57b
mov dword [ebp - 0x18], 0x741d
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
add edx, 0x6d67
and edx, eax
sub edx, ecx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x34], 0x7325
mov dword [ebp - 0x1c], 0x157e
mov dword [ebp - 0x28], 0x4021
mov dword [ebp - 0x2c], 0x6331
mov dword [ebp - 0x18], 0xf3b
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
xor ecx, edx
and ecx, eax
mov eax, 0x86186187
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
shr ecx, 4
xor ecx, edx
or ecx, eax
sub ecx, 0x7777
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x1c], 0x3054
mov dword [ebp - 0x28], 0x6b18
mov dword [ebp - 0x2c], 0x257d
mov dword [ebp - 0x18], 0x6927
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
or ecx, edx
xor ecx, 0x4a4a
add ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
xor ecx, eax
xor ecx, 0xa219
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], 0x240f8
mov dword [ebp - 0x28], 0x3d3e
mov dword [ebp - 0x18], 0x4758
mov ecx, dword [ebp - 0x18]
mov eax, 0xffff9734
sub eax, ecx
add eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
xor edx, edx
xor eax, 0x2c0a
div ecx
mov edx, 0x7196
sub edx, eax
imul edx, edx, 0x16e5
mov dword [ebp - 0x18], edx
mov eax, dword [str.D_X9y]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
movzx eax, word [eax + 0x14]
mov ecx, dword [ebp - 0x38]
lea edx, [ecx + eax + 0x18]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax + 6]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x64], 0x5710
mov dword [ebp - 0x34], 0x24d1
mov dword [ebp - 0x1c], 0x5d0e
mov dword [ebp - 0xc0], 0x2fb
mov dword [ebp - 0xbc], 0x3604
mov dword [ebp - 0xb8], 0x6e0d
mov dword [ebp - 0xac], 0x5d6e
mov dword [ebp - 0x44], 0x50a3
mov dword [ebp - 0x5c], 0x6b7d
mov dword [ebp - 0x74], 0x7c59
mov dword [ebp - 0x6c], 0x5ac6
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x64]
and edx, 0xa6c
sub edx, eax
sub edx, ecx
xor edx, 0x474a
mov eax, 0x3985a2c5
mul edx
shr edx, 0xf
sub edx, 0x730b
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
cmp edx, eax
jae 0x4063a7
mov ebx, dword [0x41205c]
mov edi, 1
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 8]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x20]
cmp edx, eax
jbe 0x405b82
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x34], 0x63ba
mov dword [ebp - 0x1c], 0x1d61
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x4c]
or edx, 0x4f24
imul edx, edx, 0x4ae9
xor edx, eax
sub edx, 0x2650
xor edx, 0x1bea411b
cmp ecx, edx
jb 0x406342
mov dword [ebp - 0x10], 0x432a
mov dword [ebp - 8], 0x3cae
mov dword [ebp - 4], 0x578b
mov dword [ebp - 0xc], 0x618e
mov dword [ebp - 0x20], 0x6b45
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x34], 0x77ba
mov dword [ebp - 0x64], 0xfbe
mov dword [ebp - 0x80], 0x1e6
mov dword [ebp - 0x84], 0x1ee2
mov dword [ebp - 0x68], 0x2f60
mov dword [ebp - 0xb0], 0x3efc
mov dword [ebp - 0xa8], 0x6d42
mov dword [ebp - 0xa4], 0x783c
mov dword [ebp - 0xb4], 0x21d6
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
sub eax, edx
mov edx, dword [ebp - 8]
and eax, ecx
mov ecx, dword [ebp - 0x10]
imul eax, edx
imul eax, eax, 0x53ae
and eax, ecx
xor eax, 0x4220
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
and eax, edx
mov edx, dword [ebp - 0x64]
xor eax, ecx
mov ecx, dword [ebp - 0x34]
or eax, edx
or eax, ecx
mov ecx, dword [ebp - 0x1c]
xor edx, edx
div ecx
mov edx, 0x2a78
sub edx, eax
add edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x20]
cmp eax, edx
ja 0x406342
mov ecx, 0x7b61
mov word [ebp - 0xc], cx
mov edx, 0x5ab3
mov word [ebp - 4], dx
mov eax, 3
mov word [ebp - 8], ax
mov ecx, 0x1993
mov word [ebp - 0x3c], cx
mov edx, 0x4dff
mov word [ebp - 0x24], dx
mov eax, 0x4781
mov word [ebp - 0x10], ax
movzx ecx, word [ebp - 0x10]
movzx edx, word [ebp - 0x24]
mov ax, word [ebp - 0x3c]
or cx, dx
add cx, ax
movzx eax, cx
movzx ecx, word [ebp - 8]
cdq
idiv ecx
movzx edx, word [ebp - 4]
movzx ecx, word [ebp - 0xc]
and eax, edx
sub eax, ecx
mov word [ebp - 8], ax
mov edx, 0x2eb6
mov word [ebp - 4], dx
mov eax, 5
mov word [ebp - 0xc], ax
movzx ecx, word [ebp - 0xc]
mov eax, 0x24b9
cdq
idiv ecx
movzx edx, word [ebp - 4]
mov ecx, 0x17a4
or ax, dx
movzx edx, word [ebp - 8]
and ax, cx
cmp dx, ax
jb 0x405dca
mov dword [ebp - 4], 0x6b74
mov dword [ebp - 0xc], 0x25dc
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
sub ecx, eax
or ecx, 0x7a42
add ecx, 0x333c
mov dword [ebp - 0x14], ecx
mov byte [ebp - 0xd], 0xed
mov byte [ebp - 0x21], 0xd9
mov byte [ebp - 0x39], 2
movzx ecx, byte [ebp - 0x39]
mov eax, 0x9e
cdq
idiv ecx
movzx edx, byte [ebp - 0x21]
movzx ecx, byte [ebp - 0xd]
sub al, dl
sub al, 0x57
add eax, ecx
mov byte [ebp - 0xd], al
mov dword [ebp - 8], 0x1ad1
mov dword [ebp - 4], 0x3b5e
mov dword [ebp - 0xc], 0x3c76
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x7c]
add edx, dword [ebp - 0x54]
mov eax, dword [ebp + 0xc]
push edx
push eax
call fcn.00406ad0
mov ecx, eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
imul eax, eax, 0x15ae
mov esi, dword [ebp - 8]
xor eax, edx
xor edx, edx
div esi
sub eax, 0x30e3
cmp ecx, eax
je 0x4062d5
jmp 0x405ff2
mov dword [ebp - 8], 0x1486
mov dword [ebp - 4], 0x7c2
mov dword [ebp - 0xc], 0x36c0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
imul edx, edx, 0x4c08
add edx, dword [ebp - 8]
or eax, 0x46a0
xor eax, 0x386a
sub eax, 0x22b7
xor eax, 0x1b8a
mov ecx, dword [eax - 0x55818483]
xor edx, 0x5fa
mov eax, 0xdce32f54
push ecx
sub eax, edx
mov ecx, dword [eax]
push ecx
call ebx
mov dword [ebp - 0x14], 0x7c4a
mov dword [ebp - 0x3c], 0x76c
mov dword [ebp - 0x24], 0x1aa0
mov dword [ebp - 0x10], 0x6fe
mov dword [ebp - 8], 0x358c
mov dword [ebp - 4], 0x28ea
mov dword [ebp - 0xc], edi
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
xor edx, edx
div ecx
mov ecx, eax
mov eax, 0x2f684bdb
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 4
xor ecx, 0x481c
mov edx, 0x845d27e0
sub edx, ecx
mov ecx, dword [ebp - 8]
mov eax, dword [edx]
mov edx, dword [ebp - 0x10]
and ecx, edx
and ecx, 0x4e08
xor ecx, 0x5fc623c
push eax
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x3c]
sub ecx, 0x41ee
and ecx, edx
imul ecx, ecx, 0x183e
push eax
mov eax, dword [ebp - 0x14]
xor ecx, eax
mov ecx, dword [ecx - 0x357b7199]
push ecx
call dword [0x4120c4]
mov eax, dword [0x98a78ecc]
inc eax
invalid
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x7c]
add edx, dword [ebp - 0x54]
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], 0x49bb
mov dword [ebp - 4], 0x4553
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
xor edx, edx
div ecx
mov edx, dword [ebp - 8]
lea ecx, [ebp - 0xa0]
and eax, edx
imul eax, eax, 0xc77
sub eax, 0x32b23b9
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
push eax
push ecx
push edx
call fcn.004065c0
mov dword [ebp - 0x10], 0x343d
mov dword [ebp - 8], 0x60c4
mov dword [ebp - 4], 0x7d43
mov dword [ebp - 0x14], 0x453c
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
sub eax, 0x1273
and eax, 0x34be
imul eax, eax, 0x2b38
mov esi, 0x3edf
sub esi, ecx
imul esi, edx
sub eax, 0x83175b0
push eax
mov eax, dword [ebp - 0x10]
or esi, eax
or esi, 0x54d7
xor esi, 0xe86afff3
lea esi, [ebp + esi - 0xa0]
call fcn.0040cf10
mov dword [ebp - 0x24], 0x5199
mov dword [ebp - 0x10], 0x3466
mov dword [ebp - 8], 0x422f
mov dword [ebp - 4], 0x1236
mov dword [ebp - 0x14], 0xeac
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
sub edx, ecx
mov ecx, dword [ebp - 0x24]
or edx, eax
or esi, 0x1dbb
or edx, 0x75e3
imul esi, esi, 0x9d1
imul edx, edx, 0x4669
or esi, 0x9d2
sub edx, 0x20fc8af7
xor esi, ecx
push edx
lea esi, [ebp + esi - 0x260ccfa]
call fcn.0040cf10
mov dword [ebp - 8], edi
mov dword [ebp - 4], 0x4d31
mov dword [ebp - 0x14], 0x6feb
mov dword [ebp - 0x24], 0x4d7c
mov dword [ebp - 0x10], 0x1f52
mov eax, dword [ebp - 0x14]
and eax, 0x19b0
add eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
xor edx, edx
div ecx
mov edx, 0x56d1
sub edx, eax
mov eax, dword [ebp - 0x30]
cmp eax, edx
jne 0x406248
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov edx, 0x473b
sub edx, ecx
mov ecx, dword [ebp - 0x8c]
and edx, eax
or edx, 0x5100
sub edx, 0x5568
cmp ecx, edx
je 0x406248
mov dword [ebp - 0x3c], 0x255d
mov dword [ebp - 0x24], 0x4976
mov dword [ebp - 0x10], 0x40af
mov dword [ebp - 8], 2
mov dword [ebp - 4], 0x76bf
mov dword [ebp - 0x30], 0x48eb
mov dword [ebp - 0x2c], 0x20da
mov dword [ebp - 0x18], 0x26d5
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
xor edx, edx
div ecx
mov edx, dword [ebp - 0x2c]
sub eax, edx
sub eax, 0xb31
xor eax, 0xffffface
push eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 4]
imul eax, ecx
mov ecx, dword [ebp - 8]
and eax, 0x7a16
xor edx, edx
div ecx
mov edx, dword [ebp - 0x8c]
add eax, 0x13f6
push eax
mov eax, dword [ebp - 0x10]
or eax, 0x4e30
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
push edx
mov edx, dword [ebp + 0xc]
xor eax, ecx
sub eax, 0xbd68
push eax
push edx
call fcn.00408bc0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], 0x2044
mov dword [ebp - 0x14], 0x5e2
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
xor eax, ecx
mov edx, 0x25a6
sub edx, eax
mov eax, dword [ebp - 0x30]
cmp eax, edx
je 0x4063c3
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], 0x2d1b
mov dword [ebp - 4], 0x584a
mov dword [ebp - 0x14], 0x2f01
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
and ecx, edx
mov eax, 0xba2e8ba3
mul ecx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x90]
shr edx, 4
xor edx, eax
or edx, 0x6a74
xor edx, 0x6f76
cmp ecx, edx
je 0x4062d5
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x94]
add ecx, dword [ebp - 0x30]
push edx
mov edx, dword [ebp + 8]
add eax, 0x1c
push eax
push ecx
push edx
call fcn.004065c0
mov eax, dword [ebp - 0x90]
mov esi, dword [ebp - 0x94]
add esi, dword [ebp - 0x30]
push eax
call fcn.0040cf10
mov ecx, dword [ebp - 0x90]
mov esi, dword [ebp - 0x94]
add esi, dword [ebp - 0x30]
push ecx
call fcn.0040cf10
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa8]
or edx, eax
mov eax, dword [ebp - 0xb0]
sub edx, ecx
mov ecx, dword [ebp - 0x20]
xor edx, eax
imul edx, edx, 0xfffffed1
and edx, 0x7e1f
lea edx, [edx + ecx - 0x5ff]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
and eax, ecx
mov ecx, dword [ebp - 0x64]
xor eax, edx
mov edx, dword [ebp - 0x34]
or eax, ecx
mov ecx, dword [ebp - 0x1c]
or eax, edx
xor edx, edx
div ecx
mov edx, 0x2a78
sub edx, eax
add edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x20]
cmp eax, edx
jbe 0x405c59
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xc0]
mov edx, 0x7281
sub edx, ecx
sub edx, eax
add edx, dword [ebp - 0xac]
mov eax, 0x6e05328f
add edx, dword [ebp - 0xbc]
mul edx
shr edx, 0xe
add edx, dword [ebp - 0x38]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x74]
and eax, ecx
add eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
and eax, edx
and eax, 0x6000
xor eax, 0x4001
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
cmp eax, ecx
jb 0x405b51
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp + 0x14]
mov dword [eax], edx
mov eax, dword [ebp - 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov dword [ebp + 0x10], 0x15fa
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], 0x6da7
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub eax, 0x5ce8
shr eax, 1
xor edx, edx
div ecx
mov edx, dword [ebp + 0x10]
imul eax, edx
sub eax, 0xb7f7c6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov dword [ebp - 0x44], 0x5a2
mov dword [ebp + 0x14], 0x1679
mov dword [ebp + 0x10], 0x7342
mov dword [ebp + 8], 0x453d
mov dword [ebp + 0xc], 0x21b7
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
or ecx, 0x2a89
sub ecx, 0x4207
xor ecx, edx
mov edx, dword [ebp + 0x10]
xor ecx, 0x1344887a
mov eax, dword [ecx]
mov ecx, dword [0x5bc122eb]
push eax
mov eax, dword [ebp + 0x14]
or edx, eax
and edx, 0x12a
push ecx
mov ecx, dword [ebp - 0x44]
or edx, 0x4011
imul edx, ecx
imul edx, edx, 0x4023
mov eax, 0xfa6d70b1
sub eax, edx
mov ecx, dword [eax]
push ecx
call dword [0x412014]
sbb bh, dl
xchg esi, eax
push edx
wait
in al, 0x9b
push es
hlt