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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x78]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x1c], 0x100000
mov dword [esp], 0
mov dword [esp + 0x2c], 0x181b1a1d
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
and ecx, 1
mov esi, ecx
xor esi, 0xb19c89d9
mov edx, eax
and edx, 2
mov edi, edx
sub edi, esi
mov ebp, 0x2b
sub ebp, edi
neg esi
lea ebx, [edx + esi]
add ebx, 0x14
and ebp, 0x35
and ebx, 0x4a
or ebx, ebp
xor bl, byte [esp + eax + 0x2c]
xor bl, 0xb5
add bl, 0x59
mov byte [esp + eax + 0x2c], bl
xor ecx, 0x9bbaf00d
neg ecx
lea eax, [edx + ecx]
inc eax
mov ecx, eax
and ecx, 0xd
xor eax, 0x9bbaf00d
lea eax, [eax + ecx*2]
cmp eax, 4
jb 0x43ad10
mov eax, dword [esp + 0x2c]
mov ecx, dword [0x44bcdc]
test ecx, ecx
je 0x43adbc
xor edx, edx
mov esi, dword [0x44bce0]
nop
cmp dword [esi + edx*8], 0x98d5a07f
je 0x43ad90
inc edx
cmp ecx, edx
jne 0x43ad80
jmp 0x43adbc
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43adbc
lea eax, [esp + 0x1c]
mov edx, esp
push 4
push 0x3000
push eax
push 0
push edx
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44bce4]
call fcn.0043cba0
add esp, 0x24
test eax, eax
js 0x43b3e8
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0xc], 0xb18d8f8c
mov word [esp + 0x10], 0
xor eax, eax
xor ecx, ecx
nop
mov esi, ecx
xor esi, 0xe3
mov edx, eax
and edx, 8
sub edx, esi
xor dl, byte [esp + ecx + 0xc]
add dl, 0x6f
mov byte [esp + ecx + 0xc], dl
inc ecx
add eax, 2
cmp ecx, 6
jne 0x43ae10
mov eax, dword [esp + 0xc]
cmp eax, 0x7ffffffe
mov esi, dword [esp + 0x20]
ja 0x43b32a
mov dword [esp + 8], 0
lea ebx, [esp + 0x2c]
mov dword [esp + 4], 0
xor edi, edi
jmp 0x43ae93
mov eax, dword [esp + 0x78]
mov dword [eax + 4], edi
mov ecx, dword [esp + 4]
mov dword [eax], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 8], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x2c]
cmp eax, 0x7fffffff
jae 0x43b32a
mov dword [esp + 0x28], eax
mov ecx, esi
push 0
push 0x1c
push ebx
push 0
push eax
call fcn.0043ab00
cmp eax, 0xbfffffff
ja 0x43b32a
test eax, eax
js 0x43ae80
cmp dword [esp + 0x3c], 0x1000
jne 0x43ae80
test byte [esp + 0x40], 0x66
je 0x43ae80
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
cmp eax, edx
jbe 0x43b0a4
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], 0x181b1a1d
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
and edx, 1
mov ebx, edx
xor ebx, 0xb19c89d9
mov esi, ecx
and esi, 2
mov ebp, esi
sub ebp, ebx
neg ebx
add ebx, esi
add ebx, 0x14
mov eax, 0x2b
sub eax, ebp
and eax, 0x35
and ebx, 0x4a
or ebx, eax
xor bl, byte [esp + ecx + 0xc]
xor bl, 0xb5
add bl, 0x59
mov byte [esp + ecx + 0xc], bl
xor edx, 0x9bbaf00d
neg edx
lea eax, [esi + edx]
inc eax
mov ecx, eax
and ecx, 0xd
xor eax, 0x9bbaf00d
lea ecx, [eax + ecx*2]
cmp ecx, 4
jb 0x43aef0
mov ecx, dword [0x44bcdc]
test ecx, ecx
je 0x43af80
mov edx, dword [esp + 0xc]
xor esi, esi
mov ebx, dword [0x44bce0]
mov eax, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x6dbc3610
je 0x43af86
inc esi
cmp ecx, esi
jne 0x43af70
jmp 0x43afb4
mov eax, dword [esp + 0x24]
jmp 0x43afb4
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
je 0x43afb4
push 0x8000
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 8]
push eax
push 0xffffffffffffffff
push 0x10
push ecx
push dword [0x44bce4]
call fcn.0043cba0
add esp, 0x1c
mov eax, dword [esp + 0x38]
mov dword [esp], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x181b1a1d
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
and ecx, 1
mov esi, ecx
xor esi, 0xb19c89d9
mov edx, eax
and edx, 2
mov ebp, edx
sub ebp, esi
neg esi
lea ebx, [edx + esi]
add ebx, 0x14
mov esi, 0x2b
sub esi, ebp
and esi, 0x35
and ebx, 0x4a
or ebx, esi
xor bl, byte [esp + eax + 0xc]
xor bl, 0xb5
add bl, 0x59
mov byte [esp + eax + 0xc], bl
xor ecx, 0x9bbaf00d
neg ecx
lea eax, [edx + ecx]
inc eax
mov ecx, eax
and ecx, 0xd
xor eax, 0x9bbaf00d
lea eax, [eax + ecx*2]
cmp eax, 4
jb 0x43afd0
mov eax, dword [esp + 0xc]
mov ecx, dword [0x44bcdc]
test ecx, ecx
je 0x43b060
xor edx, edx
mov esi, dword [0x44bce0]
lea ebx, [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x98d5a07f
je 0x43b066
inc edx
cmp ecx, edx
jne 0x43b050
jmp 0x43b094
lea ebx, [esp + 0x2c]
jmp 0x43b094
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43b094
push 4
push 0x3000
lea eax, [esp + 0x24]
push eax
push 0
lea eax, [esp + 0x10]
push eax
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44bce4]
call fcn.0043cba0
add esp, 0x24
test eax, eax
mov esi, dword [esp + 0x20]
js 0x43b32a
mov edx, dword [esp + 0x1c]
mov ecx, esi
lea eax, [esp + 0x60]
push eax
push edx
push dword [esp + 8]
push dword [esp + 0x34]
call fcn.0043abd0
test eax, eax
jns 0x43b0c8
cmp eax, 0x8000000d
jne 0x43ae80
push dword [esp + 0x84]
push dword [esp + 0x84]
push dword [esp + 0x84]
push dword [esp + 0x6c]
push dword [esp + 0x10]
lea eax, [esp + 0x20]
push eax
call fcn.0043b400
add esp, 0x18
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
cmp eax, edx
je 0x43ae5e
mov dword [esp + 0x50], eax
mov esi, eax
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x58], edx
jmp 0x43b139
mov edi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x24]
mov dword [ebx + ecx], ebp
add edi, 4
add esi, 4
cmp esi, edx
je 0x43b2db
mov ecx, dword [esi]
add ecx, eax
sub ecx, dword [esp]
mov dword [esp + 0x24], ecx
mov ecx, edi
mov ebp, ebx
sub ecx, ebx
mov ebx, edi
cmp edi, dword [esp + 8]
jne 0x43b120
mov dword [esp + 0x5c], ecx
sar ecx, 2
lea eax, [ecx + 1]
mov edi, ecx
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x43b168
mov edi, eax
lea eax, [edi*4]
push eax
call fcn.004095d0
add esp, 4
test ebp, ebp
je 0x43b2bd
mov dword [esp + 8], edi
mov edi, ebx
not edi
and edi, ebp
mov edx, ebp
not edx
and edx, ebx
mov ebx, edx
sub ebx, edi
cmp eax, ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x48], eax
jbe 0x43b25f
lea ecx, [ebx + ebp]
cmp ecx, eax
jbe 0x43b25f
test ebx, ebx
je 0x43b2a9
mov dword [esp + 0x18], edx
mov eax, dword [esp + 4]
add eax, ebx
dec eax
mov ecx, dword [esp + 0x48]
add ecx, ebx
dec ecx
mov ebp, ebx
mov edx, ebx
and edx, 7
je 0x43b1f6
mov dword [esp + 0x54], edi
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
dec edi
cmp edx, edi
jne 0x43b1e0
add eax, edi
add ecx, edi
add ebp, edi
mov edi, dword [esp + 0x54]
sub edi, dword [esp + 0x18]
cmp edi, 0xfffffff8
ja 0x43b2a9
neg ebp
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax + edi]
mov byte [ecx + edi], dl
movzx edx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], dl
movzx edx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], dl
movzx edx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], dl
movzx edx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], dl
movzx edx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], dl
movzx edx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], dl
movzx edx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], dl
add edi, 0xfffffff8
cmp ebp, edi
jne 0x43b210
jmp 0x43b2a9
mov ecx, ebx
shr ecx, 2
mov dword [esp + 0x18], ebx
mov edx, ebp
mov ebx, ebp
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ebp, dword [esp + 0x18]
and ebp, 0xfffffffc
add eax, ebp
add ebp, ebx
mov ecx, dword [esp + 0x18]
shr ecx, 1
and ecx, 1
mov edx, ebp
mov edi, eax
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ebx, dword [esp + 0x18]
test bl, 1
je 0x43b2a9
and ebx, 2
mov ecx, eax
movzx eax, byte [ebp + ebx]
mov byte [ecx + ebx], al
push dword [esp + 4]
call fcn.004095e0
add esp, 4
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x48]
lea ecx, [eax + edi*4]
mov dword [esp + 8], ecx
mov edi, eax
mov ecx, dword [esp + 0x5c]
add edi, ecx
mov ebx, eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
jmp 0x43b124
mov eax, dword [esp + 0x78]
mov dword [eax + 4], edi
mov dword [esp + 4], ebx
mov dword [eax], ebx
mov ecx, dword [esp + 8]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x43b31d
cmp eax, edx
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0x2c]
je 0x43ae80
push eax
call fcn.004095e0
add esp, 4
mov dword [esp + 0xc], 0
jmp 0x43ae80
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0x2c]
jmp 0x43ae80
mov dword [esp + 0xc], 0x181b1a1d
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
and ecx, 1
mov esi, ecx
xor esi, 0xb19c89d9
mov edx, eax
and edx, 2
mov edi, edx
sub edi, esi
mov ebp, 0x2b
sub ebp, edi
neg esi
lea ebx, [edx + esi]
add ebx, 0x14
and ebp, 0x35
and ebx, 0x4a
or ebx, ebp
xor bl, byte [esp + eax + 0xc]
xor bl, 0xb5
add bl, 0x59
mov byte [esp + eax + 0xc], bl
xor ecx, 0x9bbaf00d
neg ecx
lea eax, [edx + ecx]
inc eax
mov ecx, eax
and ecx, 0xd
xor eax, 0x9bbaf00d
lea eax, [eax + ecx*2]
cmp eax, 4
jb 0x43b340
mov eax, dword [0x44bcdc]
test eax, eax
je 0x43b3e8
mov ecx, dword [esp + 0xc]
xor edx, edx
mov esi, dword [0x44bce0]
nop
nop
cmp dword [esi + edx*8], 0x6dbc3610
je 0x43b3c0
inc edx
cmp eax, edx
jne 0x43b3b0
jmp 0x43b3e8
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x43b3e8
lea ecx, [esp + 0x4c]
mov edx, esp
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 0x10
push eax
push dword [0x44bce4]
call fcn.0043cba0
add esp, 0x1c
mov eax, dword [esp + 0x78]
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret 0x10