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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x298
mov ebx, 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 + 4], ebx
cmp ebx, 4
jb 0x43bbdd
mov dword [esp + 4], 4
lea esi, [esp + 0xa7]
test ebx, ebx
je 0x43bfc9
xor ebp, ebp
jmp 0x43bbfb
inc ebp
cmp ebp, dword [esp + 4]
je 0x43be42
cmp ebp, 3
ja case.default.0x43bc00
jmp dword [ebp*4 + 0x4406c8]
mov dword [esp + 0x68], esi
mov dword [esp + 8], 0xc1f0728c
mov ecx, 0xd0a47dd1
mov edi, 0x2f5b822e
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x2f5b8237]
mov edx, ebx
not edx
lea eax, [edi - 0x2f5b8200]
or eax, edi
or eax, edx
mov esi, eax
not esi
and eax, 2
mov edx, esi
and edx, 0xffffffd5
imul edx, eax
mov eax, esi
and eax, 2
or esi, 2
imul esi, eax
add esi, edx
mov edx, esi
xor edx, ecx
and esi, edi
add esi, esi
sub edx, esi
add edx, ebx
mov eax, edx
and eax, 1
or edx, 1
add edx, eax
add dl, 0xea
mov byte [esp + ecx + 0x2f5b8237], dl
inc ecx
dec edi
cmp ecx, 0xd0a47dd5
jne 0x43bc20
lea edx, [esp + 8]
mov eax, edx
mov esi, dword [esp + 0x68]
mov edi, esi
xor ecx, ecx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
mov ecx, 1
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0xa]
mov byte [esi + 2], al
add esi, 3
mov ebx, dword [esp + 0x2b8]
jmp case.default.0x43bc00
mov dword [esp + 0x68], esi
mov dword [esp + 8], 0x19e0a6e8
mov byte [esp + 0xc], 0x28
mov dword [esp + 0xd], 0
mov ecx, 0x98747777
nop
nop
movzx edi, byte [esp + ecx + 0x678b8891]
lea esi, [ecx + 0x678b8900]
or esi, ecx
and esi, edi
mov eax, esi
and eax, 2
mov edx, esi
or edx, 0xfffffffd
inc edx
mov ebx, esi
and ebx, 0xfffffffd
imul ebx, edx
or esi, 2
imul esi, eax
add ebx, edi
sub ebx, esi
add ebx, ecx
mov edx, ebx
and edx, 0x2c
add edx, edx
xor ebx, 0x53
sub edx, ebx
mov byte [esp + ecx + 0x678b8891], dl
inc ecx
cmp ecx, 0x98747780
jne 0x43bce0
lea eax, [esp + 8]
mov esi, dword [esp + 0x68]
mov edi, esi
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add esi, 4
lea eax, [esp + 0xc]
mov edi, esi
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ebx, dword [esp + 0x2b8]
jmp case.default.0x43bc00
mov dword [esp + 8], 0x1158a668
mov byte [esp + 0xc], 0x28
lea eax, [esp + 0xc]
mov word [eax + 5], 0
mov dword [eax + 1], 0
xor ecx, ecx
mov eax, ecx
add al, 0x37
xor al, byte [esp + ecx + 8]
add al, 0xed
mov byte [esp + ecx + 8], al
inc ecx
cmp ecx, 0xb
jne 0x43bd80
lea eax, [esp + 8]
mov ecx, 1
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add esi, 4
lea eax, [esp + 0xc]
mov edi, esi
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
jmp case.default.0x43bc00
mov dword [esp + 8], 0x1bec9ad8
mov byte [esp + 0xc], 0x1c
lea eax, [esp + 0xc]
mov word [eax + 5], 0
mov dword [eax + 1], 0
mov ecx, 0xebe849c4
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0x1417b644]
xor eax, ecx
mov edx, eax
and edx, 0xc1c00025
xor eax, 0x51c69025
lea edx, [eax + edx*2]
add edx, 0x64768f2b
mov eax, edx
xor eax, 0x25
and edx, 0x5a
add edx, edx
sub edx, eax
inc dl
mov byte [esp + ecx + 0x1417b644], dl
inc ecx
cmp ecx, 0xebe849cf
jne 0x43bde0
lea eax, [esp + 8]
mov ecx, 1
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add esi, 4
lea eax, [esp + 0xc]
xor ecx, ecx
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
jmp case.default.0x43bc00
cmp ebx, 3
jbe 0x43bfc9
test bl, 1
je 0x43be73
mov eax, 0x440be2
mov edx, 0x440be2
mov edi, esi
xor ecx, ecx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, 1
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
add esi, 2
lea ecx, [ebx*8]
mov eax, 0xffffffff
mov edx, 0xffffffff
cmp ecx, 0x7ffffffe
ja 0x43c507
mov ebp, esi
dec ebx
cmp ebx, 4
jae 0x43beb2
jmp 0x43bfcb
mov ebx, esi
mov eax, esi
not eax
lea ebx, [eax + esi*2]
cmp ebx, 3
jbe 0x43bfcb
mov esi, ebx
lea ebx, [ebx*8]
cmp ebx, 0x7e
ja 0x43bf40
mov dword [esp + 8], 0x734c8a48
mov word [esp + 0xc], 0x6d3c
mov dword [esp + 0xe], 0
mov ecx, 0x3c
movzx eax, byte [esp + ecx - 0x34]
lea edx, [ecx - 0x3f0f6e00]
mov edi, ecx
and edi, eax
or edx, eax
xor edx, edi
mov eax, edx
and eax, 0x53
xor edx, 0xd3
lea eax, [edx + eax*2]
inc al
mov byte [esp + ecx - 0x34], al
inc ecx
cmp ecx, 0x46
jne 0x43bee0
lea eax, [esp + 8]
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 + 0xc]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0xc]
mov byte [ebp + 4], al
mov byte [ebp + 3], bl
add ebp, 5
jmp 0x43bea0
mov dword [esp + 8], 0x89909ed4
mov dword [esp + 0xc], 0xd5060708
mov byte [esp + 0x10], 4
lea eax, [esp + 0x10]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov ecx, 0xfb3fe043
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x4c01fc5]
xor edx, ecx
mov edi, 2
sub edi, edx
sub edi, edx
not edi
and edi, 2
xor edx, 1
add edx, edi
add dl, 0xb0
mov byte [esp + ecx + 0x4c01fc5], dl
inc ecx
cmp ecx, 0xfb3fe051
jne 0x43bf70
lea eax, [esp + 8]
mov ecx, 2
mov edi, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [ebp + 8]
lea eax, [esp + 0x10]
xor ecx, ecx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp + 3], ebx
mov ebp, edx
jmp 0x43bea0
mov ebp, esi
mov dword [esp + 8], 0x3162ca04
lea ebx, [esp + 0xc]
mov byte [esp + 0xc], 0x50
mov dword [esp + 0xd], 0
mov dword [esp + 0x10], 0
xor ecx, ecx
nop
nop
mov eax, ecx
and eax, 3
xor eax, 0x93
mov edx, ecx
and edx, 0xc
sub edx, eax
xor dl, byte [esp + ecx + 8]
add dl, 0xdf
mov byte [esp + ecx + 8], dl
inc ecx
cmp ecx, 0xc
jne 0x43bff0
lea eax, [esp + 8]
mov edi, ebp
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [ebp + 4]
mov edi, edx
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x93], 0xc3fc8948
mov dword [esp + 0x90], 0x48d2ff41
mov dword [esp + 0x84], 0xba49c031
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x84]
mov edi, edx
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [ebp + 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 [ebp + 0x16], al
add ebp, 0x17
mov eax, ebp
lea ecx, [esp + 0x98]
xor eax, ecx
not ecx
and ecx, ebp
add ecx, ecx
sub ecx, eax
mov ebp, ecx
lea eax, [ecx + 0x5a]
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp], 0
mov dword [esp + 8], 0x8c8d8a8b
mov dword [esp + 0xc], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 8]
mov esi, eax
and esi, 4
xor esi, 0x3abbf034
mov ecx, eax
and ecx, 3
sub ecx, esi
lea esi, [ecx - 0x6872886a]
mov edi, 0x28728869
sub edi, ecx
and edi, 0x212e7088
mov ebx, esi
and ebx, 0x8810577
or ebx, edi
xor ebx, edx
xor ebx, 0x757ef288
add ecx, 0x96
and ecx, edx
or ecx, ebx
and esi, edx
sub ecx, esi
mov edx, 0xea
sub edx, ecx
or edx, 1
mov esi, ecx
or esi, 0xfe
lea ecx, [esi + ecx*2]
add ecx, edx
add cl, 0x2d
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 8
jne 0x43c0e0
mov eax, dword [esp + 8]
mov esi, dword [0x44a4ac]
test esi, esi
je 0x43c1ac
xor ecx, ecx
mov edx, dword [0x44a4b0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3e416e49
je 0x43c180
inc ecx
cmp esi, ecx
jne 0x43c170
jmp 0x43c1ac
mov esi, dword [edx + ecx*8 + 4]
cmp esi, eax
je 0x43c1ac
lea ecx, [esp + 0x70]
mov edx, esp
push 0x40
push 0x3000
push ecx
push 0
push edx
push 0xffffffffffffffff
push 0x18
push esi
push dword [0x44a4b4]
call fcn.00439880
add esp, 0x24
test eax, eax
js 0x43c4d0
mov dword [esp + 8], 0x7def087d
mov dword [esp + 0xc], 0xb7233643
mov dword [esp + 0x10], 0xd3be7c33
mov dword [esp + 0x14], 0xa7a6a5a4
mov dword [esp + 0x18], 0x99e22248
mov dword [esp + 0x1c], 0x26a6c93f
mov dword [esp + 0x20], 0xa778e6da
mov dword [esp + 0x24], 0xb7b6b587
mov dword [esp + 0x28], 0xa5cab329
mov dword [esp + 0x2c], 0xb14e4d4c
mov dword [esp + 0x30], 0x1adc20dc
mov dword [esp + 0x34], 0xa06a19c7
mov dword [esp + 0x38], 0x5b00a4a6
mov dword [esp + 0x3c], 0x639ac65c
mov dword [esp + 0x40], 0x6a82635f
mov dword [esp + 0x44], 0x3951ba14
mov dword [esp + 0x48], 0x8f0d81b7
mov dword [esp + 0x4c], 0x6f4d7150
mov dword [esp + 0x50], 0xaff36968
mov dword [esp + 0x54], 0x25ffbd58
mov dword [esp + 0x58], 0x22ba2141
mov dword [esp + 0x5c], 0x4b795d06
lea edx, [esp + 0x60]
mov word [esp + 0x60], 0x7944
mov byte [esp + 0x66], 0
mov dword [esp + 0x62], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0x5c
xor cl, byte [esp + eax + 8]
add cl, 0x34
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 0x5f
jne 0x43c280
mov eax, dword [esp]
lea esi, [esp + 8]
mov edi, eax
mov ecx, 0x16
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [eax + 0x58]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x60]
mov byte [eax + 0x58], cl
mov eax, dword [esp]
mov dword [esp + 8], 0x292a2bfb
mov dword [esp + 0xc], 0
mov ecx, 0xc9c627c7
mov edx, 0x38
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x3639d841]
mov esi, edx
xor esi, ecx
and esi, edi
xor esi, ecx
mov edi, esi
xor edi, 0xf0dec6e4
and esi, 0x900211b
add esi, esi
sub esi, edi
mov edi, esi
and edi, 1
xor esi, 1
lea ebx, [esi + edi*2]
mov byte [esp + ecx + 0x3639d841], bl
inc ecx
dec edx
cmp ecx, 0xc9c627cf
jne 0x43c2e0
add eax, dword [esp + 8]
mov ebx, ebp
mov ecx, ebp
shr ecx, 2
lea edx, [esp + 0x98]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, ebp
and ecx, 0xfffffffc
add eax, ecx
lea edx, [esp + ecx]
add edx, 0x98
mov ecx, ebp
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x43c369
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
mov eax, dword [esp]
mov dword [esp + 8], 0x595a5bab
mov word [esp + 0xc], 0
xor ecx, ecx
nop
nop
nop
movzx edx, byte [esp + ecx + 8]
lea esi, [ecx + 0x12d90a0f]
mov edi, 0xf0
sub edi, ecx
and edi, 0x91
mov ebx, esi
and ebx, 0xe
or ebx, edi
xor ebx, 0x91
and ebx, edx
or esi, edx
lea edx, [ebx + ebx]
not edx
add edx, ebx
and edx, esi
mov esi, edx
xor esi, 0x5e3d324b
mov edi, edx
or edi, 0xc008b4
and edi, esi
lea esi, [edx + edx]
and esi, 0x1801168
mov ebx, edx
sub ebx, esi
lea ebx, [ebx + edi*2]
add ebx, 0xa1c2cdb4
and edx, 1
xor ebx, 1
or ebx, edx
add ebx, edx
mov byte [esp + ecx + 8], bl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 6
jb 0x43c380
mov ecx, dword [esp + 8]
add ecx, eax
push dword [esp + 0x2b4]
push ecx
call eax
mov dword [esp + 4], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 8], 0x8c8d8a8b
mov dword [esp + 0xc], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 8]
mov ebx, eax
and ebx, 4
xor ebx, 0x3abbf034
mov ecx, eax
and ecx, 3
sub ecx, ebx
lea esi, [ecx - 0x6872886a]
mov ebp, 0x28728869
sub ebp, ecx
and ebp, 0x212e7088
mov ebx, esi
and ebx, 0x8810577
or ebx, ebp
xor ebx, edi
xor ebx, 0x757ef288
add ecx, 0x96
and ecx, edi
or ecx, ebx
and esi, edi
sub ecx, esi
mov esi, 0xea
sub esi, ecx
or esi, 1
mov edi, ecx
or edi, 0xfe
lea ecx, [edi + ecx*2]
add ecx, esi
add cl, 0x2d
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 8
jne 0x43c430
mov eax, dword [0x44a4ac]
test eax, eax
je 0x43c503
mov ecx, dword [esp + 8]
xor edi, edi
mov ebx, dword [0x44a4b0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x16194952
je 0x43c4d7
inc edi
cmp eax, edi
jne 0x43c4c0
jmp 0x43c503
mov edx, eax
sar edx, 0x1f
jmp 0x43c507
mov eax, dword [ebx + edi*8 + 4]
cmp eax, ecx
je 0x43c503
lea ecx, [esp + 0x6c]
mov esi, esp
push 0x8000
push ecx
push esi
push 0xffffffffffffffff
push 0x10
push eax
push dword [0x44a4b4]
mov edi, edx
call fcn.00439880
mov edx, edi
add esp, 0x1c
mov eax, dword [esp + 4]
add esp, 0x298
pop esi
pop edi
pop ebx
pop ebp
ret 0x10