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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x298
mov edx, dword [esp + 0x2b8]
mov dword [esp + 0x7f], 0xe48040
mov dword [esp + 0x7c], 0x4010ec83
mov dword [esp + 0x78], 0x48e78948
mov dword [esp + 0x74], 0xce8948fc
lea edi, [esp + 0x98]
lea eax, [esp + 0x74]
mov ecx, 3
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xa4]
lea eax, [esp + 0x80]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x82]
mov byte [esp + 0xa6], al
mov dword [esp + 8], edx
cmp edx, 4
jb 0x43ec9d
mov dword [esp + 8], 4
lea ebx, [esp + 0xa7]
test edx, edx
je 0x43ef83
xor ebp, ebp
jmp 0x43ecc2
mov edx, dword [esp + 0x2b8]
inc ebp
cmp ebp, dword [esp + 8]
je 0x43ef28
cmp ebp, 3
ja case.default.0x43ecc7
jmp dword [ebp*4 + 0x443b00]
mov dword [esp], ebx
mov dword [esp + 0xc], 0x33c44a88
lea eax, [esp + 0x10]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0xc]
lea edi, [eax + 0xcc]
and edi, ecx
mov esi, edi
and esi, 0xffffffdd
mov ebx, edi
and ebx, 2
mov edx, edi
or edx, 0xfffffffd
inc edx
imul edx, esi
or edi, 2
imul edi, ebx
sub edx, edi
add ecx, eax
add ecx, edx
add ecx, 0x8fda12cc
mov edx, ecx
and edx, 3
xor ecx, 3
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0xc], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 7
jb 0x43ecf0
lea edx, [esp + 0xc]
mov eax, edx
xor ecx, ecx
mov ebx, dword [esp]
mov edi, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
mov ecx, 1
mov edi, ebx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0xe]
mov byte [ebx + 2], al
add ebx, 3
jmp 0x43ecb0
mov esi, ebx
mov dword [esp + 0xc], 0x79b0feb8
mov byte [esp + 0x10], 0x48
lea eax, [esp + 0x10]
mov word [eax + 5], 0
mov dword [eax + 1], 0
xor edi, edi
mov ch, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esp], ch
movzx ebx, byte [esp + edi + 0xc]
lea eax, [edi - 0x75827e6d]
mov ecx, eax
xor ecx, ebx
lea edx, [ecx + ecx]
not edx
add edx, ecx
mov ch, byte [esp]
and edx, eax
mov cl, ch
add cl, bl
and cl, 1
add cl, bl
add ebx, edi
mov eax, edx
or al, 0xfd
inc al
mov ah, dl
and ah, 0xbd
mul ah
or bl, 0xfe
add bl, cl
add bl, al
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub bl, al
movzx eax, bl
add eax, edi
add al, 0xb5
mov byte [esp + edi + 0xc], al
inc edi
inc ch
cmp edi, 0xb
jne 0x43edb0
lea eax, [esp + 0xc]
mov ebx, esi
mov edi, esi
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add ebx, 4
lea eax, [esp + 0x10]
mov edi, ebx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
jmp 0x43ecb0
mov dword [esp + 0xc], 0x1f64ae6c
mov byte [esp + 0x10], 0x34
lea eax, [esp + 0x10]
mov word [eax + 5], 0
mov dword [eax + 1], 0
mov eax, 0x65c635b6
mov ecx, 0x239ca49
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x65c635aa]
mov edi, ecx
and edi, 0x2014801
mov edx, eax
and edx, 0x65c235fe
or edx, edi
xor edx, esi
mov esi, edx
and esi, 0x71
add esi, esi
xor esi, 2
xor edx, 0x70
add edx, esi
inc dl
mov byte [esp + eax - 0x65c635aa], dl
inc eax
dec ecx
cmp eax, 0x65c635c1
jne 0x43ee70
lea eax, [esp + 0xc]
mov ecx, 1
mov edi, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add ebx, 4
lea eax, [esp + 0x10]
xor ecx, ecx
mov edi, ebx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
jmp 0x43ecb0
mov dword [esp + 0xc], 0xb548a48
mov byte [esp + 0x10], 4
mov dword [esp + 0x11], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [esp + eax + 0xc], al
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 9
jb 0x43eef0
lea eax, [esp + 0xc]
mov edi, ebx
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add ebx, 4
lea eax, [esp + 0x10]
mov edi, ebx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
jmp case.default.0x43ecc7
cmp edx, 3
jbe 0x43ef83
test dl, 1
je 0x43ef5c
mov eax, 0x444035
mov edx, 0x444035
mov edi, ebx
xor ecx, ecx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esp + 0x2b8]
mov ecx, 1
mov edi, ebx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
add ebx, 2
lea ecx, [edx*8]
mov eax, 0xffffffff
mov edi, 0xffffffff
cmp ecx, 0x7ffffffe
ja 0x43f5a5
dec edx
cmp edx, 4
jae 0x43f11d
mov dword [esp + 0xc], 0xff329ed0
lea ebp, [esp + 0x10]
mov byte [esp + 0x10], 0x1c
mov dword [esp + 0x11], 0
mov byte [esp + 0x15], 0
lea eax, [esp + 0xc]
mov ecx, 0xc3bab305
nop
nop
nop
nop
nop
nop
movzx esi, byte [eax]
lea edi, [ecx + 0x3c454d00]
and edi, esi
or esi, ecx
not esi
or esi, edi
mov edi, esi
and edi, 0x1d
xor esi, 0x1d
lea edx, [esi + edi*2]
inc dl
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0xc3bab2fb
jne 0x43efb0
lea eax, [esp + 0xc]
mov edi, ebx
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebx + 4]
mov edi, eax
xor ecx, ecx
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov dword [esp + 0x93], 0xc3fc8948
mov dword [esp + 0x90], 0x48d2ff41
mov dword [esp + 0x84], 0xba49c031
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 0x8c], ecx
lea edx, [esp + 0x84]
mov edi, eax
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x14]
lea eax, [esp + 0x94]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x96]
mov byte [ebx + 0x16], al
lea ecx, [esp + 0x98]
mov eax, ecx
neg eax
lea edi, [ebx + eax]
add edi, 0x17
sub ebx, ecx
mov dword [esp + 4], 0
add ebx, 0x71
mov dword [esp + 0x70], ebx
mov dword [esp + 0xc], 0x282b2a25
mov eax, 0x3c436847
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3c43683b]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x9d
mov byte [esp + eax - 0x3c43683b], cl
inc eax
cmp eax, 0x3c43684b
jne 0x43f0a0
mov eax, dword [esp + 0xc]
mov ecx, dword [0x44c3b8]
test ecx, ecx
je 0x43f2a8
xor edx, edx
mov esi, dword [0x44c3bc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x3e416e49
je 0x43f27a
inc edx
cmp ecx, edx
jne 0x43f0f0
jmp 0x43f2a8
mov edx, dword [esp]
dec edx
cmp edx, 3
jbe 0x43ef83
mov ebp, ebx
mov dword [esp], edx
lea edx, [edx*8]
cmp edx, 0x7e
ja 0x43f1d0
mov dword [esp + 0xc], 0x31d8a2e4
mov word [esp + 0x10], 0x13e0
lea eax, [esp + 0x14]
mov byte [eax], 0
mov word [eax - 2], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0xc]
mov ebx, eax
and ebx, 0xa
mov edi, ecx
xor edi, 0x2876fd45
add edi, ebx
xor edi, esi
mov esi, edi
and esi, 0x26
mov ebx, edi
xor ebx, 0xa6
lea ebx, [ebx + esi*2]
and edi, 1
xor ebx, 1
or ebx, edi
add ebx, edi
mov byte [esp + ecx + 0xc], bl
inc ecx
add eax, 2
cmp ecx, 9
jne 0x43f160
lea eax, [esp + 0xc]
mov ebx, ebp
mov edi, ebp
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [ebp + 4]
lea eax, [esp + 0x10]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x10]
mov byte [ebp + 4], al
mov byte [ebp + 3], dl
add ebx, 5
jmp 0x43f110
mov dword [esp + 0xc], 0x8f9496d0
mov dword [esp + 0x10], 0xd3020d0c
lea eax, [esp + 0x14]
mov word [eax + 4], 0
mov dword [eax], 0
xor ecx, ecx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0xc]
mov edi, eax
or edi, 0xfb81fb42
mov ebx, ecx
or ebx, 0xfb81fb42
add ebx, edi
lea edi, [ecx + ebx]
inc edi
xor edi, esi
lea esi, [edi + 0x167617b5]
mov ebx, 0x6989e84a
sub ebx, edi
or ebx, 1
add ebx, edi
lea edi, [ebx*2 + 0x2cec2f6c]
mov ebx, edi
and ebx, esi
xor esi, edi
xor esi, 1
lea ebx, [esi + ebx*2]
mov byte [esp + ecx + 0xc], bl
lea esi, [ecx + 1]
dec eax
mov ecx, esi
cmp esi, 0xe
jne 0x43f200
lea eax, [esp + 0xc]
mov ecx, 2
mov edi, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea ebx, [ebp + 8]
lea esi, [esp + 0x14]
xor ecx, ecx
mov edi, ebx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [ebp + 3], edx
jmp 0x43f110
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43f2a8
lea eax, [esp + 0x70]
lea edx, [esp + 4]
push 0x40
push 0x3000
push eax
push 0
push edx
push 0xffffffffffffffff
push 6
push ecx
push dword [0x44c3c0]
call fcn.0043ce20
add esp, 0x24
test eax, eax
js 0x43f570
mov dword [esp], edi
mov dword [esp + 0xc], 0x8f19bc8b
mov dword [esp + 0x10], 0x25adb689
mov dword [esp + 0x14], 0x12a68a9
mov dword [esp + 0x18], 0x353a3b38
mov dword [esp + 0x1c], 0x4bf6aa9c
mov dword [esp + 0x20], 0x962a07ad
mov dword [esp + 0x24], 0x154cd62e
mov dword [esp + 0x28], 0x50a0b45
mov dword [esp + 0x2c], 0x173e059f
mov dword [esp + 0x30], 0xa3020300
mov dword [esp + 0x34], 0xca883488
mov dword [esp + 0x38], 0xb476c785
mov dword [esp + 0x3c], 0x9d4b0b2
mov dword [esp + 0x40], 0x11568610
mov dword [esp + 0x44], 0x1a36156d
mov dword [esp + 0x48], 0x4b6bc2a8
mov dword [esp + 0x4c], 0x3dbf37c5
mov dword [esp + 0x50], 0x7d1f7f1c
mov dword [esp + 0x54], 0x3de57f7c
mov dword [esp + 0x58], 0xb7e12304
mov dword [esp + 0x5c], 0xb22eb717
mov dword [esp + 0x60], 0x3973134a
lea ebp, [esp + 0x64]
mov word [esp + 0x64], 0x4f30
mov dword [esp + 0x66], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0xc]
mov esi, eax
and esi, 0x12
mov edi, ecx
xor edi, 0x8fcb2109
add edi, esi
xor edi, edx
mov edx, 0x2d
sub edx, edi
or edx, 1
add edx, edi
xor edi, 1
lea edx, [edi + edx*2]
add dl, 0x78
mov byte [esp + ecx + 0xc], dl
inc ecx
add eax, 2
cmp ecx, 0x5e
jne 0x43f380
mov eax, dword [esp + 4]
lea esi, [esp + 0xc]
mov edi, eax
mov ecx, 0x16
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [eax + 0x58]
xor esi, esi
xor ecx, ecx
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
movzx ecx, byte [esp + 0x64]
mov byte [eax + 0x58], cl
mov eax, dword [esp + 4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x3f3e3981
mov dword [esp + 0x10], 0
xor ecx, ecx
nop
nop
nop
movzx ebp, byte [esp + ecx + 0xc]
mov eax, esi
and eax, 4
mov edi, ecx
xor edi, 0x1ddb928a
add edi, eax
mov ebx, edi
and ebx, ebp
mov edx, ebx
and edx, 0xffffff9d
mov eax, ebx
or eax, 0xfffffffd
inc eax
imul eax, edx
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
sub eax, ebx
add edi, ebp
add edi, eax
mov eax, edi
and eax, 0x4d
xor edi, 0x6ab6234d
lea eax, [edi + eax*2]
and edi, 1
xor eax, 1
lea eax, [eax + edi*2]
mov byte [esp + ecx + 0xc], al
inc ecx
add esi, 2
cmp ecx, 8
jne 0x43f400
mov ebx, dword [esp + 8]
add ebx, dword [esp + 0xc]
mov edx, dword [esp]
mov ecx, edx
shr ecx, 2
lea eax, [esp + 0x98]
mov edi, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
and eax, 0xfffffffc
add ebx, eax
lea esi, [esp + eax]
add esi, 0x98
mov ecx, edx
shr ecx, 1
and ecx, 1
mov eax, esi
mov edi, ebx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test dl, 1
je 0x43f4a7
and edx, 2
movzx eax, byte [esi + edx]
mov byte [ebx + edx], al
mov eax, dword [esp + 4]
mov dword [esp + 0xc], 0x93929129
mov dword [esp + 0x10], 0
xor ecx, ecx
xor ebx, ebx
lea esi, [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
and dl, 0xf8
add dl, cl
xor dl, byte [esi]
xor dl, 0xa4
add dl, 0xcc
mov byte [esi], dl
inc esi
add ebx, 2
inc cl
cmp ebx, 0x10
jne 0x43f4d0
mov ecx, dword [esp + 0xc]
add ecx, eax
push dword [esp + 0x2b4]
push ecx
call eax
mov edi, edx
mov dword [esp + 0x6c], 0
mov dword [esp + 0xc], 0x282b2a25
mov ecx, 0x3c436847
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x3c43683b]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x9d
mov byte [esp + ecx - 0x3c43683b], dl
inc ecx
cmp ecx, 0x3c43684b
jne 0x43f520
mov ecx, dword [0x44c3b8]
test ecx, ecx
je 0x43f5a5
mov edx, dword [esp + 0xc]
xor esi, esi
mov ebx, dword [0x44c3bc]
nop
nop
cmp dword [ebx + esi*8], 0x16194952
je 0x43f577
inc esi
cmp ecx, esi
jne 0x43f560
jmp 0x43f5a5
mov edi, eax
sar edi, 0x1f
jmp 0x43f5a5
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
je 0x43f5a5
lea edx, [esp + 0x6c]
lea esi, [esp + 4]
push 0x8000
push edx
push esi
push 0xffffffffffffffff
push 4
push ecx
push dword [0x44c3c0]
mov esi, eax
call fcn.0043ce20
mov eax, esi
add esp, 0x1c
mov edx, edi
add esp, 0x298
pop esi
pop edi
pop ebx
pop ebp
ret 0x10