Function at 0x43b860
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov ebx, ecx
mov dword [esp + 8], 0
mov dword [esp], 0x303f3e3d
mov dword [esp + 4], 0
mov eax, 0x8b491375
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x74b6ec8b]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xb7
mov byte [esp + eax + 0x74b6ec8b], cl
inc eax
cmp eax, 0x8b49137d
jne 0x43b890
mov edi, dword [esp]
mov eax, dword [0x44d268]
test eax, eax
je 0x43b906
xor ecx, ecx
mov edx, dword [0x44d26c]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x61813e67
je 0x43b8e0
inc ecx
cmp eax, ecx
jne 0x43b8d0
jmp 0x43b906
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x43b906
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 5
push 0x10
push eax
push dword [0x44d270]
call fcn.0043de40
add esp, 0x1c
mov edi, eax
mov dword [esp], 0xd99a9b90
mov byte [esp + 4], 0
mov eax, 0xdb
mov ecx, 0x24
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xdb]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0xb9
mov byte [esp + eax - 0xdb], dl
inc eax
dec ecx
cmp eax, 0xe0
jne 0x43b920
cmp edi, dword [esp]
jne 0x43bad5
mov dword [esp + 0xc], ebx
push dword [esp + 8]
call fcn.0043b700
add esp, 4
mov ebp, dword [esp + 8]
mov dword [esp], 0x303f3e3d
mov dword [esp + 4], 0
mov edx, 0x8b491375
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx + 0x74b6ec8b]
mov ebx, ecx
and ebx, edx
add bl, bl
sub cl, bl
movzx ecx, cl
add ecx, edx
add cl, 0xb7
mov byte [esp + edx + 0x74b6ec8b], cl
inc edx
cmp edx, 0x8b49137d
jne 0x43b980
mov edi, dword [esp]
mov edx, dword [0x44d268]
test edx, edx
je 0x43b9f5
xor esi, esi
mov ebx, dword [0x44d26c]
nop
nop
nop
cmp dword [ebx + esi*8], 0x61813e67
je 0x43b9d0
inc esi
cmp edx, esi
jne 0x43b9c0
jmp 0x43b9f5
mov edx, dword [ebx + esi*8 + 4]
cmp edx, edi
je 0x43b9f5
push 0
push ebp
push eax
push 5
push 0x10
push edx
push dword [0x44d270]
mov esi, eax
call fcn.0043de40
add esp, 0x1c
mov edi, eax
mov eax, esi
test edi, edi
js 0x43bacc
mov dword [esp], 0x3c2c3e5
mov word [esp + 4], 0
xor ecx, ecx
nop
nop
nop
movzx edx, byte [esp + ecx]
mov ebx, 0xdf438af
sub ebx, ecx
mov esi, ecx
and esi, 1
mov edi, 0xaf
sub edi, ecx
mov ebp, ebx
xor ebp, edi
add ebp, ebx
and ebx, 0x403086
or ebx, esi
xor ebx, edx
xor ebx, 0x29
and edi, edx
or edi, ebx
and ebp, edx
lea edx, [ebp*2]
not edx
add edx, ebp
and edx, edi
mov bl, 0x6f
sub bl, dl
mov byte [esp + ecx], bl
add ecx, 0xc156b5d5
mov edx, ecx
and edx, 0xc
xor ecx, 0x3ea94a2c
lea ecx, [ecx + edx*2]
cmp ecx, 6
jb 0x43ba10
mov edi, dword [esp]
mov esi, dword [eax]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx + esi + 0x3c]
add ecx, esi
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [edx + esi]
mov ebp, dword [esp + 0x24]
movzx ebp, word [ebp + esi]
test bx, bx
je 0x43baaa
add esi, 2
cmp bx, bp
je 0x43ba90
cmp bx, bp
je 0x43bab7
mov esi, dword [ecx]
test esi, esi
jne 0x43ba80
jmp 0x43bacc
mov edx, dword [ecx + 0x44]
mov esi, dword [esp + 0xc]
mov dword [esi + 8], edx
mov ecx, dword [ecx + 0xdc]
mov dword [esi + 0xc], ecx
xor edi, edi
push eax
call fcn.0043b790
add esp, 4
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret 4