Function at 0x44e000
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fa76d
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x54b07c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x195ea8c]
cmp esi, 0x10000000
jae 0x44e1db
lea eax, [esi - 0x8000000]
cmp eax, 0xffff
ja 0x44e1a7
cmp dword [0xf5c8b0], 1
je 0x44e1a0
lea ecx, [ebp - 0x40]
call fcn.0040c730
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x40]
call fcn.00404420
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
jb 0x44e083
mov eax, dword [ebp - 0x28]
push 0x537688
push eax
call fcn.004ce8d6
mov ecx, dword [ebp - 0x14]
add esp, 8
mov esi, eax
cmp ecx, 0x10
jb 0x44e0c7
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44e0bd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44e42c
push ecx
push edx
call fcn.0049dbeb
add esp, 8
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
test esi, esi
je 0x44e0fa
push esi
push 0x8000
push 1
push 0xf548b0
call fcn.004cefce
push esi
call fcn.004cea42
add esp, 0x14
jmp 0x44e116
xor eax, eax
cmp eax, 0x8000
jae 0x44e436
mov byte [eax + 0xf548b0], 0
inc eax
cmp eax, 0x8000
jl 0x44e101
mov edi, dword [0x195ea94]
mov edx, 0
and edi, 0xffffff
add edi, 1
je 0x44e15d
movzx esi, word [0x195ea8c]
mov ebx, dword [0x195ea88]
lea esp, [esp]
mov eax, esi
lea ecx, [ebx + edx]
xor eax, 3
xor ecx, 3
inc edx
inc esi
mov al, byte [eax + 0xf548b0]
mov byte [ecx + 0x115e970], al
cmp edx, edi
jb 0x44e140
mov ecx, dword [ebp - 0x2c]
mov dword [0xf5c8b0], 0xffffffff
cmp ecx, 8
jb 0x44e1c5
mov edx, dword [ebp - 0x40]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x44e197
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44e431
push ecx
push edx
call fcn.0049dbeb
jmp 0x44e1c2
call fcn.0044ec40
jmp 0x44e1c5
cmp esi, 0x6000000
jb 0x44e1b7
cmp esi, 0x8000000
jb 0x44e1c5
push esi
push str.unknown_dma_write:_x_n
call fcn.00402650
add esp, 8
or dword [0x195ea98], 1
call fcn.0046b9a0
mov edx, 0x1000
jmp 0x44e406
mov edi, dword [0x195ea94]
and edi, 0xffffff
inc edi
cmp dword [0x269347c], 0
mov dword [ebp - 0x44], edi
je 0x44e250
lea edx, [esi - 0x1ffe0000]
cmp edx, 0xffff
ja 0x44e250
test edi, edi
je 0x44e244
mov ebx, dword [0x195ea88]
mov eax, 0x1ffe0000
sub eax, esi
mov esi, eax
cmp ebx, 0x7fffff
ja 0x44e244
cmp edx, 0x1fff
ja 0x44e244
mov eax, edx
mov ecx, ebx
xor eax, 3
xor ecx, 3
inc edx
inc ebx
mov al, byte [eax + 0x217f2c0]
mov byte [ecx + 0x115e970], al
lea eax, [esi + edx]
cmp eax, edi
jb 0x44e215
or dword [0x195ea98], 1
jmp 0x44e3fc
cmp esi, 0x1fc00000
jae 0x44e1c5
mov edx, dword [0x5500e0]
and esi, 0x3ffffff
lea eax, [edi + esi]
cmp eax, edx
jbe 0x44e276
mov edi, edx
sub edi, esi
mov dword [ebp - 0x44], edi
mov ecx, dword [0x195ea88]
lea eax, [ecx + edi]
cmp eax, 0x7fffff
jbe 0x44e290
mov edi, 0x7fffff
sub edi, ecx
mov dword [ebp - 0x44], edi
cmp esi, edx
ja case.0x44e3d8.4
cmp ecx, 0x7fffff
ja case.0x44e3d8.4
test edi, edi
je 0x44e3ab
cmp dword [0x2581ff0], 0
jne 0x44e36f
add ecx, 0xa0000000
mov dword [ebp - 0x48], edi
mov edi, ecx
cmp dword [0x54dd8c], 0
jne 0x44e2d2
or cl, 0xff
jmp 0x44e2e0
mov ecx, dword [0x5500dc]
mov eax, esi
xor eax, 3
mov cl, byte [eax + ecx]
lea eax, [edi + 0x60000000]
xor eax, 3
mov byte [eax + 0x115e970], cl
lea eax, [edi - 0x20000000]
mov edx, eax
shr edx, 0xc
cmp byte [edx + 0x2582000], 0
jne 0x44e32a
shr eax, 2
and eax, 0x3ff
imul ecx, eax, 0x8c
mov eax, dword [edx*4 + 0x21814f0]
mov eax, dword [eax]
cmp dword [ecx + eax], 0x46b560
je 0x44e32a
mov byte [edx + 0x2582000], 1
mov ebx, edi
shr ebx, 0xc
cmp byte [ebx + 0x2582000], 0
jne 0x44e361
mov edx, dword [ebx*4 + 0x21814f0]
mov eax, edi
shr eax, 2
and eax, 0x3ff
imul ecx, eax, 0x8c
mov eax, dword [edx]
cmp dword [ecx + eax], 0x46b560
je 0x44e361
mov byte [ebx + 0x2582000], 1
inc esi
inc edi
sub dword [ebp - 0x48], 1
jne 0x44e2c4
jmp 0x44e3a8
mov ebx, edi
sub esi, ecx
mov edi, dword [0x5500dc]
lea esp, [esp]
cmp dword [0x54dd8c], 0
jne 0x44e38e
or dl, 0xff
jmp 0x44e397
lea eax, [esi + ecx]
xor eax, 3
mov dl, byte [eax + edi]
mov eax, ecx
inc ecx
xor eax, 3
mov byte [eax + 0x115e970], dl
sub ebx, 1
jne 0x44e380
mov edi, dword [ebp - 0x44]
mov ecx, dword [0x25817f4]
xor eax, eax
add ecx, dword [0x21814d8]
adc eax, dword [0x21814dc]
test eax, eax
ja case.0x44e3d8.4
jb 0x44e3cd
cmp ecx, 0x100000
jae case.0x44e3d8.4
mov eax, dword [0x21814e0]
dec eax
cmp eax, 5
ja case.0x44e3d8.4
jmp dword [eax*4 + 0x44e43c]
mov dword [0x115ec88], 0x800000
jmp case.0x44e3d8.4
mov dword [0x115ed60], 0x800000
or dword [0x195ea98], 3
call fcn.0046b9a0
shr edi, 3
mov edx, edi
mov ecx, 0x10
call fcn.0045e620
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049dba8
mov esp, ebp
pop ebp
ret
call fcn.004cb586
call fcn.004cb586
call fcn.0049e163
nop
invalid