Function at 0x43d840
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 ebp, edx
cmp edx, 4
jb 0x43d8b8
mov ebp, 4
lea esi, [esp + 0xa7]
test edx, edx
je 0x43dc72
xor eax, eax
mov dword [esp], ebp
jmp 0x43d8d9
inc eax
cmp eax, ebp
je 0x43dade
cmp eax, 3
ja case.default.0x43d8de
jmp dword [eax*4 + 0x442b00]
mov dword [esp + 8], 0xd9c8469c
mov dword [esp + 0xc], 0
mov ecx, 0xaaefc5cf
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x55103a39]
mov ebp, ecx
and ebp, edi
or edi, ecx
lea ebx, [ebp*2]
not ebx
add ebx, ebp
and ebx, edi
add bl, 0xf5
mov byte [esp + ecx + 0x55103a39], bl
inc ecx
cmp ecx, 0xaaefc5d7
jne 0x43d900
lea edx, [esp + 8]
mov ebx, edx
mov edi, esi
xor ecx, ecx
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov ebx, edx
mov edi, esi
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
movzx ecx, byte [esp + 0xa]
mov byte [esi + 2], cl
add esi, 3
mov ebp, dword [esp]
jmp case.default.0x43d8de
mov dword [esp + 0x68], esi
mov dword [esp + 8], 0x237cba64
mov byte [esp + 0xc], 0x3c
mov dword [esp + 0xd], 0
mov ecx, 0x34
mov edi, 0x156f8fcb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + ecx - 0x2c]
lea esi, [ecx - 0x156f9000]
mov edx, ecx
and edx, ebp
mov ebx, ebp
not ebx
and ebx, esi
xor esi, ebp
sub ebx, esi
add ebx, edi
or ebx, edx
mov dl, 0xfb
sub dl, bl
mov byte [esp + ecx - 0x2c], dl
inc ecx
dec edi
cmp ecx, 0x3d
jne 0x43d9a0
lea edx, [esp + 8]
mov esi, dword [esp + 0x68]
mov edi, esi
mov ecx, 1
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add esi, 4
lea edx, [esp + 0xc]
mov edi, esi
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ebp, dword [esp]
jmp case.default.0x43d8de
mov dword [esp + 8], 0x99a062a0
mov byte [esp + 0xc], 0xf0
lea ecx, [esp + 0xc]
mov word [ecx + 5], 0
mov dword [ecx + 1], 0
mov ecx, 0x8f32d155
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x70cd2eb3]
mov edx, ebx
and edx, ecx
add dl, dl
sub bl, dl
movzx edx, bl
add edx, ecx
add dl, 0x57
mov byte [esp + ecx + 0x70cd2eb3], dl
inc ecx
cmp ecx, 0x8f32d160
jne 0x43da30
lea edx, [esp + 8]
mov edi, esi
mov ecx, 1
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add esi, 4
lea edx, [esp + 0xc]
mov edi, esi
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
jmp case.default.0x43d8de
mov dword [esp + 8], 0x17c496d0
mov byte [esp + 0xc], 0x1c
lea ecx, [esp + 0xc]
mov word [ecx + 5], 0
mov dword [ecx + 1], 0
xor ecx, ecx
mov ebx, ecx
add bl, 0xfa
xor bl, byte [esp + ecx + 8]
add bl, 0x1e
mov byte [esp + ecx + 8], bl
inc ecx
cmp ecx, 0xb
jne 0x43daa0
lea ebx, [esp + 8]
mov ecx, 1
mov edi, esi
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
add esi, 4
lea ebx, [esp + 0xc]
mov edi, esi
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
jmp case.default.0x43d8de
mov eax, dword [esp + 0x2b8]
cmp eax, 3
jbe 0x43dc72
test al, 1
je 0x43db1c
mov eax, 0x443035
mov edx, 0x443035
mov edi, esi
xor ecx, ecx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, esi
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x2b8]
add esi, 2
mov ecx, esi
mov ebp, eax
lea eax, [eax*8]
mov esi, 0xffffffff
mov edx, 0xffffffff
cmp eax, 0x7ffffffe
ja 0x43e184
dec ebp
cmp ebp, 4
jb 0x43dc70
lea ebx, [esp + 0x10]
mov esi, ecx
jmp 0x43db5a
dec ebp
cmp ebp, 3
jbe 0x43dc72
lea eax, [ebp*8]
mov dword [esp], eax
cmp eax, 0x7e
ja 0x43dbf0
mov dword [esp + 8], 0x93bcfab8
mov word [esp + 0xc], 0x7dac
mov byte [ebx + 2], 0
mov dword [ebx - 2], 0
mov ecx, 0x54247594
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x5424758c]
xor eax, ecx
add eax, 0x5b49b41b
mov edx, eax
and edx, 0x76
xor eax, 0x76
lea eax, [eax + edx*2]
add al, 0x8b
mov byte [esp + ecx - 0x5424758c], al
inc ecx
cmp ecx, 0x5424759f
jne 0x43db90
lea eax, [esp + 8]
mov edi, esi
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esi + 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 [esi + 4], al
mov eax, dword [esp]
mov byte [esi + 3], al
add esi, 5
jmp 0x43db50
mov dword [esp + 8], 0x43444a08
mov dword [esp + 0xc], 0x77c6c5c4
mov byte [esp + 0x10], 0xc8
mov dword [ebx + 4], 0
mov dword [ebx + 1], 0
mov ecx, 0x30
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x28]
mov ebx, eax
not ebx
or ebx, ecx
add bl, bl
add bl, al
neg bl
movzx eax, bl
add eax, ecx
add al, 0xe
mov byte [esp + ecx - 0x28], al
inc ecx
cmp ecx, 0x40
jne 0x43dc20
lea eax, [esp + 8]
mov ecx, 2
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, esi
add esi, 8
lea ebx, [esp + 0x10]
mov eax, ebx
mov edi, esi
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp]
mov dword [edx + 3], eax
jmp 0x43db50
mov esi, ecx
mov ebx, esi
mov dword [esp + 8], 0x69be1654
lea ebp, [esp + 0xc]
mov byte [esp + 0xc], 0x88
mov dword [esp + 0xd], 0
mov word [esp + 0x11], 0
xor eax, eax
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi + 8]
mov edx, esi
xor edx, 0x3735671d
mov ecx, eax
and ecx, 4
sub ecx, edx
mov edx, ecx
not edx
or edx, edi
not edi
or edi, ecx
xor edi, edx
mov ecx, edi
and ecx, 1
xor edi, 1
lea ecx, [edi + ecx*2]
add cl, 0x90
mov byte [esp + esi + 8], cl
inc esi
add eax, 2
cmp esi, 0xb
jne 0x43dca0
lea eax, [esp + 8]
mov edx, ebx
mov edi, ebx
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea esi, [ebx + 4]
xor ecx, ecx
mov edi, esi
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 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, esi
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
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
add ebx, eax
add ebx, 0x17
sub edx, ecx
add edx, 0x71
mov dword [esp + 0x70], edx
xor eax, eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x787b7a7d
mov byte [esp + 0xc], 0
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 8]
mov edx, eax
xor edx, 0x6a48e314
mov esi, eax
or esi, 3
and esi, edx
mov edx, eax
xor edx, 0x95b71ceb
lea edx, [edx + esi*2]
mov esi, edx
and esi, ecx
add ecx, edx
mov edi, ecx
not edi
lea esi, [edi + esi*2]
and esi, edx
mov edi, esi
and edi, 0xfffffffd
mov ebp, esi
and ebp, 2
mov edx, esi
or edx, 0xfffffffd
inc edx
imul edx, edi
or esi, 2
imul esi, ebp
sub edx, esi
add edx, ecx
mov ecx, edx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
add cl, 0x68
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 5
jne 0x43dda0
mov esi, dword [esp + 8]
mov eax, dword [0x44b030]
test eax, eax
je 0x43de60
xor ecx, ecx
mov edx, dword [0x44b034]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3e416e49
je 0x43de30
inc ecx
cmp eax, ecx
jne 0x43de20
jmp 0x43de60
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43de60
lea ecx, [esp + 0x70]
lea edx, [esp + 4]
push 0x40
push 0x3000
push ecx
push 0
push edx
push 0xffffffffffffffff
push 6
push eax
push dword [0x44b038]
call fcn.0043b600
add esp, 0x24
mov esi, eax
test esi, esi
js 0x43e150
mov dword [esp + 8], 0x4ff91c4b
mov dword [esp + 0xc], 0xa56d1649
mov dword [esp + 0x10], 0xc1aa6829
mov dword [esp + 0x14], 0xd5dadbd8
mov dword [esp + 0x18], 0x8b162a7c
mov dword [esp + 0x1c], 0x36aac72d
mov dword [esp + 0x20], 0xb58cf6ee
mov dword [esp + 0x24], 0xc5cacb85
mov dword [esp + 0x28], 0xb7dec53f
mov dword [esp + 0x2c], 0xa3c2c3c0
mov dword [esp + 0x30], 0xac814c8
mov dword [esp + 0x34], 0x945607c5
mov dword [esp + 0x38], 0x49f49092
mov dword [esp + 0x3c], 0x7176c630
mov dword [esp + 0x40], 0x7a96752d
mov dword [esp + 0x44], 0xb2b82e8
mov dword [esp + 0x48], 0x9d1f9785
mov dword [esp + 0x4c], 0x1d7f5f7c
mov dword [esp + 0x50], 0x5de51f1c
mov dword [esp + 0x54], 0xd7e1a344
mov dword [esp + 0x58], 0xd2aed777
mov dword [esp + 0x5c], 0x5913730a
lea edx, [esp + 0x60]
mov word [esp + 0x60], 0xf50
mov byte [esp + 0x64], 0
mov word [esp + 0x62], 0
mov eax, 0x28377c89
mov esi, 0x506ef912
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
xor edi, 0x30
mov ecx, esi
and ecx, 0x9e
sub ecx, edi
xor cl, byte [esp + eax - 0x28377c81]
add cl, 0x43
mov byte [esp + eax - 0x28377c81], cl
inc eax
add esi, 2
cmp eax, 0x28377ce6
jne 0x43df40
mov eax, dword [esp + 4]
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 + 4]
mov dword [esp + 8], 0xcfcec961
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov esi, 0x358865b2
mov edx, 0xca779a4d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi - 0x358865aa]
mov ebp, edx
and ebp, 0x8a64100c
mov ecx, esi
and ecx, 0x31804433
or ecx, ebp
xor ecx, edi
lea edi, [ecx + ecx]
and edi, 0xa
xor edi, 8
xor ecx, 9
add ecx, edi
inc cl
mov byte [esp + esi - 0x358865aa], cl
inc esi
dec edx
cmp esi, 0x358865b9
jne 0x43dfc0
add eax, dword [esp + 8]
mov ecx, ebx
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, ebx
and ecx, 0xfffffffc
add eax, ecx
lea edx, [esp + ecx]
add edx, 0x98
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 0x43e046
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
mov eax, dword [esp + 4]
mov dword [esp + 8], 0xcfcec961
mov esi, 0xd23d5732
mov edx, 0x2dc2a8cd
nop
nop
nop
nop
movzx ebx, byte [esp + esi + 0x2dc2a8d6]
mov ecx, esi
and ecx, ebx
add ecx, ecx
sub ecx, ebx
add ecx, edx
and ecx, esi
add cl, cl
sub bl, cl
movzx ecx, bl
add ecx, esi
add cl, 6
mov byte [esp + esi + 0x2dc2a8d6], cl
inc esi
dec edx
cmp esi, 0xd23d5736
jne 0x43e060
mov ecx, dword [esp + 8]
add ecx, eax
push dword [esp + 0x2b4]
push ecx
call eax
mov esi, eax
mov dword [esp], edx
mov dword [esp + 0x6c], 0
mov dword [esp + 8], 0x787b7a7d
mov byte [esp + 0xc], 0
xor eax, eax
nop
nop
nop
movzx ecx, byte [esp + eax + 8]
mov edx, eax
xor edx, 0x6a48e314
mov ebx, eax
or ebx, 3
and ebx, edx
mov edx, eax
xor edx, 0x95b71ceb
lea edx, [edx + ebx*2]
mov ebx, edx
and ebx, ecx
add ecx, edx
mov ebp, ecx
not ebp
lea ebx, [ebx*2]
add ebx, ebp
and ebx, edx
mov ebp, ebx
and ebp, 0xfffffffd
mov edi, ebx
and edi, 2
mov edx, ebx
or edx, 0xfffffffd
inc edx
imul edx, ebp
or ebx, 2
imul ebx, edi
sub edx, ebx
add edx, ecx
mov ecx, edx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
add cl, 0x68
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 5
jne 0x43e0c0
mov eax, dword [0x44b030]
test eax, eax
je 0x43e181
mov ecx, dword [esp + 8]
xor edx, edx
mov ebx, dword [0x44b034]
nop
nop
cmp dword [ebx + edx*8], 0x16194952
je 0x43e157
inc edx
cmp eax, edx
jne 0x43e140
jmp 0x43e181
mov edx, esi
sar edx, 0x1f
jmp 0x43e184
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x43e181
lea ecx, [esp + 0x6c]
lea edx, [esp + 4]
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 4
push eax
push dword [0x44b038]
call fcn.0043b600
add esp, 0x1c
mov edx, dword [esp]
mov eax, esi
add esp, 0x298
pop esi
pop edi
pop ebx
pop ebp
ret 0x10