Function at 0x43b560
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 eax, edx
mov ebp, edx
cmp edx, 4
jb 0x43b5da
mov ebp, 4
lea edx, [esp + 0xa7]
test eax, eax
je 0x43b9cc
xor eax, eax
mov dword [esp + 0x64], ebp
jmp 0x43b609
inc eax
cmp eax, ebp
je 0x43b7e8
cmp eax, 3
ja case.default.0x43b60e
jmp dword [eax*4 + 0x4406c8]
mov dword [esp + 4], 0x4170f28c
lea ecx, [esp + 8]
mov byte [ecx + 2], 0
mov word [ecx], 0
xor ecx, ecx
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 4]
lea ebp, [ecx + 0x11]
or ebp, edi
mov esi, 0xee
sub esi, ecx
or esi, edi
mov ebx, ecx
xor ebx, 0x7f
add ebx, ebp
sub ebx, esi
add bl, 0x1a
mov byte [esp + ecx + 4], bl
mov esi, ecx
and esi, 1
xor ecx, 1
lea ecx, [ecx + esi*2]
cmp ecx, 7
jb 0x43b630
lea ebx, [esp + 4]
mov esi, ebx
xor ecx, ecx
mov edi, edx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov esi, ebx
mov edi, edx
mov ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
movzx ecx, byte [esp + 6]
mov byte [edx + 2], cl
add edx, 3
mov ebp, dword [esp + 0x64]
jmp case.default.0x43b60e
mov dword [esp + 4], 0x91481250
mov byte [esp + 8], 0x80
lea ecx, [esp + 8]
mov byte [ecx + 5], 0
mov dword [ecx + 1], 0
xor ecx, ecx
nop
nop
mov ebx, ecx
add bl, 0xe1
xor bl, byte [esp + ecx + 4]
add bl, 0x9b
mov byte [esp + ecx + 4], bl
mov esi, ecx
and esi, 1
xor ecx, 1
lea ecx, [ecx + esi*2]
cmp ecx, 0xa
jb 0x43b6c0
lea esi, [esp + 4]
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 + 8]
mov edi, edx
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
jmp case.default.0x43b60e
mov dword [esp + 4], 0x4900c200
mov byte [esp + 8], 0x50
lea ecx, [esp + 8]
mov byte [ecx + 5], 0
mov dword [ecx + 1], 0
xor ecx, ecx
nop
nop
mov ebx, ecx
add bl, 0x6d
xor bl, byte [esp + ecx + 4]
add bl, 0xdf
mov byte [esp + ecx + 4], bl
inc ecx
cmp ecx, 0xa
jne 0x43b730
lea esi, [esp + 4]
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 + 8]
xor ecx, ecx
mov edi, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
jmp case.default.0x43b60e
mov dword [esp + 4], 0x17649650
mov byte [esp + 8], 0xc
lea ecx, [esp + 8]
mov dword [ecx + 4], 0
mov dword [ecx + 1], 0
mov ecx, 2
mov edi, 0xfd
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 2]
lea esi, [ebx + ebx]
not esi
add esi, ebx
and esi, ecx
and ebx, edi
or ebx, esi
add bl, 0xf6
mov byte [esp + ecx + 2], bl
inc ecx
dec edi
cmp ecx, 0xe
jne 0x43b7a0
lea esi, [esp + 4]
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 + 8]
mov edi, edx
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
jmp case.default.0x43b60e
mov eax, dword [esp + 0x2b8]
cmp eax, 3
jbe 0x43b9cc
test al, 1
je 0x43b826
mov eax, 0x440be2
mov esi, 0x440be2
mov edi, edx
xor ecx, ecx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov edi, edx
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x2b8]
add edx, 2
mov ecx, eax
lea eax, [eax*8]
mov esi, 0xffffffff
mov edi, 0xffffffff
cmp eax, 0x7ffffffe
ja 0x43be1f
lea eax, [ecx - 1]
cmp eax, 4
jb 0x43b9cc
lea ebp, [esp + 0xc]
mov ecx, dword [esp + 0x2b8]
jmp 0x43b870
mov ecx, dword [esp + 0x64]
lea eax, [ecx - 1]
cmp eax, 3
jbe 0x43b9cc
mov esi, eax
neg ecx
and ecx, 8
and eax, 0xfffffff7
imul eax, ecx
mov ecx, esi
and ecx, 8
mov dword [esp + 0x64], esi
or esi, 8
imul esi, ecx
add esi, eax
mov dword [esp + 0x68], esi
cmp esi, 0x7e
ja 0x43b950
mov dword [esp + 4], 0x21c892cc
mov dword [esp + 8], 0x3d0
mov ebx, 0x7bdf2d41
mov esi, 0x8420d2be
mov edi, 0x420d2be
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + ebx - 0x7bdf2d3d]
mov ecx, ebx
and ecx, ebp
add ecx, ecx
mov eax, ebp
sub eax, ecx
sub ecx, ebp
add ecx, esi
add eax, ebx
or eax, edi
and ecx, ebx
not eax
or eax, ecx
add eax, eax
mov ecx, eax
not ecx
and ecx, ebx
and eax, esi
sub eax, ecx
mov ecx, eax
xor ecx, ebp
not eax
and eax, ebp
add eax, eax
sub eax, ecx
add al, 0xbb
mov byte [esp + ebx - 0x7bdf2d3d], al
inc ebx
dec esi
dec edi
cmp ebx, 0x7bdf2d49
jne 0x43b8c0
lea eax, [esp + 4]
mov edi, edx
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [edx + 4]
lea eax, [esp + 8]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 8]
mov byte [edx + 4], al
mov eax, dword [esp + 0x68]
mov byte [edx + 3], al
add edx, 5
lea ebp, [esp + 0xc]
jmp 0x43b860
mov dword [esp + 4], 0x9198a2e4
mov dword [esp + 8], 0xe5121310
mov byte [esp + 0xc], 0x14
mov word [ebp + 5], 0
mov dword [ebp + 1], 0
mov eax, 0x45
mov ecx, 0x3a
nop
nop
nop
nop
mov esi, ecx
and esi, 0x2d
mov ebx, eax
and ebx, 0x52
or ebx, esi
xor bl, byte [esp + eax - 0x41]
xor bl, 0xad
add bl, 0x27
mov byte [esp + eax - 0x41], bl
inc eax
dec ecx
cmp eax, 0x54
jne 0x43b980
lea eax, [esp + 4]
mov edi, edx
mov ecx, 2
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea esi, [edx + 8]
mov eax, ebp
mov edi, esi
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x68]
mov dword [edx + 3], eax
mov edx, esi
jmp 0x43b860
mov eax, dword [esp + 0x2b0]
mov ebx, dword [esp + 0x2ac]
mov dword [esp + 4], 0x33ea258
lea ebp, [esp + 8]
mov byte [esp + 8], 0x24
mov dword [esp + 9], 0
mov word [esp + 0xd], 0
xor esi, esi
nop
nop
nop
nop
mov edi, esi
and edi, 8
xor edi, 0x48
mov ecx, esi
and ecx, 7
sub ecx, edi
xor cl, byte [esp + esi + 4]
add cl, 0x68
mov byte [esp + esi + 4], cl
inc esi
cmp esi, 0xb
jne 0x43ba00
lea esi, [esp + 4]
mov edi, edx
mov ecx, 1
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
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 + 0x93], 0xc3fc8948
mov dword [esp + 0x90], 0x48d2ff41
mov dword [esp + 0x84], 0xba49c031
mov dword [esp + 0x88], ebx
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, [edx + 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 [edx + 0x16], al
lea ecx, [esp + 0x98]
mov eax, ecx
neg eax
lea ebp, [edx + eax]
add ebp, 0x17
sub edx, ecx
add edx, 0x71
mov dword [esp + 0x70], edx
xor eax, eax
mov dword [esp], 0
mov dword [esp + 4], 0x686b6a65
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x67
xor cl, byte [esp + eax + 4]
add cl, 0xfd
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 7
jne 0x43bae0
mov esi, dword [esp + 4]
mov eax, dword [0x44a87c]
test eax, eax
je 0x43bb4e
xor ecx, ecx
mov edx, dword [0x44a880]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3e416e49
je 0x43bb20
inc ecx
cmp eax, ecx
jne 0x43bb10
jmp 0x43bb4e
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43bb4e
lea ecx, [esp + 0x70]
mov edx, esp
push 0x40
push 0x3000
push ecx
push 0
push edx
push 0xffffffffffffffff
push 0x18
push eax
push dword [0x44a884]
call fcn.004395d0
add esp, 0x24
mov esi, eax
test esi, esi
js 0x43bdf0
mov dword [esp + 4], 0x4ddb0075
mov dword [esp + 8], 0xbb2f024f
mov dword [esp + 0xc], 0xd78a4407
mov dword [esp + 0x10], 0xbbbabdbc
mov dword [esp + 0x14], 0x71e63640
mov dword [esp + 0x18], 0x2aaab12b
mov dword [esp + 0x1c], 0xa360eace
mov dword [esp + 0x20], 0xabaaad73
mov dword [esp + 0x24], 0x653ea721
mov dword [esp + 0x28], 0xb9525554
mov dword [esp + 0x2c], 0x2eec28e4
mov dword [esp + 0x30], 0xb86611d3
mov dword [esp + 0x34], 0x4f08bcba
mov dword [esp + 0x38], 0x6f86f244
mov dword [esp + 0x3c], 0x9e869743
mov dword [esp + 0x40], 0x3149b60c
mov dword [esp + 0x44], 0xbb3db9ab
mov dword [esp + 0x48], 0x735d7958
mov dword [esp + 0x4c], 0xbbf77170
mov dword [esp + 0x50], 0x35f3b550
mov dword [esp + 0x54], 0x26ae3959
mov dword [esp + 0x58], 0xb7614572
lea edx, [esp + 0x5c]
mov word [esp + 0x5c], 0x614c
mov byte [esp + 0x60], 0
mov word [esp + 0x5e], 0
xor eax, eax
nop
movzx ecx, byte [esp + eax + 4]
lea esi, [eax + 0x662acde]
or esi, ecx
add ecx, eax
neg ecx
add ecx, esi
add ecx, 0x19d5321
and ecx, esi
mov edi, ecx
xor edi, 0x1fed6056
mov esi, ecx
or esi, 0x28da9
and esi, edi
mov edi, esi
and edi, 0xfffffffd
mov ebx, esi
and ebx, 2
or esi, 2
imul esi, ebx
xor ebx, 2
imul ebx, edi
xor ecx, 0xe0129fa9
add ecx, esi
add ecx, ebx
mov ebx, ecx
xor ebx, 0xfe
or ecx, 1
and ebx, ecx
add ebx, ecx
mov byte [esp + eax + 4], bl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x5d
jb 0x43bc20
mov eax, dword [esp]
lea esi, [esp + 4]
mov edi, eax
mov ecx, 0x16
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [eax + 0x58]
xor ebx, ebx
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x5c]
mov byte [eax + 0x58], cl
mov eax, dword [esp]
mov dword [esp + 4], 0x737271a9
mov byte [esp + 8], 0
nop
nop
nop
nop
nop
nop
mov ecx, ebx
add cl, 0x14
xor cl, byte [esp + ebx + 4]
add cl, 0x9c
mov byte [esp + ebx + 4], cl
inc ebx
cmp ebx, 5
jne 0x43bcd0
add eax, dword [esp + 4]
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 0x43bd31
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
mov eax, dword [esp]
mov dword [esp + 4], 0x33323199
mov byte [esp + 8], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 8
mov ebx, edx
xor ebx, 0xc
add ebx, esi
xor bl, byte [esp + edx + 4]
add bl, 0xc4
mov byte [esp + edx + 4], bl
inc edx
add ecx, 2
cmp edx, 5
jne 0x43bd50
mov ecx, dword [esp + 4]
add ecx, eax
push dword [esp + 0x2b4]
push ecx
call eax
mov esi, eax
mov edi, edx
mov dword [esp + 0x6c], 0
mov dword [esp + 4], 0x686b6a65
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x67
xor cl, byte [esp + eax + 4]
add cl, 0xfd
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 7
jne 0x43bdb0
mov eax, dword [0x44a87c]
test eax, eax
je 0x43be1f
mov ecx, dword [esp + 4]
xor edx, edx
mov ebx, dword [0x44a880]
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x16194952
je 0x43bdf7
inc edx
cmp eax, edx
jne 0x43bde0
jmp 0x43be1f
mov edi, esi
sar edi, 0x1f
jmp 0x43be1f
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x43be1f
lea ecx, [esp + 0x6c]
mov edx, esp
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 0x10
push eax
push dword [0x44a884]
call fcn.004395d0
add esp, 0x1c
mov eax, esi
mov edx, edi
add esp, 0x298
pop esi
pop edi
pop ebx
pop ebp
ret 0x10