Function at 0x436c00
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
lea esi, [esp + 0x18]
mov ecx, esi
push 0
push dword [esp + 0x44]
call fcn.00439120
mov ecx, esi
push 0x40
call fcn.00439140
test eax, eax
js 0x437079
xor eax, eax
xor esi, esi
nop
nop
nop
mov edi, 0x1000
mov dword [esp + 4], esi
sub edi, esi
push edi
push eax
call fcn.0043a950
add esp, 8
mov dword [esp + 8], 0xcbcccdce
mov ecx, 0x2ef40a89
mov ebp, 0xd10bf576
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x2ef40a81]
mov esi, ebp
or esi, ebx
not ebx
or ebx, ecx
and ebx, esi
mov dl, 0xb7
sub dl, bl
mov byte [esp + ecx - 0x2ef40a81], dl
inc ecx
dec ebp
cmp ecx, 0x2ef40a8d
jne 0x436c80
mov ecx, dword [esp + 8]
mov edx, dword [0x4486a8]
test edx, edx
je 0x436d00
xor ebp, ebp
mov esi, dword [0x4486ac]
nop
nop
nop
cmp dword [esi + ebp*8], 0x67f3d776
je 0x436cd0
inc ebp
cmp edx, ebp
jne 0x436cc0
jmp 0x436d00
mov edx, dword [esi + ebp*8 + 4]
cmp edx, ecx
je 0x436d00
lea ecx, [esp + 8]
push ecx
push edi
push eax
push 0x10
push 0x10
push edx
push dword [0x4486b0]
mov esi, eax
call fcn.0043a9b0
add esp, 0x1c
mov ecx, eax
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 4]
add esi, 0xfffff000
mov dword [esp + 8], 0x6b2a292c
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0x68
xor bl, byte [esp + edx + 8]
add bl, 0xc0
mov byte [esp + edx + 8], bl
inc edx
cmp edx, 4
jne 0x436d20
cmp ecx, dword [esp + 8]
je 0x436c50
test ecx, ecx
js 0x437070
mov ecx, dword [eax]
test ecx, ecx
je 0x43705a
xor ebx, ebx
mov edi, dword [esp + 0x40]
mov dword [esp + 0x10], eax
jmp 0x436d73
mov ecx, dword [eax]
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
inc ebx
cmp ebx, ecx
jae 0x43705a
mov edx, ebx
shl edx, 4
movzx esi, word [eax + edx + 4]
cmp esi, edi
jne 0x436d6a
mov dword [esp + 0x28], ebx
movzx edi, word [eax + edx + 0xa]
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xcbcccdce
mov ecx, 0x2ef40a89
mov ebp, 0xd10bf576
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x2ef40a81]
mov esi, ebp
or esi, edx
not edx
or edx, ecx
and edx, esi
mov bl, 0xb7
sub bl, dl
mov byte [esp + ecx - 0x2ef40a81], bl
inc ecx
dec ebp
cmp ecx, 0x2ef40a8d
jne 0x436db0
mov ecx, dword [esp + 8]
mov ebx, dword [0x4486a8]
test ebx, ebx
je 0x436e40
xor esi, esi
mov edx, dword [0x4486ac]
nop
nop
nop
cmp dword [edx + esi*8], 0x22fd5d1b
je 0x436e00
inc esi
cmp ebx, esi
jne 0x436df0
jmp 0x436e40
mov ebx, dword [edx + esi*8 + 4]
cmp ebx, ecx
je 0x436e40
push 2
push 0
push 0
lea ecx, [esp + 0x20]
push ecx
push 0xffffffffffffffff
push edi
push dword [esp + 0x1c]
push 0x1c
push ebx
push dword [0x4486b0]
mov esi, eax
call fcn.0043a9b0
add esp, 0x28
mov ecx, eax
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
test ecx, ecx
js 0x436d60
xor eax, eax
mov edx, 0x10c
nop
mov dword [esp + 4], edx
push edx
push eax
call fcn.0043a950
add esp, 8
mov ebp, dword [esp + 0x14]
mov dword [esp], 0xcbcccdce
mov ecx, 0x2ef40a89
mov edi, 0xd10bf576
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x2ef40a89]
mov esi, edi
or esi, edx
not edx
or edx, ecx
and edx, esi
mov bl, 0xb7
sub bl, dl
mov byte [esp + ecx - 0x2ef40a89], bl
inc ecx
dec edi
cmp ecx, 0x2ef40a8d
jne 0x436e80
mov ecx, dword [esp]
mov edi, dword [0x4486a8]
test edi, edi
je 0x436f10
mov edx, ebp
xor esi, esi
mov ebp, dword [0x4486ac]
nop
nop
cmp dword [ebp + esi*8], 0xa269eeef
je 0x436ee0
inc esi
cmp edi, esi
jne 0x436ec0
jmp 0x436f10
mov edi, dword [ebp + esi*8 + 4]
cmp edi, ecx
je 0x436f10
push 9
push dword [esp + 8]
push eax
lea ecx, [esp + 0x14]
push ecx
push edx
push 0x14
push edi
push dword [0x4486b0]
mov esi, eax
call fcn.0043a9b0
add esp, 0x20
mov ecx, eax
mov eax, esi
nop
nop
nop
nop
mov ebp, dword [eax]
mov dword [esp], 0x60efeee8
xor ebx, ebx
nop
nop
nop
nop
nop
mov edx, ebx
add dl, 0xc5
xor dl, byte [esp + ebx]
add dl, 0xd8
mov byte [esp + ebx], dl
inc ebx
cmp ebx, 4
jne 0x436f20
lea edx, [ebp + 8]
cmp ecx, dword [esp]
je 0x436e50
test ecx, ecx
js 0x436faa
lea ecx, [ebp + 1]
mov esi, 0xfffffffe
mov edx, dword [esp + 0x44]
add ecx, 0xfffffffe
cmp word [edx + esi + 2], 0
lea esi, [esi + 2]
jne 0x436f50
cmp ebp, esi
ja 0x436faa
test ecx, ecx
je 0x436faa
neg ecx
xor edx, edx
mov ebx, dword [esp + 0x44]
mov dword [esp + 4], edx
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ebp, esi
je 0x436f9f
movzx edx, byte [ebx + esi]
lea edi, [esi + 1]
cmp dl, byte [eax + esi + 4]
mov esi, edi
je 0x436f80
mov edx, dword [esp + 4]
inc edx
inc ebx
cmp ecx, edx
jne 0x436f6e
jmp 0x436faa
cmp dword [esp + 0x44], 0
jne 0x43708e
push eax
call fcn.00438e70
add esp, 4
mov ebp, dword [esp + 0x14]
mov dword [esp], 0xcbcccdce
mov eax, 0x2ef40a89
mov edx, 0xd10bf576
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x2ef40a89]
mov esi, edx
or esi, ecx
not ecx
or ecx, eax
and ecx, esi
mov bl, 0xb7
sub bl, cl
mov byte [esp + eax - 0x2ef40a89], bl
inc eax
dec edx
cmp eax, 0x2ef40a8d
jne 0x436fd0
mov edx, dword [0x4486a8]
test edx, edx
mov eax, dword [esp + 0x10]
je 0x436d60
mov edi, dword [esp]
xor ebx, ebx
mov ecx, dword [0x4486ac]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ecx + ebx*8], 0xb430e561
je 0x437033
inc ebx
cmp edx, ebx
jne 0x437020
jmp 0x436d60
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x436d60
push ebp
push 4
push ecx
push dword [0x4486b0]
call fcn.0043a9b0
mov eax, dword [esp + 0x20]
add esp, 0x10
jmp 0x436d60
xor esi, esi
push eax
call fcn.00438e70
add esp, 4
lea ecx, [esp + 0x18]
call fcn.004392b0
jmp 0x437084
push eax
call fcn.00438e70
add esp, 4
lea ecx, [esp + 0x18]
call fcn.004392b0
xor esi, esi
mov eax, esi
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x14]
push eax
call fcn.00438e70
add esp, 4
mov eax, dword [esp + 0x10]
jmp 0x43705c