Function at 0x43ec57
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 8
mov ecx, dword [esp + 0x18]
mov dword [esp], 0x3f3e39e8
mov byte [esp + 4], 0
mov eax, 0xca
mov edx, 0x35
movzx esi, byte [esp + eax - 0xca]
mov ebx, edx
xor ebx, eax
and ebx, esi
xor ebx, eax
add bl, 0xe
mov byte [esp + eax - 0xca], bl
inc eax
dec edx
cmp eax, 0xcf
jne case.default.0x43e620
mov eax, dword [esp]
mov eax, dword fs:[eax]
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x44944c]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x43e620.14]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x449454]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x43e620.14]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x449454]
xor ebx, ebx
cmp dword [edi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x44946c]
mov ebx, 1
jmp dword [ebx*4 + 0x449474]
mov eax, dword [edi + 0x30]
xor ebx, ebx
jmp dword [ebx*4 + 0x449474]
jmp esi
mov edi, dword [edi]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x449454]
mov ecx, dword [case.0x43e620.5]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 8
pop esi
pop edi
pop ebx
ret
xor edx, edx
cmp ecx, eax
setne dl
xor eax, eax
jmp dword [edx*4 + 0x4494bc]
jmp dword [0x4494c4]
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0xc], ecx
mov eax, dword [eax + ecx]
mov dword [esp + 8], eax
mov dword [esp], 0x999a504c
mov word [esp + 4], 0
xor ebp, ebp
mov edx, 0x490d2024
mov edi, 0x36f2dfdb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ebp]
mov ecx, ebp
xor ecx, 0x60db7b5f
lea eax, [edi + ecx]
mov esi, edx
sub esi, ecx
and esi, 0x6011205f
and eax, 0x97040020
sub eax, esi
mov ecx, ebx
and ecx, eax
add ecx, ecx
sub eax, ecx
add al, bl
add al, 0xb9
mov byte [esp + ebp], al
inc ebp
add edx, 0xfffffffe
add edi, 2
cmp ebp, 6
jne 0x43e840
jmp dword [0x4494cc]
mov dword [esp], 0x999a504c
mov word [esp + 4], 0
xor eax, eax
mov esi, 0x490d2024
mov edx, 0x36f2dfdb
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax]
mov edi, eax
xor edi, 0x60db7b5f
lea ecx, [edx + edi]
mov ebp, esi
sub ebp, edi
and ebp, 0x6011205f
and ecx, 0x97040020
sub ecx, ebp
mov edi, ebx
and edi, ecx
add edi, edi
sub ecx, edi
add cl, bl
add cl, 0xb9
mov byte [esp + eax], cl
inc eax
add esi, 0xfffffffe
add edx, 2
cmp eax, 6
jne 0x43e8a0
jmp case.0x43e620.29
xor ecx, ecx
mov eax, dword [esp + 8]
cmp eax, dword [esp]
setne cl
xor eax, eax
mov esi, dword [esp + 0x40]
jmp dword [ecx*4 + 0x4494d4]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esi + ecx + 0x78]
mov edi, dword [esi + ecx + 0x7c]
test edi, edi
sete cl
test ebx, ebx
sete dl
or dl, cl
movzx ecx, dl
mov dword [esp + 0x20], ebx
jmp dword [ecx*4 + 0x4494dc]
mov dword [esp + 0x10], edi
mov eax, dword [esi + ebx + 0x20]
add eax, esi
mov dword [esp + 0xc], eax
mov eax, dword [esi + ebx + 0x24]
add eax, esi
mov dword [esp + 0x18], eax
mov eax, dword [esi + ebx + 0x1c]
add eax, esi
mov dword [esp + 0x14], eax
mov ecx, dword [esi + ebx + 0x18]
xor edx, edx
mov edi, dword [case.0x43e620.47]
xor eax, eax
mov dword [esp + 0x28], ecx
cmp edx, ecx
setb al
mov dword [esp + 0x1c], 1
mov dword [esp + 0x24], edi
jmp dword [eax*4 + 0x4494e4]
mov eax, dword [esp + 0xc]
mov ecx, edx
mov dword [esp + 8], edx
mov edx, dword [eax + edx*4]
add edx, esi
mov eax, 0xffffffff
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
lea ecx, [ecx + 1]
jne 0x43e990
mov dword [esp], 0x161618b7
mov ecx, 0x90ca6606
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x6f3599fa]
xor edi, ecx
lea ebp, [edi*2 + 0x581803c2]
add edi, 0x2c0c01e1
and ebp, 2
mov ebx, ebp
and ebx, edi
xor ebp, edi
xor ebp, 1
lea ebx, [ebx*2]
add ebx, ebp
mov byte [esp + ecx + 0x6f3599fa], bl
inc ecx
cmp ecx, 0x90ca660a
jne 0x43e9b0
test eax, eax
je 0x43ea00
mov ebp, dword [esp]
cmp eax, 4
jae 0x43ea10
mov ecx, 0x3205b60c
jmp 0x43ea4b
mov edi, 0x3205b60c
jmp 0x43ea70
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x3205b60c
nop
nop
nop
nop
nop
nop
movsx ebx, byte [edx]
xor ebx, ecx
imul ebx, ebp
movsx ecx, byte [edx + 1]
xor ecx, ebx
imul ecx, ebp
movsx ebx, byte [edx + 2]
xor ebx, ecx
imul ebx, ebp
movsx ecx, byte [edx + 3]
add edx, 4
xor ecx, ebx
imul ecx, ebp
add edi, 0xfffffffc
jne 0x43ea20
mov edi, ecx
test al, 3
je 0x43ea70
and esi, 3
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx edi, byte [edx + eax]
xor edi, ecx
imul edi, ebp
inc eax
mov ecx, edi
cmp esi, eax
jne 0x43ea60
xor eax, eax
cmp edi, dword [esp + 0x44]
setne al
jmp dword [eax*4 + 0x4494ec]
mov edx, dword [esp + 8]
mov ecx, edx
not ecx
mov eax, edx
xor eax, 1
add eax, ecx
and ecx, 1
sub eax, ecx
lea ecx, [eax + eax]
not ecx
add ecx, eax
or edx, 1
not eax
and eax, edx
xor edx, ecx
lea edx, [edx + eax*2]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
nop
jmp edi
xor eax, eax
cmp edx, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x4494e4]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
mov ebx, dword [esp + 0x20]
cmp eax, ebx
setae cl
mov edi, dword [esp + 0x40]
jmp dword [ecx*4 + 0x4494f4]
mov edx, ebx
and edx, 0x4cd20a2
lea ecx, [ebx + ebx]
not ecx
add ecx, ebx
mov esi, ecx
and esi, 0xfb32df5d
or esi, edx
xor esi, eax
xor esi, 0x4cd20a2
mov edx, ebx
not edx
and edx, eax
or edx, esi
mov esi, eax
and esi, ecx
add ecx, eax
not ecx
lea esi, [ecx + esi*2]
and esi, edx
mov ecx, esi
lea edx, [esi + esi]
not edx
add edx, esi
or esi, 2
and ecx, 2
imul ecx, esi
mov esi, edx
not esi
and esi, 0xfffffffd
and edx, 2
imul edx, esi
xor ebx, eax
sub ecx, ebx
add ecx, edx
xor edx, edx
cmp ecx, dword [esp + 0x10]
setb dl
jmp dword [edx*4 + 0x4494fc]
add edi, eax
xor ecx, ecx
mov eax, edi
jmp dword [ecx*4 + 0x449514]
mov ecx, dword [esp + 0x1c]
jmp dword [ecx*4 + 0x449514]
xor eax, eax
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
cmp dword [eax], edx
setne bl
xor eax, eax
jmp dword [ebx*4 + 0x44952c]
mov esi, dword [edi + 0x3c]
mov eax, dword [edi + esi]
mov dword [ebp - 0x10], eax
mov dword [ecx], 0x111ed8ec
mov dword [ecx + 4], 0
xor eax, eax
xor edi, edi
nop
nop
nop
nop
mov edx, eax
and edx, 0xa
mov ebx, edi
xor ebx, 0xc5
add ebx, edx
xor bl, byte [ecx + edi]
add bl, 0x27
mov byte [ecx + edi], bl
inc edi
add eax, 2
cmp edi, 8
jne case.default.0x43ebf0
xor edx, edx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ecx]
setne dl
xor eax, eax
mov edi, dword [ebp + 8]
jmp dword [edx*4 + 0x449534]
mov ecx, dword [edi + esi + 0x80]
cmp dword [edi + esi + 0x84], 0
sete dl
test ecx, ecx
sete dh
or dh, dl
movzx edx, dh
jmp dword [edx*4 + 0x44953c]
mov esi, dword [edi + ecx]
add esi, edi
mov eax, dword [case.0x43ebf0.5]
mov ecx, dword [edi + ecx + 0x10]
add ecx, edi
mov dword [ebp - 0x18], ecx
nop
nop
nop
jmp eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [ebp - 0x24], eax
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
jmp dword [ecx*4 + 0x44956c]
mov ecx, dword [esi]
mov edx, ecx
shr edx, 0x1f
xor eax, eax
jmp dword [edx*4 + 0x449554]
xor edx, edx
test ecx, ecx
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44955c]
mov dword [ebp - 0x10], esi
lea eax, [edi + ecx]
add eax, 2
mov ebx, 0xffffffff
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
lea ecx, [ecx + 1]
jne 0x43ec90
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], 0x161618b7
mov ecx, 0x90ca6606
nop
nop
movzx esi, byte [ebp + ecx + 0x6f3599e6]
xor esi, ecx
lea edi, [esi*2 + 0x581803c2]
add esi, 0x2c0c01e1
and edi, 2
mov eax, edi
and eax, esi
xor edi, esi
xor edi, 1
lea eax, [edi + eax*2]
mov byte [ebp + ecx + 0x6f3599e6], al
inc ecx
cmp ecx, 0x90ca660a
jne 0x43ecb0
test ebx, ebx
je 0x43ed00
mov edi, dword [ebp - 0x14]
cmp ebx, 4
jae 0x43ed10
mov esi, 0x3205b60c
mov eax, dword [ebp - 0x1c]
jmp 0x43ed56
mov ecx, 0x3205b60c
jmp 0x43ed80
mov dword [ebp - 0x20], edx
mov ecx, edx
and ecx, 0xfffffffc
mov esi, 0x3205b60c
mov eax, dword [ebp - 0x1c]
mov edx, edi
mov edi, eax
movsx eax, byte [eax]
xor eax, esi
imul eax, edx
movsx esi, byte [edi + 1]
xor esi, eax
imul esi, edx
movsx eax, byte [edi + 2]
xor eax, esi
imul eax, edx
movsx esi, byte [edi + 3]
add edi, 4
xor esi, eax
mov eax, edi
mov edi, edx
imul esi, edx
add ecx, 0xfffffffc
jne 0x43ed20
mov edx, dword [ebp - 0x20]
mov ecx, esi
test bl, 3
je 0x43ed80
and edx, 3
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, byte [eax + ebx]
xor ecx, esi
imul ecx, edi
inc ebx
mov esi, ecx
cmp edx, ebx
jne 0x43ed70
xor eax, eax
cmp ecx, dword [ebp + 0xc]
sete al
jmp dword [eax*4 + 0x449564]
add dword [ebp - 0x18], 4
mov esi, dword [ebp - 0x10]
add esi, 4
mov ecx, 1
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp + 8]
jmp dword [ecx*4 + 0x44956c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push eax
mov eax, esp
sub esp, 8
mov ecx, esp
movzx edx, word [edi]
mov dword [eax], 0x3025b4d
mov word [eax + 4], 0
mov byte [eax + 6], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [eax + ebx], bl
inc ebx
cmp ebx, 7
jne 0x43ede0
jmp dword [0x449524]
push eax
push eax
mov eax, esp
mov dword [eax], 0x3025b4d
mov word [eax + 4], 0
mov byte [eax + 6], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [eax + ecx], cl
inc ecx
cmp ecx, 7
jne 0x43ee10
jmp case.0x43e620.52
mov edx, dword [ebx + 0x3c]
lea ecx, [ebx + edx]
mov ebx, dword [ebx + edx]
mov dword [esp], 0x898ad0dc
mov word [esp + 4], 0
mov byte [esp + 6], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax]
lea esi, [eax + 0x23]
mov edx, 0xdc
sub edx, eax
or edx, edi
mov ebp, 0x1c
sub ebp, eax
and ebp, 0x1d
and esi, 0x22
or esi, ebp
xor esi, 0xe2
and esi, edi
not edx
or edx, esi
add dl, 0x51
mov byte [esp + eax], dl
mov edx, eax
and edx, 1
xor eax, 1
lea eax, [eax + edx*2]
cmp eax, 7
jb case.default.0x43eefb
xor edx, edx
cmp ebx, dword [esp]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44957c]
movzx eax, word [ecx + 0x14]
lea ebx, [ecx + eax]
add ebx, 0x18
movzx ecx, word [ecx + 6]
mov ebp, dword [case.0x43e620.91]
xor esi, esi
xor eax, eax
mov word [esp + 0xa], cx
cmp si, cx
setb al
mov dword [esp + 0xc], 1
jmp dword [eax*4 + 0x449584]
mov edx, 8
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
mov eax, ebx
nop
sub edx, 1
jb 0x43ef70
movzx ebx, byte [edi]
inc edi
movzx ecx, byte [eax]
inc eax
cmp bl, cl
je 0x43ef50
sub ebx, ecx
jmp 0x43ef72
xor ebx, ebx
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x44958c]
inc esi
mov ebx, dword [esp + 0x10]
add ebx, 0x28
nop
nop
nop
nop
nop
nop
nop
nop
jmp ebp
xor eax, eax
cmp si, word [esp + 0xa]
setb al
jmp dword [eax*4 + 0x449584]
xor eax, eax
mov ecx, dword [esp + 0x30]
test ecx, ecx
setne al
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
jmp dword [eax*4 + 0x449594]
jmp dword [0x4495a0]
mov eax, dword [esi + 0xc]
add eax, edx
mov dword [ecx], eax
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xc]
add eax, edx
mov dword [ecx], eax
jmp dword [0x4495a4]
xor eax, eax
cmp dword [esp + 0x34], 0
setne al
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x4495ac]
mov al, 1
mov ecx, dword [esp + 0xc]
jmp dword [ecx*4 + 0x4495c4]
xor eax, eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
xor ecx, ecx
mov al, 1
jmp dword [ecx*4 + 0x4495c4]