Function at 0x43c806
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
push eax
mov ecx, dword [esp + 0x14]
mov dword [esp], 0x292a2b74
mov eax, 0xb7
mov edx, 0x48
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xb7]
mov ebx, edx
xor ebx, eax
and ebx, esi
xor ebx, eax
add bl, 0x6d
mov byte [esp + eax - 0xb7], bl
inc eax
dec edx
cmp eax, 0xbb
jne case.default.0x43bfd0
mov eax, dword [esp]
mov eax, dword fs:[eax]
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x446f50]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [edx]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x446f58]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [edx]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x446f58]
mov eax, dword [esi + 0x30]
xor edi, edi
jmp dword [edi*4 + 0x446f78]
mov esi, dword [esi]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x446f58]
xor ebx, ebx
cmp dword [esi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x446f60]
mov edi, 1
jmp dword [edi*4 + 0x446f78]
add esp, 4
pop esi
pop edi
pop ebx
ret
xor ecx, ecx
test ebp, ebp
sete cl
jmp dword [ecx*4 + 0x446fa0]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov esi, dword [case.0x43bfd0.26]
xor eax, eax
mov edi, dword [case.0x43bfd0.32]
mov ebx, dword [edx]
xor ecx, ecx
cmp ebx, edx
setne cl
jmp dword [ecx*4 + 0x446fa8]
mov ecx, 1
jmp dword [ecx*4 + 0x446fd8]
mov ebx, dword [ebx]
xor ecx, ecx
cmp ebx, edx
setne cl
jmp dword [ecx*4 + 0x446fa8]
jmp esi
xor ecx, ecx
cmp dword [ebx + 0x18], ebp
sete cl
jmp dword [ecx*4 + 0x446fc0]
jmp edi
mov eax, dword [ebx + 0x28]
xor ecx, ecx
jmp dword [ecx*4 + 0x446fd8]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x3c]
mov edi, dword [eax + ecx]
mov dword [esp], 0x63622430
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx]
mov esi, edx
or esi, 0x527e1ae8
and esi, ebx
add esi, esi
neg esi
lea eax, [edx + esi]
add eax, 0x527e1ae8
add al, bl
add al, 0x78
mov byte [esp + edx], al
mov eax, edx
and eax, 1
xor edx, 0x86064571
lea edx, [edx + eax*2]
add edx, 0x79f9ba90
cmp edx, 7
jb case.default.0x43c224
xor edx, edx
cmp edi, dword [esp]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x446fe8]
mov edx, dword [esp + 0x48]
mov edi, dword [edx + ecx + 0x78]
mov esi, dword [edx + ecx + 0x7c]
test esi, esi
sete cl
test edi, edi
sete dl
or dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x447000]
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + edi + 0x20]
add ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + edi + 0x24]
add ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + edi + 0x1c]
add ecx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edi
mov ecx, dword [eax + edi + 0x18]
mov eax, dword [case.0x43bfd0.52]
mov dword [esp + 0x24], eax
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x1c], ecx
cmp ebp, ecx
setb al
mov ecx, dword [case.0x43bfd0.54]
mov dword [esp + 0x28], ecx
mov ecx, dword [case.0x43bfd0.75]
mov dword [esp + 0x20], ecx
jmp dword [eax*4 + 0x447008]
mov dword [esp + 8], ebp
jmp dword [esp + 0x24]
mov dword [esp], 0xbebabc31
mov dword [esp + 4], 0
mov eax, 0x661b5e60
mov ecx, 0x99e4a19f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x661b5e61]
mov edi, ecx
xor edi, edx
or edi, eax
not edi
add edi, edi
mov esi, edi
xor esi, ecx
and edi, eax
add edi, edi
sub esi, edi
add esi, edx
mov edx, esi
xor edx, 0x1b
or esi, 0xe4
and edx, esi
add edx, esi
inc dl
mov byte [esp + ecx + 0x661b5e61], dl
dec eax
inc ecx
cmp eax, 0x661b5e58
jne 0x43c2e0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + ebp*4]
add ecx, dword [esp + 0x48]
mov edx, 0xffffffff
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
cmp byte [ecx + edx + 1], 0
lea edx, [edx + 1]
lea eax, [eax + 1]
jne 0x43c340
mov dword [esp + 0x30], ecx
mov dword [esp], 0xbebabc31
mov dword [esp + 4], 0
mov eax, 0x661b5e60
mov ecx, 0x99e4a19f
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x661b5e61]
mov edi, ecx
xor edi, ebx
or edi, eax
not edi
add edi, edi
mov ebp, edi
xor ebp, ecx
and edi, eax
add edi, edi
sub ebp, edi
add ebp, ebx
mov ebx, ebp
xor ebx, 0x1b
or ebp, 0xe4
and ebx, ebp
add ebx, ebp
inc bl
mov byte [esp + ecx + 0x661b5e61], bl
dec eax
inc ecx
cmp eax, 0x661b5e58
jne 0x43c370
mov ebx, 0x36c0b43e
test edx, edx
mov ebp, dword [esp + 8]
mov edi, dword [esp + 0x30]
je 0x43c430
mov eax, dword [esp]
mov ecx, 0x36c0b43e
cmp edx, 4
jb 0x43c413
mov ebx, esi
and ebx, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, edi
movsx edi, byte [edi]
xor edi, ecx
imul edi, eax
movsx ecx, byte [ebp + 1]
xor ecx, edi
imul ecx, eax
movsx edi, byte [ebp + 2]
xor edi, ecx
imul edi, eax
movsx ecx, byte [ebp + 3]
add ebp, 4
xor ecx, edi
mov edi, ebp
imul ecx, eax
add ebx, 0xfffffffc
jne 0x43c3e0
mov ebp, dword [esp + 8]
mov ebx, ecx
test dl, 3
je 0x43c430
and esi, 3
xor edx, edx
nop
movsx ebx, byte [edi + edx]
xor ebx, ecx
imul ebx, eax
inc edx
mov ecx, ebx
cmp esi, edx
jne 0x43c420
jmp dword [esp + 0x28]
xor eax, eax
cmp ebx, dword [esp + 0x4c]
setne al
mov ecx, dword [esp + 0x20]
jmp dword [eax*4 + 0x447030]
jmp ecx
mov eax, ebp
and eax, 1
xor ebp, 1
lea ebp, [ebp + eax*2]
xor eax, eax
cmp ebp, dword [esp + 0x1c]
setb al
jmp dword [eax*4 + 0x447008]
mov ecx, 1
jmp dword [0x447018]
jmp dword [ecx*4 + 0x447088]
xor eax, eax
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x14]
movzx eax, word [eax + ebp*2]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
mov esi, dword [esp + 0x18]
cmp eax, esi
setae cl
jmp dword [ecx*4 + 0x447048]
jmp dword [0x447058]
mov ecx, esi
not ecx
and ecx, eax
add ecx, ecx
mov edx, eax
and edx, esi
add esi, eax
sub ecx, esi
lea ecx, [ecx + edx*2]
xor edx, edx
cmp ecx, dword [esp + 0xc]
setb dl
jmp dword [edx*4 + 0x447060]
mov edx, dword [esp + 0x48]
add edx, eax
xor ecx, ecx
mov eax, edx
jmp dword [ecx*4 + 0x447088]
mov eax, dword [case.0x43bfd0.49]
mov ecx, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
int3
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ebp + ecx]
mov dword [esp], 0x6362a4d0
mov word [esp + 4], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edx
and esi, 2
xor esi, 0x32e1adda
mov edi, edx
and edi, 5
sub edi, esi
mov esi, edi
and esi, 8
xor edi, 0x18
lea ebx, [edi + esi*2]
add bl, 0xda
xor bl, byte [esp + edx]
add bl, 0x88
mov byte [esp + edx], bl
inc edx
cmp edx, 6
jne case.default.0x43c5c9
xor edx, edx
cmp eax, dword [esp]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x447098]
mov edx, dword [ebp + ecx + 0x80]
cmp dword [ebp + ecx + 0x84], 0
sete cl
test edx, edx
sete ch
or ch, cl
movzx ecx, ch
jmp dword [ecx*4 + 0x4470a0]
jmp dword [0x4470b0]
mov esi, dword [ebp + edx]
add esi, ebp
mov eax, dword [ebp + edx + 0x10]
add eax, ebp
mov dword [esp + 0xc], eax
add ebp, 2
mov eax, dword [case.0x43bfd0.98]
mov dword [esp + 0x18], eax
mov edx, dword [case.0x43bfd0.102]
mov ebx, dword [esi]
mov ecx, ebx
shr ecx, 0x1f
xor eax, eax
mov dword [esp + 0x10], ebp
mov dword [esp + 8], edx
jmp dword [ecx*4 + 0x4470b8]
xor ecx, ecx
test ebx, ebx
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x4470c0]
mov dword [esp + 0x14], esi
add ebx, ebp
mov edx, 0xffffffff
xor eax, eax
mov ecx, ebx
nop
mov ebx, eax
cmp byte [ecx + edx + 1], 0
lea edx, [edx + 1]
lea eax, [eax + 1]
jne 0x43c660
mov dword [esp + 0x20], ecx
mov dword [esp], 0xbebabc31
mov dword [esp + 4], 0
mov ecx, 0x661b5e60
mov esi, 0x99e4a19f
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0x661b5e61]
mov ebp, esi
xor ebp, eax
or ebp, ecx
not ebp
add ebp, ebp
mov edi, ebp
xor edi, esi
and ebp, ecx
add ebp, ebp
sub edi, ebp
add edi, eax
mov eax, edi
xor eax, 0x1b
or edi, 0xe4
and eax, edi
add eax, edi
inc al
mov byte [esp + esi + 0x661b5e61], al
dec ecx
inc esi
cmp ecx, 0x661b5e58
jne 0x43c690
mov eax, 0x36c0b43e
test edx, edx
mov ebp, dword [esp + 0x20]
je 0x43c741
mov esi, dword [esp]
mov ecx, 0x36c0b43e
cmp edx, 4
jb 0x43c71c
mov eax, ebx
and eax, 0xfffffffc
nop
movsx edi, byte [ebp]
xor edi, ecx
imul edi, esi
movsx ecx, byte [ebp + 1]
xor ecx, edi
imul ecx, esi
movsx edi, byte [ebp + 2]
xor edi, ecx
imul edi, esi
movsx ecx, byte [ebp + 3]
add ebp, 4
xor ecx, edi
imul ecx, esi
add eax, 0xfffffffc
jne 0x43c6f0
mov eax, ecx
test dl, 3
je 0x43c741
and ebx, 3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movsx eax, byte [ebp + edx]
xor eax, ecx
imul eax, esi
inc edx
mov ecx, eax
cmp ebx, edx
jne 0x43c730
xor ecx, ecx
cmp eax, dword [esp + 0x3c]
sete cl
jmp dword [ecx*4 + 0x4470c8]
mov esi, dword [esp + 0x14]
add esi, 4
add dword [esp + 0xc], 4
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, 1
mov eax, dword [esp + 0x1c]
jmp case.0x43bfd0.99
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
jmp dword [ecx*4 + 0x4470f0]
mov ebx, dword [esi]
mov ecx, ebx
shr ecx, 0x1f
mov dword [esp + 0x1c], eax
xor eax, eax
jmp dword [ecx*4 + 0x4470b8]
mov ecx, dword [case.0x43c5c9.0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push eax
mov edx, esp
jmp eax
mov dword [ebp - 0x18], edx
movzx eax, word [ecx]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], 0x191abdcf
mov word [ebp - 0x1c], 0
mov ecx, 0xd0f97b7b
mov edx, 0x2f068484
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [ebp + ecx + 0x2f068465]
mov eax, ecx
xor eax, esi
or eax, edx
not eax
add eax, eax
lea ebx, [edx - 0x2f068400]
and ebx, eax
not eax
and eax, ecx
add eax, esi
sub eax, ebx
add al, 0x99
mov byte [ebp + ecx + 0x2f068465], al
inc ecx
dec edx
cmp ecx, 0xd0f97b81
jne 0x43c830
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, dword [ebp - 0x10]
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x447118]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x3c]
lea edx, [esi + ecx]
mov ecx, dword [esi + ecx]
mov esi, dword [ebp - 0x18]
mov dword [esi], 0x494ab0bc
mov word [esi + 4], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
add bl, 0x93
xor bl, byte [esi + eax]
add bl, 0x21
mov byte [esi + eax], bl
inc eax
cmp eax, 6
jne case.default.0x43c8bd
xor ebx, ebx
cmp ecx, dword [esi]
setne bl
xor eax, eax
jmp dword [ebx*4 + 0x447120]
movzx eax, word [edx + 0x14]
lea ecx, [edx + eax]
add ecx, 0x18
movzx esi, word [edx + 6]
xor edx, edx
xor eax, eax
mov word [ebp - 0x18], si
cmp dx, si
setb al
mov dword [ebp - 0x14], 1
jmp dword [eax*4 + 0x447128]
mov edi, 8
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x10], ecx
mov eax, ecx
nop
nop
nop
sub edi, 1
jb 0x43c920
movzx ecx, byte [esi]
inc esi
movzx ebx, byte [eax]
inc eax
cmp cl, bl
je 0x43c900
mov eax, ecx
not eax
and eax, ebx
not ebx
and ebx, ecx
sub ebx, eax
jmp 0x43c922
xor ebx, ebx
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x447130]
inc edx
mov ecx, dword [ebp - 0x10]
add ecx, 0x28
xor eax, eax
cmp dx, word [ebp - 0x18]
setb al
jmp dword [eax*4 + 0x447128]
xor eax, eax
mov ecx, dword [ebp + 0x10]
test ecx, ecx
setne al
mov edx, dword [ebp - 0x10]
jmp dword [eax*4 + 0x447138]
xor eax, eax
cmp dword [ebp + 0x14], 0
setne al
mov dword [ebp - 0x14], 0
jmp dword [eax*4 + 0x447140]
mov al, 1
mov ecx, dword [ebp - 0x14]
jmp dword [ecx*4 + 0x447148]
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
add eax, dword [edx + 0xc]
mov dword [ecx], eax
xor eax, eax
cmp dword [ebp + 0x14], 0
setne al
mov dword [ebp - 0x14], 0
jmp dword [eax*4 + 0x447140]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
xor ecx, ecx
mov al, 1
jmp dword [ecx*4 + 0x447148]
mov edi, 0xbfef0043
inc ebx
add byte [edi - 0x40], al
inc ebx
add byte [eax + eax*8], ch
inc ebx
add byte [ebx], bh
rol byte [ebx], 0x10
rol byte [ebx], 1
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebx], bh
rol byte [ebx], 0x47
rol byte [ebx], 0x1c
rol byte [ebx], 1
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edi - 0x40], al
inc ebx
add byte [eax - 0x5fffbc40], ah
rol byte [ebx], 0xa2
rol byte [ebx], 0xa0
rol byte [ebx], 0xb0
rol byte [ebx], 0x1e
rol dword [ebx], 0x24
rol dword [ebx], 0xf0
rol byte [ebx], 0xf0
rol byte [ebx], 0xf0
rol byte [ebx], 0xf0
rol byte [ebx], 0xf2
rol byte [ebx], 0xd4
rol byte [ebx], 0x10
rol dword [ebx], 0x10
rol dword [ebx], 0x10
rol dword [ebx], 0x10
rol dword [ebx], 0x12
rol dword [ebx], 0x24
rol dword [ebx], 0xe0
inc ebx
add al, ah
rol byte [ebx], 0xb8
rol dword [ebx], 0x84
les eax, [ebx]
sub eax, edx
ret 67
test ah, al
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], al
lds eax, [ebx]
add dword [eax], eax
add byte [eax], al
dec ebp
ret 67
test ah, al
inc ebx
add byte [eax - 0x3c], dh
inc ebx
add byte [eax + 0x700043c2], dh
les eax, [ebx]
jo 0x446fda
ret 0x43
inc ebx
add byte [ebx - 0x3c], bh
inc ebx
add byte [eax - 0x3c], dh
inc ebx
add byte [eax + 0x1f0043c2], bh
ret