Function at 0x43d760
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
mov dword [esp], 0x2c2d2e2f
mov dword [esp + 4], 0
mov eax, 0x8062a388
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x7f9d5c78]
xor ecx, eax
mov edx, ecx
and edx, 0x57
xor ecx, 0x57
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x7f9d5c78], cl
inc eax
cmp eax, 0x8062a390
jne 0x43d790
mov esi, dword [esp]
mov eax, dword [0x44a598]
test eax, eax
je 0x43d80e
xor ecx, ecx
mov edx, dword [0x44a59c]
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x33079ccd
je 0x43d7e0
inc ecx
cmp eax, ecx
jne 0x43d7d0
jmp 0x43d80e
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43d80e
lea ecx, [esp + 0x10]
push ecx
push 0
push 0
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x18
push eax
push dword [0x44a5a0]
call fcn.004391b0
add esp, 0x24
mov esi, eax
mov dword [esp], 0x21e6e7b9
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax]
lea edi, [eax - 0x6b599ea7]
mov ecx, 0xa6
sub ecx, eax
xor ecx, edi
and ecx, edx
xor ecx, edi
mov edx, ecx
xor edx, 0xbe
and ecx, 0x41
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + eax], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 7
jb 0x43d830
cmp esi, dword [esp]
jne 0x43d9eb
push dword [esp + 0x10]
call fcn.00436730
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
mov dword [esp], 0x2c2d2e2f
mov dword [esp + 4], 0
mov edx, 0x8062a388
movzx esi, byte [esp + edx + 0x7f9d5c78]
xor esi, edx
mov edi, esi
and edi, 0x57
xor esi, 0x57
lea ecx, [esi + edi*2]
inc cl
mov byte [esp + edx + 0x7f9d5c78], cl
inc edx
cmp edx, 0x8062a390
jne 0x43d8a0
mov esi, dword [esp]
mov edx, dword [0x44a598]
test edx, edx
je 0x43d92c
mov ecx, ebp
xor edi, edi
mov ebp, dword [0x44a59c]
nop
nop
cmp dword [ebp + edi*8], 0x33079ccd
je 0x43d8f3
inc edi
cmp edx, edi
jne 0x43d8e0
mov ebp, ecx
jmp 0x43d92c
mov edx, dword [ebp + edi*8 + 4]
cmp edx, esi
mov ebp, ecx
mov edi, dword [esp + 8]
je 0x43d930
lea ecx, [esp + 0x10]
push ecx
push dword [esp + 0x10]
push edi
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x18
push edx
push dword [0x44a5a0]
mov edi, eax
call fcn.004391b0
add esp, 0x24
mov esi, eax
mov eax, edi
mov edi, dword [esp + 8]
test ebx, ebx
je 0x43d9e2
test esi, esi
js 0x43d9e2
test ebp, ebp
je 0x43d9db
mov ecx, dword [edi + 0xc]
shr ecx, 1
mov edx, dword [ebx]
cmp edx, ecx
jb 0x43d955
mov edx, ecx
test edx, edx
je 0x43d9d5
add eax, 0x10
mov ecx, edx
test dl, 1
je 0x43d994
not ecx
lea ecx, [ecx + edx*2]
movzx edi, word [eax]
mov word [esp + 0xc], di
test di, di
mov ebx, 0
setne bl
mov edi, ebx
mov ebx, dword [esp + 0x34]
lea eax, [eax + edi*2]
movzx edi, word [esp + 0xc]
mov word [ebp], di
mov edi, dword [esp + 8]
add ebp, 2
cmp edx, 1
je 0x43d9d5
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
xor ebx, ebx
test dx, dx
setne bl
lea edi, [eax + ebx*2]
mov word [ebp], dx
movzx edx, word [eax + ebx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [edi + eax*2]
mov word [ebp + 2], dx
add ebp, 4
add ecx, 0xfffffffe
jne 0x43d9a0
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 8]
mov word [ebp], 0
mov eax, dword [edi + 0xc]
shr eax, 1
mov dword [ebx], eax
push edi
call fcn.004367a0
add esp, 4
mov eax, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret