Function at 0x43ef10
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [esp + 0x38]
test eax, eax
je 0x43ef5a
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x43ef30
sar ecx, 1
mov edx, ecx
and edx, 0xfffd
mov esi, ecx
and esi, 2
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
jmp 0x43ef5c
xor ecx, ecx
mov word [esp + 0x14], cx
mov edx, eax
test eax, eax
je 0x43ef6c
add ecx, 2
mov edx, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], ecx
mov word [esp + 0x16], dx
mov dword [esp + 0x18], eax
mov dword [esp + 2], 0x201000d
mov word [esp + 6], 0
mov eax, 0xb63a9b7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0xb63a9b5]
mov edx, eax
and edx, ebx
mov ecx, edx
mov ebp, edx
mov edi, edx
xor ebx, eax
lea ebx, [ebx + edx*2]
and edx, 0xffffffbd
or ecx, 0xfd
inc ecx
imul ecx, edx
and ebp, 2
or edi, 2
imul edi, ebp
sub ebx, edi
add ebx, ecx
add bl, 0x48
mov byte [esp + eax - 0xb63a9b5], bl
inc eax
cmp eax, 0xb63a9bd
jne 0x43efa0
mov eax, dword [esp + 2]
mov dword [esp + 8], 0x10111213
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
or dl, 0x4c
xor dl, byte [esp + ecx + 8]
add dl, 0xa0
mov byte [esp + ecx + 8], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 4
jb 0x43f000
mov ebx, dword [esp + 8]
mov ecx, dword [0x44aea0]
test ecx, ecx
je 0x43f07e
xor edx, edx
mov edi, dword [0x44aea4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x299a4ecd
je 0x43f050
inc edx
cmp ecx, edx
jne 0x43f040
jmp 0x43f07e
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, ebx
je 0x43f07e
lea edx, [esp + 0x10]
lea esi, [esp + 0x14]
push edx
push 0
push 0
push eax
push esi
push dword [esp + 0x48]
push 0x18
push ecx
push dword [0x44aea8]
call fcn.0043b9a0
add esp, 0x24
mov ebx, eax
mov dword [esp + 2], 0xdc1b1a3a
mov esi, 0x91
mov ecx, 0x1b2df56e
movzx ebp, byte [esp + esi - 0x8f]
lea edx, [esi - 0x1b2df600]
mov eax, ecx
and eax, 0x1a05c146
mov edi, edx
and edi, 0x81
or edi, eax
xor edi, ebp
xor edi, 0x56
mov eax, esi
and eax, ebp
or eax, edi
and edx, ebp
sub eax, edx
add al, 0x78
mov byte [esp + esi - 0x8f], al
inc esi
dec ecx
cmp esi, 0x95
jne 0x43f090
cmp ebx, dword [esp + 2]
jne 0x43f24d
push dword [esp + 0x10]
call fcn.0043a000
add esp, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 2], 0xecebeaeb
mov word [esp + 6], 0
xor edx, edx
movzx esi, byte [esp + edx + 2]
mov edi, 0x1e
sub edi, edx
or edi, esi
not esi
lea ebx, [edx + 0xe1]
or ebx, esi
and ebx, edi
mov cl, 0xf7
sub cl, bl
mov byte [esp + edx + 2], cl
mov ecx, edx
and ecx, 1
xor edx, 1
lea edx, [edx + ecx*2]
cmp edx, 6
jb 0x43f100
mov edx, dword [esp + 2]
mov dword [esp + 8], 0x10111213
xor ebx, ebx
mov ecx, ebx
or cl, 0x4c
xor cl, byte [esp + ebx + 8]
add cl, 0xa0
mov byte [esp + ebx + 8], cl
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
cmp ebx, 4
jb 0x43f140
mov ebx, dword [esp + 8]
mov ebp, dword [0x44aea0]
test ebp, ebp
je 0x43f1c3
xor edi, edi
mov esi, dword [0x44aea4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edi*8], 0x299a4ecd
je 0x43f190
inc edi
cmp ebp, edi
jne 0x43f180
jmp 0x43f1c3
mov ebp, dword [esi + edi*8 + 4]
cmp ebp, ebx
je 0x43f1c3
lea ecx, [esp + 0x10]
lea esi, [esp + 0x14]
push ecx
push dword [esp + 0x20]
push eax
push edx
push esi
push dword [esp + 0x48]
push 0x18
push ebp
push dword [0x44aea8]
mov esi, eax
call fcn.0043b9a0
add esp, 0x24
mov ebx, eax
mov eax, esi
test ebx, ebx
mov edx, dword [esp + 0x40]
js 0x43f244
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x43f1d8
mov ecx, dword [eax + 4]
mov dword [esi], ecx
cmp dword [esp + 0x44], 0
je 0x43f244
test edx, edx
je 0x43f23b
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov ecx, dword [eax + 8]
lea ebp, [eax + 0xc]
cmp edx, ecx
jb 0x43f1f5
mov edx, ecx
mov ecx, edx
shr ecx, 2
mov edi, dword [esp + 0x40]
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
mov ecx, edx
and ecx, 0xfffffffc
add dword [esp + 0xc], ecx
lea ebp, [eax + ecx]
add ebp, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, ebp
mov edi, dword [esp + 0xc]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov esi, dword [esp + 0xc]
test dl, 1
je 0x43f23b
and edx, 2
movzx ecx, byte [ebp + edx]
mov byte [esi + edx], cl
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x44]
mov dword [edx], ecx
push eax
call fcn.0043a020
add esp, 4
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret