Function at 0x436594
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 0x4366bf
push 0xd27f00
lea ecx, [ebp - 0x64]
call fcn.00435a58
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
call 0xce9a11
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 0x436633
call 0xd1c5b5
mov ebx, dword [ebp - 0x50]
lea eax, [ebp - 0x80]
lea edx, [ebp - 0x64]
cmp ebx, 0xffffffff
jbe 0x436643
mov ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
cmp eax, edx
je 0x436b5c
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x43665e
call 0xd1c576
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x68]
cmp esi, ebx
jb 0x436a54
test ebx, ebx
je 0x436a35
test ebx, ebx
ja 0x4369d2
mov dword [ebp - 4], 0
push 0xe4a780
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x8c]
mov dword [eax], 0xe442cc
push edx
call 0xce9c8e
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp eax, 0x10
jae 0x4369c4
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 0x437073
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x4366db
call 0xce99f8
jmp 0x436713
mov eax, dword [edx + 8]
movsx ecx, byte [eax + 0x15]
test ecx, ecx
je 0x4366fa
mov ecx, dword [edx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
je 0x436c43
mov dword [ebp + 0x10], ecx
jmp 0x436713
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
jne 0x436710
mov eax, dword [eax]
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x436704
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
movsx edx, byte [eax + 0x15]
mov edi, ebx
test edx, edx
je 0x436724
mov esi, dword [ebx + 8]
jmp 0x436739
mov edx, dword [ebx + 8]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x436733
mov esi, eax
jmp 0x436739
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + 8]
cmp edi, ebx
je 0x436f93
mov dword [eax + 4], edi
mov eax, dword [ebx]
mov dword [edi], eax
cmp edi, dword [ebx + 8]
jne 0x436751
mov ecx, edi
jmp 0x43676e
mov ecx, dword [edi + 4]
movsx eax, byte [esi + 0x15]
test eax, eax
je 0x436f8b
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 0x436f83
mov eax, dword [ebx + 4]
cmp ebx, dword [eax]
je 0x43678c
mov dword [eax + 8], edi
jmp 0x43678e
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 0x436c6a
push ebx
call 0xce8289
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 8]
test eax, eax
je 0x4367c6
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 0x4368df
mov edx, dword [ebp - 0x98]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jae 0x4368cb
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 0x436870
mov eax, dword [eax + 4]
jmp 0x436873
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 0x4368b6
mov edx, dword [edx + 4]
jmp 0x4368b9
add edx, 4
mov eax, dword [ebp - 0x94]
mov byte [edx + eax], 0
mov ebx, dword [ebp - 0x40]
jmp 0x436671
push dword [edx + 4]
call 0xce8289
pop ecx
mov edx, dword [ebp - 0x98]
jmp 0x436849
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x18]
cmp eax, 0x10
jb 0x4368f2
mov ecx, dword [ecx + 4]
jmp 0x4368f5
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 0xce9cd8
add esp, 0x10
jmp 0x436837
push dword [ebp - 0x60]
call 0xce8289
pop ecx
jmp 0x4366ad
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x18]
cmp ecx, 0x10
jb 0x4369e2
mov ebx, dword [ebx + 4]
jmp 0x4369e5
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x4369f5
mov edx, dword [edx + 4]
jmp 0x4369f8
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 0xce9cd8
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 0x436a29
mov eax, dword [eax + 4]
jmp 0x436a2c
add eax, 4
mov byte [eax + ecx], 0
jmp 0x436679
mov dword [ebp - 0x6c], 0
cmp esi, 0x10
jb 0x436a46
mov eax, dword [ebp - 0x7c]
jmp 0x436a49
lea eax, [ebp - 0x7c]
mov byte [eax], 0
mov ebx, dword [ebp - 0x40]
jmp 0x436671
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 0x436a90
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xa0], ebx
jmp 0x436aa7
mov ebx, ecx
mov ecx, esi
shr ecx, 1
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
cmp ecx, edx
ja 0x436b39
mov dword [ebp - 0x9c], 0
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0xb0]
add eax, 1
mov dword [ebp - 0xb0], eax
jne 0x436ad3
xor eax, eax
mov dword [ebp - 0xb0], eax
jmp 0x436b1a
mov ecx, eax
xor edx, edx
mov eax, 0xffffffff
div ecx
cmp eax, 1
jae 0x436b1a
mov dword [ebp - 0xbc], 0
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0xcc]
call 0xce9a22
mov dword [ebp - 0xcc], 0xe40cb4
lea eax, [ebp - 0xcc]
push 0xe4a720
push eax
call 0xce9c8e
mov eax, dword [ebp - 0xb0]
push eax
call 0xce821f
pop ecx
mov dword [ebp - 0x9c], eax
mov dword [ebp - 4], 1
jmp 0x436829
mov eax, ecx
neg eax
add eax, 0xfffffffe
cmp esi, eax
ja 0x436aa7
lea eax, [esi + ecx]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xa0], eax
jmp 0x436aa7
mov edx, dword [ebp - 0x6c]
cmp edx, ebx
jae 0x436b6b
call 0xd1c5b5
mov edx, dword [ebp - 0x6c]
mov eax, edx
sub eax, ebx
cmp eax, 0xffffffff
mov esi, eax
jb 0x436b7b
mov esi, 0xffffffff
test esi, esi
ja 0x436bec
test edx, edx
jae 0x436b8b
call 0xd1c5b5
mov edx, dword [ebp - 0x6c]
test edx, edx
mov ebx, edx
jb 0x436b96
mov ebx, 0
test ebx, ebx
jbe 0x436679
mov ecx, dword [ebp - 0x68]
cmp ecx, 0x10
jb 0x436bae
mov esi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
jmp 0x436bb4
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 0xce9d53
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 0x436be0
mov eax, dword [ebp - 0x7c]
jmp 0x436be3
lea eax, [ebp - 0x7c]
mov byte [eax + edx], 0
jmp 0x436679
mov ecx, dword [ebp - 0x68]
cmp ecx, 0x10
jb 0x436bfc
mov edi, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x7c]
jmp 0x436c02
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 0xce9d53
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 0x436c34
mov eax, dword [ebp - 0x7c]
jmp 0x436c37
lea eax, [ebp - 0x7c]
mov byte [eax + edx], 0
mov edx, dword [ebp - 0x6c]
jmp 0x436b7f
cmp edx, dword [ecx + 8]
jne 0x4366f5
mov dword [ebp + 0x10], ecx
mov edx, ecx
mov ecx, dword [ecx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
jne 0x4366f5
cmp edx, dword [ecx + 8]
je 0x436c4c
jmp 0x4366f5
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
cmp esi, dword [edx + 4]
je 0x436c7e
movsx eax, byte [esi + 0x14]
cmp eax, 1
je 0x436c87
mov byte [esi + 0x14], 1
jmp 0x4367af
mov edi, dword [ecx]
cmp esi, edi
je 0x436e15
movsx eax, byte [edi + 0x14]
test eax, eax
je 0x436dc4
movsx eax, byte [edi + 0x15]
test eax, eax
jne 0x436cca
mov eax, dword [edi + 8]
movsx edx, byte [eax + 0x14]
mov dword [ebp - 0xb0], eax
cmp edx, 1
jne 0x436d40
mov eax, dword [edi]
movsx edx, byte [eax + 0x14]
cmp edx, 1
jne 0x436ce5
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 0x436c7e
movsx eax, byte [esi + 0x14]
cmp eax, 1
je 0x436c87
jmp 0x436c7e
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 0x436d3b
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 0x436d36
mov edx, dword [ecx + 4]
cmp ecx, dword [edx + 8]
je 0x436d28
mov dword [edx], eax
jmp 0x436d2b
mov dword [edx + 8], eax
mov dword [eax + 8], ecx
mov dword [ecx + 4], eax
jmp 0x436c7e
mov dword [edx + 4], eax
jmp 0x436d2b
mov dword [edi + 4], ecx
jmp 0x436d0b
mov eax, dword [edi]
movsx edx, byte [eax + 0x14]
cmp edx, 1
jne 0x436ce5
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 0x436dbf
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 0x436db4
mov eax, dword [edi + 4]
cmp edi, dword [eax]
je 0x436d9a
mov edx, dword [ebp - 0xb0]
mov dword [eax + 8], edx
jmp 0x436da2
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 0x436ce5
mov eax, dword [ebp - 0xb0]
mov dword [edx + 4], eax
jmp 0x436da2
mov dword [edx + 4], edi
jmp 0x436d71
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 0x436e10
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 0x436e0b
mov edx, dword [ecx + 4]
cmp ecx, dword [edx + 8]
je 0x436dfb
mov dword [edx], eax
jmp 0x436dfe
mov dword [edx + 8], eax
mov dword [eax + 8], ecx
mov edi, dword [ecx]
mov dword [ecx + 4], eax
jmp 0x436c9d
mov dword [edx + 4], eax
jmp 0x436dfe
mov dword [edx + 4], ecx
jmp 0x436dde
mov edi, dword [ecx + 8]
movsx eax, byte [edi + 0x14]
test eax, eax
je 0x436f33
movsx eax, byte [edi + 0x15]
test eax, eax
jne 0x436cca
mov eax, dword [edi]
movsx edx, byte [eax + 0x14]
mov dword [ebp - 0xb0], eax
cmp edx, 1
jne 0x436eab
mov eax, dword [edi + 8]
movsx edx, byte [eax + 0x14]
cmp edx, 1
je 0x436cc6
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 0x436ea6
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 0x436ea1
mov edx, dword [ecx + 4]
cmp ecx, dword [edx]
je 0x436e95
mov dword [edx + 8], eax
jmp 0x436e97
mov dword [edx], eax
mov dword [eax], ecx
mov dword [ecx + 4], eax
jmp 0x436c7e
inc ecx
add al, 0xe9
invalid
mov dword [edx + 4], eax
jmp 0x436e97
mov dword [edi + 4], ecx
jmp 0x436e78
mov eax, dword [edi + 8]
movsx eax, byte [ebx]
jae 0x436eab
enter 0x572d, 0x13
sub dh, byte [edi]
pop ecx
add byte [edx], ch
div byte [bp + si + 0x77]
xchg ebx, eax
int1
jge 0x436f29
xlatb
cld
xchg edx, esp
mov bh, 0x95
jecxz 0x436e9a
out 0xf7, eax
cmp al, 1
add eax, 0x54959893
cmp bh, cl
rcl dword [edi - 0x6c], 0x27
imul ebx, dword [ebx], 0xfffffff8
or esi, dword [ebx - 0x5ceae760]
push ss
dec esp
imul ebp, dword [di + 0x69], 0xf72cc833
or al, 0xf
adc byte [esi + 0x29], dl
cmp dword [eax], esi
clc
xchg byte [edi - 0x3c951da1], dl
ror byte [edi], cl
or ah, byte [eax]
xchg esp, eax
lahf
inc edi
invalid
sub al, 0x5f
lea esi, [ebx + 0x3ef7df96]
jl 0x436ec0
jecxz 0x436f55
or dword [0xa936ff67], edi
push cs
mov ch, 0x12
jbe 0x436f67
or cl, bl
lea ecx, [ecx]
faddp st(0)
xchg ebx, eax
cmc
xlatb
ret 0xa0b0
or ecx, dword [eax + edx*2]
ret
sub ah, byte [edi - 0xc092292]
jns 0x436f92
and ecx, dword [0x9c76834b]
sbb byte [eax - 0x28], ah
cld
push edi
or ebp, 0xffffffa3
salc
mov eax, dword [edx]
mov ch, byte [ecx]
fimul dword [eax]
mov bl, 0xce
dec esp
mov dword [0x85174e67], eax
invalid
or byte [ebx - 0x5cb3c132], dh
dec esi
pop ss
test esi, eax
push cs
sti
bound esp, qword [esi + 0x3f]
aas
outsb dx, byte [esi]
or al, 0xd2
jno 0x436fdf
invalid
push es
mov bl, 0xe
rcr dword [edx + 0x7777d1b3], 0xb3
mov bh, 0x5a
invalid
ret
mov ah, 0xad
dec ecx
adc bh, byte [esi + 0x13]
adc al, 0xa6
cmpsb byte [esi], byte es:[edi]
mov esp, 0x5ed32631
xor edi, dword [edx + edx*2 + 0x1b]
stosd dword es:[edi], eax
invalid
arpl word [ebx + ebp*4 - 0x700c1009], bx
inc edx
arpl word [esi + 0x41], ax
jae 0x437047
mov bh, 0xf
pushfd
call 0xc8b1147b
int 0x67
xchg ebx, eax
mov ch, 0xb6
shr dword [ebx + 0x4e84d743], 1
inc esp
xchg edi, esi
xor ch, byte [ebx + 0x1f]
mov ebp, 0xffc0082f
dec byte [eax]
xchg edx, edx
loope 0x437040
loop 0x4370fd
mov bl, 0x4c
invalid
and ah, byte [esi + eax + 0x45]
clc
scasb al, byte es:[edi]
jl 0x437178
cwde
or esi, 0xffffff95
mov ah, 0x84
mov bh, 0xbc
xchg byte [edx + 0x52], ah
xor dl, byte [edx]
and dword [ebp + ebp*2 + 0x43], 0x26
inc esi
inc ebx
int1
cmpsb byte [esi], byte es:[edi]
adc eax, 0xd8c39adc
adc dh, byte [edi + 0x52a3eb51]
salc
ret
xchg esi, eax
mov dh, 0xa3
mov ch, 0xdf
push edi
jno 0x4371ba
add byte [eax + 0x4f01d5bd], cl
and dword [ebp + 0x2f59b60a], 0xffffffe3
push eax
mov edx, 0x1fb66a85
test eax, 0xb7fda3a3
push es
retf
fsub dword [ebx]
inc ebx
pop eax
jo 0x437200
arpl word [edi - 0x6b], dx
inc ebx
mov ebp, 0xbf16f3d9
neg ebx
nop
fild word [edi + 0x227722f9]
in eax, dx
mov esi, 0x474045ed
adc edi, dword [edi]
loope 0x437213
push ebx
invalid
leave
cld
add eax, dword [eax - 0x2a]
aam 0x7d
out 0xc2, eax
ret 0xa7de
loop 0x437279
add byte [ebx + 0x57], 0xb3
rcl dword [ebx - 0x1f], cl
cmp bl, byte [ecx]
rol dword [edx + 0x39b1c04], cl
ficom dword [edi - 0x5d]
imul esi, dword [edx], 0xffffffa6
inc esi
test al, 3
lahf
retf 0x8c93
or ah, bl
sbb esi, edi
das
push edx
invalid