Function at 0x43b790
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [esp + 0x34]
test eax, eax
je 0x43b7da
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + edx + 2], 0
lea edx, [edx + 2]
jne 0x43b7b0
sar edx, 1
mov esi, edx
or esi, 2
mov ecx, edx
and ecx, 2
imul esi, ecx
and edx, 0xfffd
xor ecx, 2
imul ecx, edx
add ecx, esi
jmp 0x43b7dc
xor ecx, ecx
mov word [esp + 0x10], cx
mov edx, eax
test eax, eax
je 0x43b7ec
add ecx, 2
mov edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
mov word [esp + 0x12], dx
mov dword [esp + 0x14], eax
mov dword [esp], 0xc866c865
xor eax, eax
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x18], ecx
movzx edx, word [esp + eax*2]
lea edi, [eax + eax]
lea ebx, [eax + eax*2]
xor ebx, 0x35d4880d
mov esi, ebx
xor esi, edx
lea ebp, [esi + esi]
not ebp
add ebp, esi
mov esi, ebp
and esi, ebx
and ebp, edi
mov edi, esi
and edi, 0x880d
lea ecx, [ebp + 0xfffe]
imul ecx, edi
or esi, 2
imul esi, ebp
sub ecx, esi
add ebx, edx
add ecx, ebx
add ecx, 0xffffbf98
mov word [esp + eax*2], cx
mov eax, 1
xor edx, edx
test byte [esp + 0x18], 1
mov ecx, 0
jne 0x43b810
mov eax, dword [esp]
mov dword [esp + 0xc], 0x7840784d
mov cl, 1
nop
nop
nop
nop
movzx esi, word [esp + edx*2 + 0xc]
lea edi, [edx + 0x3c2447f7]
or edi, esi
lea ebx, [edx + 0x47f7]
and ebx, esi
xor ebx, edi
add ebx, 0x1eddc047
mov esi, ebx
and esi, 1
xor ebx, 1
lea esi, [ebx + esi*2]
mov word [esp + edx*2 + 0xc], si
mov edx, 1
test cl, 1
mov ecx, 0
jne 0x43b880
mov edx, dword [0x446184]
mov ebx, 0xffffffff
test edx, edx
je 0x43b91e
mov ecx, dword [esp + 0xc]
xor esi, esi
mov edi, dword [0x446188]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x299a4ecd
je 0x43b8f0
inc esi
cmp edx, esi
jne 0x43b8e0
jmp 0x43b91e
mov edx, dword [edi + esi*8 + 4]
cmp edx, 0xffffffff
je 0x43b91e
lea esi, [esp + 8]
lea edi, [esp + 0x10]
push esi
push eax
push 0
push ecx
push edi
push dword [esp + 0x44]
push 0x18
push edx
push dword [0x44618c]
call fcn.00438b10
add esp, 0x24
mov ebx, eax
cmp ebx, 0xc0000023
jne 0x43ba6b
push dword [esp + 8]
call fcn.00437120
add esp, 4
mov ecx, dword [esp + 8]
mov dword [esp], 0x18041801
xor edx, edx
mov bl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [esp + edx*2]
mov edi, edx
xor edi, 0x39d16edb
lea edi, [edi + edx*2]
mov ebp, edi
and ebp, esi
add edi, esi
add ebp, ebp
sub edi, ebp
add edi, 0xffff8928
mov word [esp + edx*2], di
mov edx, 1
test bl, 1
mov ebx, 0
jne 0x43b950
mov ebp, dword [0x446184]
mov ebx, 0xffffffff
test ebp, ebp
je 0x43b9e1
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x446188]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x299a4ecd
je 0x43b9b0
inc esi
cmp ebp, esi
jne 0x43b9a0
jmp 0x43b9e1
mov ebp, dword [edi + esi*8 + 4]
cmp ebp, 0xffffffff
je 0x43b9e1
lea esi, [esp + 8]
lea edi, [esp + 0x10]
push esi
push ecx
push eax
push edx
push edi
push dword [esp + 0x44]
push 0x18
push ebp
push dword [0x44618c]
mov esi, eax
call fcn.00438b10
add esp, 0x24
mov ebx, eax
mov eax, esi
test ebx, ebx
mov edx, dword [esp + 0x3c]
js 0x43ba62
mov esi, dword [esp + 0x38]
test esi, esi
je 0x43b9f6
mov ecx, dword [eax + 4]
mov dword [esi], ecx
cmp dword [esp + 0x40], 0
je 0x43ba62
test edx, edx
je 0x43ba59
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov ecx, dword [eax + 8]
cmp edx, ecx
jb 0x43ba10
mov edx, ecx
lea esi, [eax + 0xc]
mov ecx, edx
shr ecx, 2
mov edi, dword [esp + 0x3c]
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, edx
and ecx, 0xfffffffc
add dword [esp + 4], ecx
lea ebp, [eax + ecx]
add ebp, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, ebp
mov edi, dword [esp + 4]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov esi, dword [esp + 4]
test dl, 1
je 0x43ba59
and edx, 2
movzx ecx, byte [ebp + edx]
mov byte [esi + edx], cl
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x40]
mov dword [edx], ecx
push eax
call fcn.00437140
add esp, 4
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret