Function at 0x443828
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov ebp, dword [esp + 0x1c]
mov dword [esp], 0x4f4e4918
mov byte [esp + 4], 0
mov eax, 0xf2
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xf2]
mov ebx, edx
not ebx
or ebx, eax
add bl, bl
add bl, dl
neg bl
movzx ecx, bl
add ecx, eax
add cl, 0x44
mov byte [esp + eax - 0xf2], cl
inc eax
cmp eax, 0xf7
jne case.default.0x4432d8
mov eax, dword [esp]
mov eax, dword fs:[eax]
xor ecx, ecx
test ebp, ebp
sete cl
jmp dword [ecx*4 + 0x44f17c]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov esi, dword [case.0x4432d8.7]
xor eax, eax
mov edi, dword [case.0x4432d8.12]
mov ebx, dword [edx]
xor ecx, ecx
cmp ebx, edx
setne cl
jmp dword [ecx*4 + 0x44f184]
mov ebp, dword [eax + 8]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov esi, dword [case.0x4432d8.7]
xor eax, eax
mov edi, dword [case.0x4432d8.12]
mov ebx, dword [edx]
xor ecx, ecx
cmp ebx, edx
setne cl
jmp dword [ecx*4 + 0x44f184]
mov ecx, 1
jmp dword [ecx*4 + 0x44f1b4]
mov ebx, dword [ebx]
xor ecx, ecx
cmp ebx, edx
setne cl
jmp dword [ecx*4 + 0x44f184]
xor ecx, ecx
cmp dword [ebx + 0x18], ebp
sete cl
jmp dword [ecx*4 + 0x44f18c]
jmp esi
jmp edi
mov eax, dword [ebx + 0x30]
xor ecx, ecx
jmp dword [ecx*4 + 0x44f1b4]
mov ecx, dword [case.0x4432d8.18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [0x44f258]
mov edx, dword [ebp + 8]
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 + 0x44f25c]
mov dword [ebp - 0x20], esi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edi + 0x20]
add ecx, eax
mov dword [ebp - 0x3c], ecx
mov ecx, dword [eax + edi + 0x24]
add ecx, eax
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + edi + 0x1c]
add ecx, eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x2c], edi
mov edx, dword [eax + edi + 0x18]
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x38], edx
cmp ecx, edx
setb al
mov dword [ebp - 0x30], 1
jmp dword [eax*4 + 0x44f264]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], ecx
mov edi, dword [eax + ecx*4]
add edi, dword [ebp + 8]
mov eax, 0xffffffff
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
lea edx, [edx + 1]
jne 0x443540
mov dword [ebp - 0x1c], 0xc2c2c073
lea edx, [ebp - 0x18]
mov byte [edx + 2], 0
mov word [edx], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0xd0
xor bl, byte [ebp + edx - 0x1c]
add bl, 0xf0
mov byte [ebp + edx - 0x1c], bl
inc edx
cmp edx, 7
jne 0x443570
test eax, eax
je 0x4435a0
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp eax, 4
jae 0x4435b0
mov ebx, 0xfb520141
jmp 0x4435f1
mov edx, 0xfb520141
jmp 0x443610
mov dword [ebp - 0x34], ecx
mov edx, ecx
and edx, 0xfffffffc
mov ebx, 0xfb520141
nop
nop
nop
movsx esi, byte [edi]
xor esi, ebx
mov ecx, dword [ebp - 0x10]
imul esi, ecx
movsx ebx, byte [edi + 1]
xor ebx, esi
imul ebx, ecx
movsx esi, byte [edi + 2]
xor esi, ebx
imul esi, ecx
movsx ebx, byte [edi + 3]
add edi, 4
xor ebx, esi
imul ebx, ecx
add edx, 0xfffffffc
jne 0x4435c0
mov ecx, dword [ebp - 0x34]
mov edx, ebx
test al, 3
mov esi, dword [ebp - 0x10]
je 0x443610
and ecx, 3
xor eax, eax
nop
movsx edx, byte [edi + eax]
xor edx, ebx
imul edx, esi
inc eax
mov ebx, edx
cmp ecx, eax
jne 0x443600
xor eax, eax
cmp edx, dword [ebp + 0xc]
setne al
jmp dword [eax*4 + 0x44f26c]
mov ecx, dword [ebp - 0x14]
inc ecx
xor eax, eax
cmp ecx, dword [ebp - 0x38]
setb al
jmp dword [eax*4 + 0x44f264]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
movzx eax, word [eax + ecx*2]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + eax*4]
xor edx, edx
mov ecx, eax
sub ecx, dword [ebp - 0x2c]
setae dl
jmp dword [edx*4 + 0x44f274]
xor edx, edx
cmp ecx, dword [ebp - 0x20]
setb dl
jmp dword [edx*4 + 0x44f27c]
mov edx, dword [ebp + 8]
add edx, eax
xor ecx, ecx
mov eax, edx
jmp dword [ecx*4 + 0x44f284]
mov ecx, dword [ebp - 0x30]
jmp dword [ecx*4 + 0x44f284]
xor eax, eax
jmp case.0x44378b.0
push eax
push eax
mov eax, esp
mov dword [eax], 0x710eb543
mov dword [eax + 4], 0
mov ecx, 0x340e7ebd
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [eax + ecx - 0x340e7ebd]
lea edi, [ecx - 0x340e7e00]
and edi, esi
or esi, ecx
lea edx, [esi + esi]
not edx
add edx, esi
or edx, edi
mov bl, 0x4e
sub bl, dl
mov byte [eax + ecx - 0x340e7ebd], bl
inc ecx
cmp ecx, 0x340e7ec5
jne 0x4436a0
push eax
push eax
mov eax, esp
sub esp, 8
mov edx, esp
mov ecx, dword [ebp + 8]
movzx ecx, word [ecx]
mov dword [ebp - 0x10], ecx
mov dword [eax], 0x710eb543
mov dword [eax + 4], 0
mov esi, 0x340e7ebd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [eax + esi - 0x340e7ebd]
lea ecx, [esi - 0x340e7e00]
and ecx, edi
or edi, esi
lea ebx, [edi + edi]
not ebx
add ebx, edi
or ebx, ecx
mov cl, 0x4e
sub cl, bl
mov byte [eax + esi - 0x340e7ebd], cl
inc esi
cmp esi, 0x340e7ec5
jne 0x443700
jmp dword [0x44f238]
xor ecx, ecx
mov esi, dword [ebp - 0x10]
cmp dword [eax], esi
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x44f23c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
mov esi, dword [eax + ecx]
mov dword [edx], 0x17166468
mov word [edx + 4], 0
mov byte [edx + 6], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x86
xor al, byte [edx + ebx]
add al, 0x62
mov byte [edx + ebx], al
inc ebx
cmp ebx, 7
jne case.default.0x44378b
xor ebx, ebx
cmp esi, dword [edx]
setne bl
xor eax, eax
jmp dword [ebx*4 + 0x44f244]
mov ecx, dword [case.0x4432d8.70]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + ecx]
mov dword [esp], 0xe1e63834
mov byte [esp + 4], 0
xor edx, edx
mov ebx, edx
add bl, 0x29
xor bl, byte [esp + edx]
add bl, 0x33
mov byte [esp + edx], bl
inc edx
cmp edx, 5
jne case.default.0x44385e
xor edx, edx
cmp eax, dword [esp]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44f2a4]
mov esi, dword [esp + 0x34]
mov edx, dword [esi + ecx + 0x80]
cmp dword [esi + ecx + 0x84], 0
sete cl
test edx, edx
sete ch
or ch, cl
movzx ecx, ch
jmp dword [ecx*4 + 0x44f2ac]
mov ecx, dword [esp + 0x34]
mov esi, dword [ecx + edx]
add esi, ecx
mov edx, dword [ecx + edx + 0x10]
add edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [case.0x4432d8.82]
mov dword [esp + 0x1c], ecx
mov ecx, dword [case.0x4432d8.89]
mov dword [esp + 0x14], ecx
mov ebx, dword [esi]
mov ecx, ebx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x44f2b4]
mov eax, dword [esp + 8]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x44f2ec]
mov ebx, dword [esi]
mov ecx, ebx
shr ecx, 0x1f
xor eax, eax
jmp dword [ecx*4 + 0x44f2b4]
xor ecx, ecx
test ebx, ebx
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x44f2bc]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
jmp dword [esp + 0x1c]
mov dword [esp], 0xc2c2c073
lea eax, [esp + 4]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xd0
xor cl, byte [esp + eax]
add cl, 0xf0
mov byte [esp + eax], cl
inc eax
cmp eax, 7
jne 0x443930
jmp case.0x4432d8.82
mov edi, 0xfb520141
mov ebx, dword [esp + 0x10]
jmp dword [0x44f2d0]
mov eax, dword [esp + 0x34]
add eax, ebx
add eax, 2
mov ecx, 0xffffffff
xor edx, edx
nop
mov ebp, edx
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
lea edx, [edx + 1]
jne 0x443970
mov dword [esp], 0xc2c2c073
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0xd0
xor bl, byte [esp + edx]
add bl, 0xf0
mov byte [esp + edx], bl
inc edx
cmp edx, 7
jne 0x4439a0
test ecx, ecx
je 0x443950
mov esi, dword [esp]
cmp ecx, 4
jae 0x4439d0
mov edx, 0xfb520141
jmp 0x443a0b
mov edi, ebp
and edi, 0xfffffffc
mov edx, 0xfb520141
nop
nop
nop
nop
nop
nop
movsx ebx, byte [eax]
xor ebx, edx
imul ebx, esi
movsx edx, byte [eax + 1]
xor edx, ebx
imul edx, esi
movsx ebx, byte [eax + 2]
xor ebx, edx
imul ebx, esi
movsx edx, byte [eax + 3]
add eax, 4
xor edx, ebx
imul edx, esi
add edi, 0xfffffffc
jne 0x4439e0
mov edi, edx
test cl, 3
mov ebx, dword [esp + 0x10]
je 0x443a30
and ebp, 3
xor ecx, ecx
nop
nop
nop
nop
nop
movsx edi, byte [eax + ecx]
xor edi, edx
imul edi, esi
inc ecx
mov edx, edi
cmp ebp, ecx
jne 0x443a20
jmp dword [0x44f2d0]
xor eax, eax
cmp edi, dword [esp + 0x38]
sete al
jmp dword [eax*4 + 0x44f2d4]
mov esi, dword [esp + 0xc]
add esi, 4
add dword [esp + 8], 4
mov eax, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, 1
mov eax, dword [esp + 0x18]
jmp dword [ecx*4 + 0x44f2ec]
mov ecx, dword [case.0x4432d8.72]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x4432d8.99]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x3c]
lea ecx, [esi + eax]
mov eax, dword [esi + eax]
mov dword [esp], 0x1f1edcc8
mov ebx, 0xd95ff77a
nop
movzx esi, byte [esp + ebx + 0x26a00886]
xor esi, ebx
mov edi, esi
mov edx, esi
xor edx, 0x9d
add edx, esi
and esi, 0x9d
and edi, 0x62
sub edx, edi
add edx, esi
inc dl
mov byte [esp + ebx + 0x26a00886], dl
inc ebx
cmp ebx, 0xd95ff77e
jne 0x443b20
xor edx, edx
cmp eax, dword [esp]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44f31c]
movzx eax, word [ecx + 0x14]
lea esi, [ecx + eax]
add esi, 0x18
movzx ecx, word [ecx + 6]
xor ebp, ebp
xor eax, eax
mov word [esp + 6], cx
cmp bp, cx
setb al
mov dword [esp + 8], 1
jmp dword [eax*4 + 0x44f324]
xor eax, eax
xor ecx, ecx
test eax, 0
sete cl
jmp dword [ecx*4 + 0x44f32c]
inc ebp
add esi, 0x28
xor eax, eax
cmp bp, word [esp + 6]
setb al
jmp dword [eax*4 + 0x44f324]
mov ecx, 8
mov edi, dword [esp + 0x2c]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sub ecx, 1
jb 0x443ba0
movzx edx, byte [edi]
inc edi
movzx ebx, byte [eax]
inc eax
cmp dl, bl
je case.default.0x443bf8
xor eax, eax
sub edx, ebx
sete al
jmp dword [eax*4 + 0x44f32c]
xor eax, eax
mov edx, dword [esp + 0x30]
test edx, edx
setne al
mov edi, dword [esp + 0x28]
jmp dword [eax*4 + 0x44f334]
mov eax, dword [esi + 0xc]
jmp dword [0x44f33c]
lea ecx, [edi + eax]
mov dword [edx], ecx
jmp dword [0x44f348]
lea ecx, [edi + eax]
mov dword [edx], ecx
mov dword [edx], ecx
jmp dword [0x44f348]
xor eax, eax
cmp dword [esp + 0x34], 0
setne al
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x44f34c]
mov al, 1
mov ecx, dword [esp + 8]
jmp dword [ecx*4 + 0x44f354]
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 + 0x44f354]