Function at 0x463d8c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf2552
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov edx, dword [ebp + 0x10]
movsx eax, byte [edx + 0x15]
mov dword [ebp - 0x20], ecx
test eax, eax
je 0x463eb7
push 0xd27f00
lea ecx, [ebp - 0x64]
call fcn.00463250
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
call 0xd17209
mov dword [ebp - 4], 1
mov dword [ebp - 0x8c], 0xe442a8
lea esi, [ebp - 0x80]
xor eax, eax
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x7c], al
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x30], esi
test ebx, ebx
lea edi, [ebp - 0x64]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
jae 0x463e2b
call 0xd49dad
mov ebx, dword [ebp - 0x50]
lea eax, [ebp - 0x80]
lea edx, [ebp - 0x64]
cmp ebx, 0xffffffff
jbe 0x463e3b
mov ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
cmp eax, edx
je 0x464354
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x463e56
call 0xd49d6e
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x68]
cmp esi, ebx
jb 0x46424c
test ebx, ebx
je 0x46422d
test ebx, ebx
ja 0x4641ca
mov dword [ebp - 4], 0
push 0xe4a780
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x8c]
mov dword [eax], 0xe442cc
push edx
call 0xd17486
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp eax, 0x10
jae 0x4641bc
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x4c], 0xf
xor eax, eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x60], al
mov eax, dword [ebp + 0xc]
mov ebx, edx
test eax, eax
je 0x46486b
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x463ed3
call 0xd171f0
jmp 0x463f0b
mov eax, dword [edx + 8]
movsx ecx, byte [eax + 0x15]
test ecx, ecx
je 0x463ef2
mov ecx, dword [edx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
je 0x46443b
mov dword [ebp + 0x10], ecx
jmp 0x463f0b
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
jne 0x463f08
mov eax, dword [eax]
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x463efc
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
movsx edx, byte [eax + 0x15]
mov edi, ebx
test edx, edx
je 0x463f1c
mov esi, dword [ebx + 8]
jmp 0x463f31
mov edx, dword [ebx + 8]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x463f2b
mov esi, eax
jmp 0x463f31
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + 8]
cmp edi, ebx
je 0x46478b
mov dword [eax + 4], edi
mov eax, dword [ebx]
mov dword [edi], eax
cmp edi, dword [ebx + 8]
jne 0x463f49
mov ecx, edi
jmp 0x463f66
mov ecx, dword [edi + 4]
movsx eax, byte [esi + 0x15]
test eax, eax
je 0x464783
mov dword [ecx], esi
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov edx, dword [ebx + 8]
mov dword [edx + 4], edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 4]
cmp ebx, dword [eax + 4]
je 0x46477b
mov eax, dword [ebx + 4]
cmp ebx, dword [eax]
je 0x463f84
mov dword [eax + 8], edi
jmp 0x463f86
mov dword [eax], edi
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
movzx eax, byte [edi + 0x14]
movzx edx, byte [ebx + 0x14]
mov byte [edi + 0x14], dl
mov byte [ebx + 0x14], al
movsx eax, byte [ebx + 0x14]
cmp eax, 1
je 0x464462
push ebx
call 0xd15a81
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 8]
test eax, eax
je 0x463fbe
add eax, 0xffffffff
mov dword [edx + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp - 0x94]
test edx, edx
ja 0x4640d7
mov edx, dword [ebp - 0x98]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jae 0x4640c3
mov dword [edx + 0x18], 0xf
mov eax, dword [ebp - 0x98]
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0x98]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x464068
mov eax, dword [eax + 4]
jmp 0x46406b
add eax, 4
mov ecx, dword [ebp - 0xa0]
mov byte [eax], 0
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x9c]
mov dword [edx + 4], eax
mov ebx, dword [ebp - 0x98]
mov dword [ebx + 0x18], ecx
mov edi, dword [ebp - 0x98]
mov esi, dword [ebp - 0x94]
mov dword [edi + 0x14], esi
mov edx, dword [ebp - 0x98]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x4640ae
mov edx, dword [edx + 4]
jmp 0x4640b1
add edx, 4
mov eax, dword [ebp - 0x94]
mov byte [edx + eax], 0
mov ebx, dword [ebp - 0x40]
jmp 0x463e69
push dword [edx + 4]
call 0xd15a81
pop ecx
mov edx, dword [ebp - 0x98]
jmp 0x464041
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x18]
cmp eax, 0x10
jb 0x4640ea
mov ecx, dword [ecx + 4]
jmp 0x4640ed
add ecx, 4
mov ebx, dword [ebp - 0xa0]
movzx eax, byte [ebp - 0xb4]
mov byte [ebp - 0xb8], al
push edx
add ebx, 1
push ecx
push ebx
push dword [ebp - 0x9c]
call 0xd174d0
add esp, 0x10
jmp 0x46402f
push dword [ebp - 0x60]
call 0xd15a81
pop ecx
jmp 0x463ea5
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x18]
cmp ecx, 0x10
jb 0x4641da
mov ebx, dword [ebx + 4]
jmp 0x4641dd
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x4641ed
mov edx, dword [edx + 4]
jmp 0x4641f0
add edx, 4
add edx, dword [ebp - 0x28]
push dword [ebp - 0x3c]
movzx eax, byte [ebp - 0x44]
mov byte [ebp - 0x48], al
push edx
push ecx
push ebx
call 0xd174d0
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x464221
mov eax, dword [eax + 4]
jmp 0x464224
add eax, 4
mov byte [eax + ecx], 0
jmp 0x463e71
mov dword [ebp - 0x6c], 0
cmp esi, 0x10
jb 0x46423e
mov eax, dword [ebp - 0x7c]
jmp 0x464241
lea eax, [ebp - 0x7c]
mov byte [eax], 0
mov ebx, dword [ebp - 0x40]
jmp 0x463e69
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0xac], ebx
mov ecx, ebx
lea eax, [ebp - 0x80]
or ecx, 0xf
cmp ecx, 0xfffffffe
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xa0], ecx
jbe 0x464288
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xa0], ebx
jmp 0x46429f
mov ebx, ecx
mov ecx, esi
shr ecx, 1
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
cmp ecx, edx
ja 0x464331
mov dword [ebp - 0x9c], 0
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0xb0]
add eax, 1
mov dword [ebp - 0xb0], eax
jne 0x4642cb
xor eax, eax
mov dword [ebp - 0xb0], eax
jmp 0x464312
mov ecx, eax
xor edx, edx
mov eax, 0xffffffff
div ecx
cmp eax, 1
jae 0x464312
mov dword [ebp - 0xbc], 0
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0xcc]
call 0xd1721a
mov dword [ebp - 0xcc], 0xe40cb4
lea eax, [ebp - 0xcc]
push 0xe4a720
push eax
call 0xd17486
mov eax, dword [ebp - 0xb0]
push eax
call 0xd15a17
pop ecx
mov dword [ebp - 0x9c], eax
mov dword [ebp - 4], 1
jmp 0x464021
mov eax, ecx
neg eax
add eax, 0xfffffffe
cmp esi, eax
ja 0x46429f
lea eax, [esi + ecx]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xa0], eax
jmp 0x46429f
mov edx, dword [ebp - 0x6c]
cmp edx, ebx
jae 0x464363
call 0xd49dad
mov edx, dword [ebp - 0x6c]
mov eax, edx
sub eax, ebx
cmp eax, 0xffffffff
mov esi, eax
jb 0x464373
mov esi, 0xffffffff
test esi, esi
ja 0x4643e4
test edx, edx
jae 0x464383
call 0xd49dad
mov edx, dword [ebp - 0x6c]
test edx, edx
mov ebx, edx
jb 0x46438e
mov ebx, 0
test ebx, ebx
jbe 0x463e71
mov ecx, dword [ebp - 0x68]
cmp ecx, 0x10
jb 0x4643a6
mov esi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
jmp 0x4643ac
lea esi, [ebp - 0x7c]
lea eax, [ebp - 0x7c]
mov byte [ebp - 0xa8], 0
add eax, ebx
sub edx, ebx
push edx
push eax
push ecx
push esi
call 0xd1754b
add esp, 0x10
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, ebx
mov dword [ebp - 0x6c], edx
cmp eax, 0x10
jb 0x4643d8
mov eax, dword [ebp - 0x7c]
jmp 0x4643db
lea eax, [ebp - 0x7c]
mov byte [eax + edx], 0
jmp 0x463e71
mov ecx, dword [ebp - 0x68]
cmp ecx, 0x10
jb 0x4643f4
mov edi, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x7c]
jmp 0x4643fa
lea edi, [ebp - 0x7c]
lea edx, [ebp - 0x7c]
mov byte [ebp - 0xa4], 0
add edi, ebx
sub ecx, ebx
add ebx, esi
add ebx, edx
sub eax, esi
push eax
push ebx
push ecx
push edi
call 0xd1754b
add esp, 0x10
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, esi
mov dword [ebp - 0x6c], edx
cmp eax, 0x10
jb 0x46442c
mov eax, dword [ebp - 0x7c]
jmp 0x46442f
lea eax, [ebp - 0x7c]
mov byte [eax + edx], 0
mov edx, dword [ebp - 0x6c]
jmp 0x464377
cmp edx, dword [ecx + 8]
jne 0x463eed
mov dword [ebp + 0x10], ecx
mov edx, ecx
mov ecx, dword [ecx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
jne 0x463eed
cmp edx, dword [ecx + 8]
je 0x464444
jmp 0x463eed
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
cmp esi, dword [edx + 4]
je 0x464476
movsx eax, byte [esi + 0x14]
cmp eax, 1
je 0x46447f
mov byte [esi + 0x14], 1
jmp 0x463fa7
mov edi, dword [ecx]
cmp esi, edi
je 0x46460d
movsx eax, byte [edi + 0x14]
test eax, eax
je 0x4645bc
movsx eax, byte [edi + 0x15]
test eax, eax
jne 0x4644c2
mov eax, dword [edi + 8]
movsx edx, byte [eax + 0x14]
mov dword [ebp - 0xb0], eax
cmp edx, 1
jne 0x464538
mov eax, dword [edi]
movsx edx, byte [eax + 0x14]
cmp edx, 1
jne 0x4644dd
mov byte [edi + 0x14], 0
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
mov esi, ecx
mov ecx, dword [ecx + 4]
cmp esi, dword [edx + 4]
je 0x464476
movsx eax, byte [esi + 0x14]
cmp eax, 1
je 0x46447f
jmp 0x464476
movzx eax, byte [ecx + 0x14]
mov byte [edi + 0x14], al
mov edx, 1
mov byte [ecx + 0x14], dl
mov edi, dword [edi]
mov byte [edi + 0x14], dl
mov eax, dword [ecx]
mov edx, dword [eax + 8]
mov dword [ecx], edx
mov edi, dword [eax + 8]
movsx edx, byte [edi + 0x15]
test edx, edx
je 0x464533
mov edi, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [edi + 4]
cmp ecx, dword [edx + 4]
je 0x46452e
mov edx, dword [ecx + 4]
cmp ecx, dword [edx + 8]
je 0x464520
mov dword [edx], eax
jmp 0x464523
mov dword [edx + 8], eax
mov dword [eax + 8], ecx
mov dword [ecx + 4], eax
jmp 0x464476
mov dword [edx + 4], eax
jmp 0x464523
mov dword [edi + 4], ecx
jmp 0x464503
mov eax, dword [edi]
movsx edx, byte [eax + 0x14]
cmp edx, 1
jne 0x4644dd
mov eax, dword [ebp - 0xb0]
mov byte [eax + 0x14], 1
mov eax, dword [edi + 8]
mov byte [edi + 0x14], 0
mov edx, dword [eax]
mov dword [edi + 8], edx
mov edx, dword [eax]
mov dword [ebp - 0xb0], eax
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x4645b7
mov edx, dword [ebp - 0xb0]
mov eax, dword [edi + 4]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
cmp edi, dword [edx + 4]
je 0x4645ac
mov eax, dword [edi + 4]
cmp edi, dword [eax]
je 0x464592
mov edx, dword [ebp - 0xb0]
mov dword [eax + 8], edx
jmp 0x46459a
mov edx, dword [ebp - 0xb0]
mov dword [eax], edx
mov eax, dword [ebp - 0xb0]
mov dword [eax], edi
mov dword [edi + 4], eax
mov edi, dword [ecx]
jmp 0x4644dd
mov eax, dword [ebp - 0xb0]
mov dword [edx + 4], eax
jmp 0x46459a
mov dword [edx + 4], edi
jmp 0x464569
mov byte [edi + 0x14], 1
mov eax, dword [ecx]
mov byte [ecx + 0x14], 0
mov edx, dword [eax + 8]
mov dword [ecx], edx
mov edx, dword [eax + 8]
movsx edi, byte [edx + 0x15]
test edi, edi
je 0x464608
mov edi, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [edi + 4]
cmp ecx, dword [edx + 4]
je 0x464603
mov edx, dword [ecx + 4]
cmp ecx, dword [edx + 8]
je 0x4645f3
mov dword [edx], eax
jmp 0x4645f6
mov dword [edx + 8], eax
mov dword [eax + 8], ecx
mov edi, dword [ecx]
mov dword [ecx + 4], eax
jmp 0x464495
mov dword [edx + 4], eax
jmp 0x4645f6
mov dword [edx + 4], ecx
jmp 0x4645d6
mov edi, dword [ecx + 8]
movsx eax, byte [edi + 0x14]
test eax, eax
je 0x46472b
movsx eax, byte [edi + 0x15]
test eax, eax
jne 0x4644c2
mov eax, dword [edi]
movsx edx, byte [eax + 0x14]
mov dword [ebp - 0xb0], eax
cmp edx, 1
jne 0x4646a3
mov eax, dword [edi + 8]
movsx edx, byte [eax + 0x14]
cmp edx, 1
je 0x4644be
movzx eax, byte [ecx + 0x14]
mov byte [edi + 0x14], al
mov edx, 1
mov byte [ecx + 0x14], dl
mov edi, dword [edi + 8]
mov byte [edi + 0x14], dl
mov eax, dword [ecx + 8]
mov edx, dword [eax]
mov dword [ecx + 8], edx
mov edi, dword [eax]
movsx edx, byte [edi + 0x15]
test edx, edx
je 0x46469e
mov edi, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [edi + 4]
cmp ecx, dword [edx + 4]
je 0x464699
mov edx, dword [ecx + 4]
cmp ecx, dword [edx]
je 0x46468d
mov dword [edx + 8], eax
jmp 0x46468f
mov dword [edx], eax
mov dword [eax], ecx
mov dword [ecx + 4], eax
jmp 0x464476
mov dword [edx + 4], eax
jmp 0x46468f
mov dword [edi + 4], ecx
jmp 0x464670
mov eax, dword [edi + 8]
movsx edx, byte [eax + 0x14]
cmp edx, 1
jne 0x464649
mov eax, dword [ebp - 0xb0]
mov byte [eax + 0x14], 1
mov eax, dword [edi]
mov byte [edi + 0x14], 0
mov edx, dword [eax + 8]
mov dword [ebp - 0xb0], eax
mov dword [edi], edx
mov edx, dword [eax + 8]
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x464726
mov edx, dword [ebp - 0xb0]
mov eax, dword [edi + 4]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
cmp edi, dword [edx + 4]
je 0x46471b
mov eax, dword [edi + 4]
cmp edi, dword [eax + 8]
je 0x4646fe
mov edx, dword [ebp - 0xb0]
mov dword [eax], edx
jmp 0x464707
mov edx, dword [ebp - 0xb0]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0xb0]
mov dword [eax + 8], edi
mov dword [edi + 4], eax
mov edi, dword [ecx + 8]
jmp 0x464649
mov eax, dword [ebp - 0xb0]
mov dword [edx + 4], eax
jmp 0x464707
mov dword [edx + 4], edi
jmp 0x4646d5
mov byte [edi + 0x14], 1
mov eax, dword [ecx + 8]
mov byte [ecx + 0x14], 0
mov edx, dword [eax]
mov dword [ecx + 8], edx
mov edx, dword [eax]
movsx edi, byte [edx + 0x15]
test edi, edi
je 0x464776
mov edi, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [edi + 4]
cmp ecx, dword [edx + 4]
je 0x464771
mov edx, dword [ecx + 4]
cmp ecx, dword [edx]
je 0x464762
or dh, byte [ebp + eax - 0x77]
inc edx
or byte [edi - 0x2aec1a80], ch
outsd dx, dword [esi]
mov dword [edx + 8], eax
scasd eax, dword es:[edi]
and ch, 0x13
in eax, 0x13
aad 0x6f
lds edx, [ebx]
xchg ebp, eax
arpl word [ebp - 0x63246aa2], ax
je 0x4647e4
jae 0x4647d3
xchg edx, eax
dec ecx
mov ecx, 0x7175e445
xor ch, byte [ebp - 0x1c3a1aa7]
xchg byte [eax], dl
or esi, dword [esi - 0x2b]
inc ebp
in al, 0x75
jno 0x4647ad
lodsd eax, dword [esi]
pop ecx
in eax, 0xc5
jecxz 0x464707
adc byte [ebx], cl
jbe 0x46475a
test eax, 0x53e5030f
movsd dword es:[edi], dword [esi]
push edi
xchg ebp, eax
adc eax, 0x8fef869
clc
dec byte [eax]
xchg edi, eax
sbb byte [ebx - 0x5d], al
into
inc esp
test dword [ebx], ecx
pop ebp
arpl word [edx + 0x34d378d3], dx
invalid
xchg edx, eax
sar dword [eax - 0x2d], cl
xor al, 0xf
cmp esi, dword [eax - 0x2467cdc5]
mov dh, byte [edx - 0x303a2cab]
out 0x67, eax
add byte [esi - 0x45], dl
sub dword [ebx + 0x7b], ecx
invalid
iretd
loope 0x4647d0
lds ecx, [ebx]
pushfd
js 0x464793
invalid
inc edi
cmp byte [ebx - 0x6c], bl
jno 0x46479c
dec edi
sub eax, 0x67216d9a
mov esp, 0x77eac668
mov esp, dword [ebx - 0x30f47caf]
and dword [edi - 0x44], esp
push 0x8b77eac6
mov dword [0xcf0b8351], eax
movsd dword es:[edi], dword [esi]
pop es
push ebp
xchg ebx, eax
add byte [0xa5820c84], 0x38
dec edx
loopne 0x464804
xchg byte [edx - 0x7c102cd0], dh
push esp
and ecx, dword [ebx]
mov bl, 0xb6
sbb eax, 0xdc25d259
cmpsd dword [esi], dword es:[edi]
in al, dx
in al, 0x33
and edi, eax
popfd
cmp esi, dword [ebx + eax*2 - 0x76]
jno 0x46478f
jle 0x4647c1
jae 0x4647c9
rol ebp, cl
cmp dword [eax - 0x1429a2d], 0x33
call 0x2dabdce2
ljmp 0x6f1f
pop ebp
invalid