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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2a4
mov edx, dword [esp + 0x2c4]
mov dword [esp + 0x8b], 0xe48040
mov dword [esp + 0x88], 0x4010ec83
mov dword [esp + 0x84], 0x48e78948
mov dword [esp + 0x80], 0xce8948fc
lea edi, [esp + 0xa4]
lea eax, [esp + 0x80]
mov ecx, 3
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xb0]
lea eax, [esp + 0x8c]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x8e]
mov byte [esp + 0xb2], al
mov eax, edx
mov ebp, edx
cmp edx, 4
jb 0x43d409
mov ebp, 4
lea edx, [esp + 0xb3]
test eax, eax
je 0x43d842
xor eax, eax
mov dword [esp], ebp
jmp 0x43d42c
mov ebp, dword [esp]
inc eax
cmp eax, ebp
je 0x43d672
cmp eax, 3
ja case.default.0x43d431
jmp dword [eax*4 + 0x442b00]
mov dword [esp + 8], 0xe9f8662c
mov byte [esp + 0xc], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edi, [ecx + ecx]
mov ebx, ecx
xor ebx, 0x27
lea ebx, [ebx + ecx*2]
xor bl, byte [esp + ecx + 8]
add bl, 0x3d
mov byte [esp + ecx + 8], bl
and edi, 2
mov ebx, ecx
xor ebx, edi
xor ebx, 1
and edi, ecx
lea ecx, [ebx + edi*2]
cmp ecx, 5
jb 0x43d450
lea esi, [esp + 8]
mov ebx, esi
mov edi, edx
xor ecx, ecx
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov ebx, esi
mov edi, edx
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
movzx ecx, byte [esp + 0xa]
mov byte [edx + 2], cl
add edx, 3
jmp case.default.0x43d431
mov dword [esp + 8], 0x635c1a24
mov byte [esp + 0xc], 0x9c
lea ecx, [esp + 0xc]
mov byte [ecx + 5], 0
mov dword [ecx + 1], 0
xor ecx, ecx
nop
nop
mov ebx, ecx
add bl, 0x64
xor bl, byte [esp + ecx + 8]
add bl, 0xc
mov byte [esp + ecx + 8], bl
inc ecx
cmp ecx, 0xa
jne 0x43d4d0
lea esi, [esp + 8]
mov edi, edx
mov ecx, 1
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
add edx, 4
lea esi, [esp + 0xc]
xor ecx, ecx
mov edi, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
jmp case.default.0x43d431
mov dword [esp + 8], 0x27dc96d4
mov byte [esp + 0xc], 0xc
lea ecx, [esp + 0xc]
mov byte [ecx + 5], 0
mov dword [ecx + 1], 0
xor ecx, ecx
nop
nop
movzx esi, byte [esp + ecx + 8]
mov edi, ecx
and edi, 2
mov ebx, ecx
xor ebx, 0x65e2af32
lea ebx, [ebx + edi*2]
mov edi, 0xd6e056f
sub edi, ebx
or edi, esi
mov ebp, 0xcfd7ff6f
sub ebp, ebx
and ebp, esi
not edi
or edi, ebp
mov esi, edi
and esi, 0xc5b8af35
xor edi, 0x45b8af35
lea esi, [edi + esi*2]
mov edi, esi
and edi, 0x5d
xor esi, 0xb987f5dd
lea ebx, [esi + edi*2]
and esi, 1
or ebx, 1
add ebx, esi
add bl, 0x23
mov byte [esp + ecx + 8], bl
mov esi, ecx
and esi, 1
or ecx, 0x5d200bc1
add ecx, esi
or ecx, 0xa2dff440
add ecx, 0x40
cmp ecx, 0xa
jb 0x43d530
lea esi, [esp + 8]
mov ecx, 1
mov edi, edx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
add edx, 4
lea esi, [esp + 0xc]
mov edi, edx
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
jmp 0x43d420
mov dword [esp + 8], 0xc9b8728c
mov byte [esp + 0xc], 0xc0
lea ecx, [esp + 0xc]
mov word [ecx + 5], 0
mov dword [ecx + 1], 0
mov ecx, 0xbf2dd1
mov edi, 0xfe81a46e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + ecx - 0xbf2dc9]
lea ebx, [edi + 0x17e5bc0]
and ebx, edi
not ebx
and ebx, ebp
or ebp, ecx
xor ebp, ebx
lea ebx, [ebp + 0xea]
mov esi, 0x15
sub esi, ebp
and ebp, 1
and esi, 0x62
and ebx, 0x9d
or ebx, esi
xor ebx, 0x63
lea ebx, [ebx + ebp*2]
mov byte [esp + ecx - 0xbf2dc9], bl
inc ecx
dec edi
cmp ecx, 0xbf2ddc
jne 0x43d600
lea esi, [esp + 8]
mov edi, edx
mov ecx, 1
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
add edx, 4
lea esi, [esp + 0xc]
mov edi, edx
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
jmp 0x43d420
mov eax, dword [esp + 0x2c4]
cmp eax, 3
jbe 0x43d842
test al, 1
je 0x43d6b0
mov eax, 0x443035
mov esi, 0x443035
xor ecx, ecx
mov edi, edx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, 1
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x2c4]
add edx, 2
mov ebp, eax
and eax, 0xfffffff7
mov ecx, ebp
and ecx, 8
mov ebx, ebp
or ebx, 8
imul ebx, ecx
xor ecx, 8
imul ecx, eax
add ebx, ecx
mov esi, 0xffffffff
mov edi, 0xffffffff
cmp ebx, 0x7ffffffe
ja 0x43dd51
dec ebp
cmp ebp, 4
jb 0x43d842
mov eax, ebp
jmp 0x43d6fc
mov eax, ebp
dec eax
cmp eax, 3
jbe 0x43d842
mov ebp, eax
lea eax, [eax*8]
cmp eax, 0x7e
ja 0x43d7a0
mov dword [esp + 8], 0xd9304e34
mov word [esp + 0xc], 0xe708
lea ecx, [esp + 0x10]
mov word [ecx + 2], 0
mov dword [ecx - 2], 0
xor ecx, ecx
mov esi, ecx
and esi, 2
xor esi, 0xcb7d25c2
mov edi, ecx
and edi, 0xd
sub edi, esi
mov esi, edi
and esi, 0x2b
xor edi, 0xab
lea ebx, [edi + esi*2]
add bl, 0xc2
xor bl, byte [esp + ecx + 8]
add bl, 0xa9
mov byte [esp + ecx + 8], bl
inc ecx
cmp ecx, 0xc
jne 0x43d730
lea esi, [esp + 8]
mov edi, edx
mov ecx, 1
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [edx + 4]
lea esi, [esp + 0xc]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
movzx ecx, byte [esp + 0xc]
mov byte [edx + 4], cl
mov byte [edx + 3], al
add edx, 5
jmp 0x43d6f0
mov dword [esp + 8], 0x6178723c
mov dword [esp + 0xc], 0x2de2e3e0
mov byte [esp + 0x10], 0xfc
lea ecx, [esp + 0x10]
mov byte [ecx + 5], 0
mov dword [ecx + 1], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 8]
lea edi, [ecx - 0x71007057]
and edi, esi
add edi, edi
add esi, ecx
add esi, 0x8eff8fa9
mov ebx, esi
sub ebx, edi
add esi, esi
mov edi, 2
sub edi, esi
not edi
and edi, 2
xor ebx, 1
add ebx, edi
add bl, 0xb2
mov byte [esp + ecx + 8], bl
mov esi, ecx
and esi, 1
xor ecx, 1
lea ecx, [ecx + esi*2]
cmp ecx, 0xe
jb 0x43d7d0
lea esi, [esp + 8]
mov ecx, 2
mov edi, edx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [edx + 8]
lea ebx, [esp + 0x10]
xor ecx, ecx
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [edx + 3], eax
mov edx, esi
jmp 0x43d6f0
mov ebx, dword [esp + 0x2b8]
mov dword [esp + 8], 0x31029a64
lea ebp, [esp + 0xc]
mov byte [esp + 0xc], 0x10
mov dword [esp + 0xd], 0
mov ecx, 0xc7b73d85
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x3848c283]
xor esi, ecx
mov edi, esi
and edi, 0x66
xor esi, 0x66
lea eax, [esi + edi*2]
inc al
mov byte [esp + ecx + 0x3848c283], al
inc ecx
cmp ecx, 0xc7b73d8e
jne 0x43d870
lea eax, [esp + 8]
mov edi, edx
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea esi, [edx + 4]
mov edi, esi
xor ecx, ecx
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov dword [esp + 0x9f], 0xc3fc8948
mov dword [esp + 0x9c], 0x48d2ff41
mov dword [esp + 0x90], 0xba49c031
mov dword [esp + 0x94], ebx
mov eax, dword [esp + 0x2bc]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x90]
mov edi, esi
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [edx + 0x14]
lea eax, [esp + 0xa0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0xa2]
mov byte [edx + 0x16], al
lea ecx, [esp + 0xa4]
mov eax, ecx
neg eax
lea ebx, [edx + eax]
add ebx, 0x17
sub edx, ecx
mov dword [esp + 4], 0
add edx, 0x71
mov dword [esp + 0x7c], edx
mov dword [esp + 8], 0xc8cbcacd
mov word [esp + 0xc], 0
mov eax, 3
mov ecx, 0x3ef55dcc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 5]
mov esi, eax
and esi, 0xb
xor esi, 0x12c5094b
mov edi, ecx
or edi, 0x2c307494
add edi, eax
add edi, 0xc10aa231
or edi, esi
xor edx, 0xd3cf8b6b
mov esi, edx
and esi, edi
add edx, edi
add esi, esi
sub edx, esi
inc dl
mov byte [esp + eax + 5], dl
inc eax
dec ecx
cmp eax, 9
jne 0x43d960
mov esi, dword [esp + 8]
mov eax, dword [0x44ac38]
test eax, eax
je 0x43da00
xor ecx, ecx
mov edx, dword [0x44ac3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3e416e49
je 0x43d9d0
inc ecx
cmp eax, ecx
jne 0x43d9c0
jmp 0x43da00
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43da00
lea ecx, [esp + 0x7c]
lea edx, [esp + 4]
push 0x40
push 0x3000
push ecx
push 0
push edx
push 0xffffffffffffffff
push 6
push eax
push dword [0x44ac40]
call fcn.0043b650
add esp, 0x24
mov esi, eax
test esi, esi
js 0x43dd20
mov dword [esp + 0x6c], ebx
mov dword [esp + 8], 0x3381e43f
mov dword [esp + 0xc], 0x6515e231
mov dword [esp + 0x10], 0x997e20e1
mov dword [esp + 0x14], 0x75767770
mov dword [esp + 0x18], 0x57bafe2c
mov dword [esp + 0x1c], 0xf27693fd
mov dword [esp + 0x20], 0x85c44a9a
mov dword [esp + 0x24], 0x858687b5
mov dword [esp + 0x28], 0x9b628d0b
mov dword [esp + 0x2c], 0xe78e8f88
mov dword [esp + 0x30], 0x46004c00
mov dword [esp + 0x34], 0xf4825315
mov dword [esp + 0x38], 0x915cf8f6
mov dword [esp + 0x3c], 0xb9a21298
mov dword [esp + 0x40], 0x96ea8d9d
mov dword [esp + 0x44], 0x7fa7fe60
mov dword [esp + 0x48], 0xed63fbc5
mov dword [esp + 0x4c], 0xad8bab8c
mov dword [esp + 0x50], 0x8d3db3ac
mov dword [esp + 0x54], 0x7339ff94
mov dword [esp + 0x58], 0x7ef27b93
mov dword [esp + 0x5c], 0x91bf9f56
lea eax, [esp + 0x60]
mov dword [esp + 0x68], eax
mov word [esp + 0x60], 0xc398
mov word [esp + 0x66], 0
mov dword [esp + 0x62], 0
mov eax, 0xe0cd38e7
mov edx, 0x5d9855c7
mov edi, 0x7ccb1c63
mov dword [esp], 0x1f32c79c
mov dword [esp + 0x74], edx
movzx ebx, byte [esp + eax + 0x1f32c721]
mov ebp, eax
and ebp, ebx
lea edx, [ebp*2]
mov dword [esp + 0x70], edx
mov ecx, ebx
sub ecx, edx
add ecx, edi
sub edx, ebx
mov esi, dword [esp]
add edx, esi
or edx, 1
xor ecx, 1
add ecx, edx
mov edx, dword [esp + 0x74]
lea ecx, [ecx + ebx*2]
add ebx, edi
sub ebx, dword [esp + 0x70]
and ebx, 0xfe
sub ecx, ebx
shl ebp, 2
sub ecx, ebp
add ecx, edx
mov byte [esp + eax + 0x1f32c721], cl
inc eax
add edx, 2
inc edi
dec esi
mov dword [esp], esi
cmp eax, 0xe0cd3947
jne 0x43daf0
mov eax, dword [esp + 4]
lea edx, [esp + 8]
mov edi, eax
mov ecx, 0x16
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [eax + 0x58]
xor ecx, ecx
mov edx, dword [esp + 0x68]
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 + 4]
mov dword [esp + 8], 0x2126278f
mov word [esp + 0xc], 0
mov ecx, 0xdae64a09
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x2519b5ff]
mov esi, ecx
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
lea esi, [edx + edx]
mov edi, esi
and edi, 0xa4
xor edx, 0xd2
add edx, edi
and esi, 2
xor edx, 1
add edx, esi
mov byte [esp + ecx + 0x2519b5ff], dl
inc ecx
cmp ecx, 0xdae64a0f
jne 0x43dba0
add eax, dword [esp + 8]
mov ebx, dword [esp + 0x6c]
mov ecx, ebx
shr ecx, 2
lea edx, [esp + 0xa4]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, ebx
and ecx, 0xfffffffc
add eax, ecx
lea edx, [esp + ecx]
add edx, 0xa4
mov ecx, ebx
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 0x43dc2a
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
mov eax, dword [esp + 4]
mov dword [esp + 8], 0x393a3b9b
mov byte [esp + 0xc], 0
xor ecx, ecx
nop
nop
nop
movzx edx, byte [esp + ecx + 8]
lea esi, [ecx + 0x238d5ecb]
xor esi, edx
mov edx, esi
or edx, 8
add edx, esi
not esi
or esi, 8
add edx, esi
add dl, 2
mov byte [esp + ecx + 8], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 5
jb 0x43dc40
mov ecx, dword [esp + 8]
add ecx, eax
push dword [esp + 0x2c0]
push ecx
call eax
mov esi, eax
mov edi, edx
mov dword [esp + 0x78], 0
mov dword [esp + 8], 0xc8cbcacd
mov word [esp + 0xc], 0
mov eax, 3
mov ecx, 0x3ef55dcc
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 5]
mov ebx, eax
and ebx, 0xb
xor ebx, 0x12c5094b
mov ebp, ecx
or ebp, 0x2c307494
add ebp, eax
add ebp, 0xc10aa231
or ebp, ebx
xor edx, 0xd3cf8b6b
mov ebx, edx
and ebx, ebp
add edx, ebp
add ebx, ebx
sub edx, ebx
inc dl
mov byte [esp + eax + 5], dl
inc eax
dec ecx
cmp eax, 9
jne 0x43dcb0
mov eax, dword [0x44ac38]
test eax, eax
je 0x43dd51
mov ecx, dword [esp + 8]
xor edx, edx
mov ebx, dword [0x44ac3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x16194952
je 0x43dd27
inc edx
cmp eax, edx
jne 0x43dd10
jmp 0x43dd51
mov edi, esi
sar edi, 0x1f
jmp 0x43dd51
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x43dd51
lea ecx, [esp + 0x78]
lea edx, [esp + 4]
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 4
push eax
push dword [0x44ac40]
call fcn.0043b650
add esp, 0x1c
mov eax, esi
mov edx, edi
add esp, 0x2a4
pop esi
pop edi
pop ebx
pop ebp
ret 0x10