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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x5080c0]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov dl, 0x29
mov dword [ebp - 0xb0], ecx
mov cl, 0x60
mov dword [ebp - 0xf4], eax
mov al, 0x7c
xor al, dl
mov byte [ebp - 0xcc], dl
push ebx
xor cl, dl
mov byte [ebp - 0xc9], 0
push esi
lea edx, [ebp - 0xcb]
mov byte [ebp - 0xca], cl
push edi
mov byte [ebp - 0xcb], al
lea ecx, [edx + 1]
mov byte [ebp - 0xc9], 0
mov al, byte [edx]
inc edx
test al, al
jne 0x44de98
mov edi, dword [ebp + 0xc]
sub edx, ecx
cmp dword [ebp + 0x20], 0xf
lea ecx, [ebp + 0xc]
mov esi, dword [ebp + 0x1c]
cmova ecx, edi
cmp esi, edx
jne 0x44df1a
lea edx, [ebp - 0xcb]
sub esi, 4
jb 0x44ded1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44deda
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44dec0
cmp esi, 0xfffffffc
je 0x44e128
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44df17
cmp esi, 0xfffffffd
je 0x44e128
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44df17
cmp esi, 0xfffffffe
je 0x44e128
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44df17
cmp esi, 0xffffffff
je 0x44e128
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44e128
mov esi, dword [ebp + 0x1c]
mov dh, 0x46
mov byte [ebp - 0x35], 0
mov dl, 0xc
mov byte [ebp - 0x3c], dh
mov cl, 4
mov byte [ebp - 0x35], 0
xor cl, dh
xor dl, dh
mov al, 9
mov byte [ebp - 0x39], dl
mov bl, 3
mov byte [ebp - 0x3a], cl
mov ah, 5
mov ch, 0x12
xor al, dh
xor bl, dh
xor ah, dh
mov byte [ebp - 0x3b], al
xor ch, dh
mov byte [ebp - 0x38], bl
lea edx, [ebp - 0x3b]
mov byte [ebp - 0x36], ch
mov byte [ebp - 0x37], ah
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44df57
sub edx, ecx
cmp dword [ebp + 0x20], 0xf
lea ecx, [ebp + 0xc]
cmova ecx, edi
cmp esi, edx
jne 0x44dfd0
lea edx, [ebp - 0x3b]
sub esi, 4
jb 0x44df87
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44df90
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44df76
cmp esi, 0xfffffffc
je 0x44e128
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44dfcd
cmp esi, 0xfffffffd
je 0x44e128
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44dfcd
cmp esi, 0xfffffffe
je 0x44e128
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44dfcd
cmp esi, 0xffffffff
je 0x44e128
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44e128
mov esi, dword [ebp + 0x1c]
mov ah, 0x17
mov byte [ebp - 0x2f], 0
mov dl, 0x52
mov byte [ebp - 0x34], ah
xor dl, ah
mov byte [ebp - 0x2f], 0
mov cl, 0x43
mov byte [ebp - 0x31], dl
mov al, 0x5e
lea edx, [ebp - 0x33]
xor cl, ah
mov bl, 0x5a
xor al, ah
mov byte [ebp - 0x32], cl
xor bl, ah
mov byte [ebp - 0x33], al
mov byte [ebp - 0x30], bl
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x44e000
mov ebx, dword [ebp + 0x20]
sub edx, ecx
cmp ebx, 0xf
lea ecx, [ebp + 0xc]
cmova ecx, edi
cmp esi, edx
jne 0x44e07b
lea edx, [ebp - 0x33]
sub esi, 4
jb 0x44e032
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44e03b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44e021
cmp esi, 0xfffffffc
je 0x44e128
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44e078
cmp esi, 0xfffffffd
je 0x44e128
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44e078
cmp esi, 0xfffffffe
je 0x44e128
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44e078
cmp esi, 0xffffffff
je 0x44e128
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44e128
mov esi, dword [ebp + 0x1c]
mov dl, 0x71
mov byte [ebp - 0xcd], 0
mov al, 0x37
mov byte [ebp - 0xd0], dl
mov cl, 0x29
mov byte [ebp - 0xcd], 0
xor al, dl
xor cl, dl
lea edx, [ebp - 0xcf]
mov byte [ebp - 0xce], cl
mov byte [ebp - 0xcf], al
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x44e0b0
sub edx, ecx
cmp ebx, 0xf
lea ecx, [ebp + 0xc]
cmova ecx, edi
cmp esi, edx
jne 0x44eecf
lea edx, [ebp - 0xcf]
sub esi, 4
jb 0x44e0e6
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44e0eb
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44e0d5
cmp esi, 0xfffffffc
je 0x44e128
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44eecf
cmp esi, 0xfffffffd
je 0x44e128
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44eecf
cmp esi, 0xfffffffe
je 0x44e128
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44eecf
cmp esi, 0xffffffff
je 0x44e128
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x44eecf
mov ah, 0x27
mov byte [ebp - 0xb], 0
mov cl, 0x4f
mov byte [ebp - 0xc2], 0
xor cl, ah
mov byte [ebp - 0x10], ah
mov al, 9
mov byte [ebp - 0xe], cl
xor al, ah
mov byte [ebp - 0xb], 0
mov dl, 0x43
mov byte [ebp - 0xf], al
mov cl, 0x45
mov byte [ebp - 0xc2], 0
mov bl, 0x55
mov byte [ebp - 0xc4], cl
xor dl, ah
xor bl, ah
mov al, 0x19
mov byte [ebp - 0xd], dl
xor al, cl
mov byte [ebp - 0xc], bl
lea ecx, [ebp - 0xc3]
mov byte [ebp - 0xc3], al
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e180
mov esi, accept
sub ecx, edx
mov edx, dword [ebp + 0x1c]
mov eax, esi
sub eax, edx
cmp eax, ecx
jb 0x44eff8
cmp dword [ebp + 0x20], 0xf
lea eax, [ebp + 0xc]
push ecx
lea ecx, [ebp - 0xc3]
cmova eax, edi
push ecx
push edx
push eax
push ecx
push dword [ebp - 0xd4]
lea ecx, [ebp - 0x54]
call fcn.0044c3c0
cmp dword [ebp + 0x20], 0xf
lea ecx, [ebp + 0xc]
mov edx, dword [ebp - 0x40]
mov eax, edx
cmova ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0x44]
sub eax, ebx
push edi
push ecx
cmp edi, eax
ja 0x44e20b
cmp edx, 0xf
lea esi, [ebp - 0x54]
lea eax, [ebx + edi]
cmova esi, dword [ebp - 0x54]
mov dword [ebp - 0x44], eax
lea eax, [esi + ebx]
push eax
call fcn.004ad470
lea eax, [edi + esi]
add esp, 0xc
mov byte [eax + ebx], 0
mov esi, accept
lea eax, [ebp - 0x54]
jmp 0x44e21a
push dword [ebp - 0xd4]
lea ecx, [ebp - 0x54]
push edi
call fcn.0044b480
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x2c], xmm0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0xf]
push eax
call fcn.004486a0
mov dword [ebp - 0x5c], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x58], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x5c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x44e2c8
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44e2be
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44effd
push ecx
push edx
call fcn.004abdca
add esp, 8
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
cmp ecx, 0xf
jbe 0x44e30e
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44e304
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44effd
push ecx
push edx
call fcn.004abdca
add esp, 8
mov ah, 0x74
mov byte [ebp - 0xb], 0
mov cl, 7
mov byte [ebp - 0xc6], 0
xor cl, ah
mov byte [ebp - 0x10], ah
mov al, 0x5a
mov byte [ebp - 0xe], cl
xor al, ah
mov byte [ebp - 0xb], 0
mov dl, 6
mov byte [ebp - 0xf], al
mov cl, 0x4a
mov byte [ebp - 0xc6], 0
mov bl, 0x17
mov byte [ebp - 0xc8], cl
xor dl, ah
xor bl, ah
mov al, 0x16
mov byte [ebp - 0xd], dl
xor al, cl
mov byte [ebp - 0xc], bl
lea ecx, [ebp - 0xc7]
mov byte [ebp - 0xc7], al
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e360
sub ecx, edx
mov edx, dword [ebp + 0x1c]
sub esi, edx
cmp esi, ecx
jb 0x44f002
cmp dword [ebp + 0x20], 0xf
lea eax, [ebp + 0xc]
push ecx
cmova eax, dword [ebp + 0xc]
lea ecx, [ebp - 0xc7]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0xd4]
lea ecx, [ebp - 0x54]
call fcn.0044c3c0
cmp dword [ebp + 0x20], 0xf
lea ecx, [ebp + 0xc]
mov edx, dword [ebp - 0x40]
mov eax, edx
cmova ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0x44]
sub eax, ebx
push edi
push ecx
cmp edi, eax
ja 0x44e3e0
cmp edx, 0xf
lea esi, [ebp - 0x54]
lea eax, [ebx + edi]
cmova esi, dword [ebp - 0x54]
mov dword [ebp - 0x44], eax
lea eax, [esi + ebx]
push eax
call fcn.004ad470
lea eax, [edi + esi]
add esp, 0xc
mov byte [eax + ebx], 0
lea eax, [ebp - 0x54]
jmp 0x44e3ef
push dword [ebp - 0xd4]
lea ecx, [ebp - 0x54]
push edi
call fcn.0044b480
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x2c], xmm0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0xf]
push eax
call fcn.004486a0
mov dword [ebp - 0x9c], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0xac], xmm0
mov dword [ebp - 0x98], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xac], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x9c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x44e4ac
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44e4a2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f007
push ecx
push edx
call fcn.004abdca
add esp, 8
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
cmp ecx, 0xf
jbe 0x44e4f2
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44e4e8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f007
push ecx
push edx
call fcn.004abdca
add esp, 8
xor eax, eax
mov dword [ebp - 0xdc], 0
push 0x2800
mov dword [ebp - 0x110], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], 1
call fcn.004abdd8
add esp, 4
mov dword [ebp - 0xb4], 0
mov edi, eax
xor esi, esi
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xbc], esi
push 0x30
call fcn.004abb44
sub esp, 0x14
xor ebx, ebx
mov ecx, esp
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0x6c]
push eax
mov dword [ebp - 0xec], ebx
call fcn.00448960
call fcn.0044dcb0
cmp dword [ebp + 0x20], 0xf
lea eax, [ebp + 0xc]
mov ecx, dword [ebp - 0xb0]
cmova eax, dword [ebp + 0xc]
push eax
call fcn.0044cdb0
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x44ed91
cmp dword [ebp - 0x98], 0xf
lea eax, [ebp - 0xac]
push ebx
cmova eax, dword [ebp - 0xac]
push 0x2000000
push 4
push ebx
push 3
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
mov dword [ebp - 0xe4], esi
cmp esi, 0xffffffff
je 0x44ed91
push 2
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp dword [ebp + 0x20], 0xf
movaps xmm0, xmmword [0x5035a0]
mov dword [ebp - 0xe0], eax
lea eax, [ebp + 0xc]
cmova eax, dword [ebp + 0xc]
xor ecx, ecx
movups xmmword [ebp - 0x94], xmm0
push eax
movaps xmm0, xmmword [0x5036b0]
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x74], 0x3c3c667b
mov word [ebp - 0x70], 0x3c
nop dword [eax + eax]
mov al, byte [ebp - 0x94]
xor byte [ebp + ecx - 0x93], al
inc ecx
cmp ecx, 0x24
jb 0x44e650
sub esp, 0x18
mov byte [ebp - 0x6f], bl
mov edx, esp
lea ecx, [ebp - 0x93]
xorps xmm0, xmm0
lea eax, [ecx + 1]
mov dword [ebp - 0xb0], eax
movups xmmword [edx], xmm0
mov dword [edx + 0x10], ebx
mov dword [edx + 0x14], ebx
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e686
sub ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0x93]
push ecx
push eax
mov ecx, edx
call fcn.00444da0
lea eax, [ebp - 0x12c]
push eax
call fcn.004597c0
mov ecx, dword [0x517ad0]
lea eax, [ebp - 0x12c]
add ecx, 0x280
add esp, 0x20
cmp ecx, eax
je 0x44e6e1
cmp dword [ebp - 0x118], 0xf
push dword [ebp - 0x11c]
cmova eax, dword [ebp - 0x12c]
push eax
call fcn.004449f0
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xf
jbe 0x44e71b
mov edx, dword [ebp - 0x12c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44e711
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f01b
push ecx
push edx
call fcn.004abdca
add esp, 8
cmp dword [ebp - 0x58], 0xf
lea eax, [ebp - 0x6c]
push 0
cmova eax, dword [ebp - 0x6c]
push 0x2000000
push 4
push 0
push 3
push accept
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xb4], eax
cmp eax, 0xffffffff
je 0x44ed91
mov esi, dword [ebp - 0xb4]
lea eax, [ebp - 0xdc]
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
push eax
push 4
lea eax, [ebp - 0xb8]
push eax
push esi
call ebx
cmp dword [ebp - 0xb8], 0
mov dword [ebp - 0xb0], 0
jbe 0x44ea58
push 0
lea eax, [ebp - 0xdc]
push eax
push 4
lea eax, [ebp - 0xd8]
push eax
push esi
call ebx
mov eax, dword [ebp - 0xd8]
xor edi, edi
xor ebx, ebx
lea esi, [eax + 1]
test esi, esi
je 0x44e807
cmp esi, 0x7fffffff
ja 0x44f011
cmp esi, 0x1000
jb 0x44e7e7
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x44f00c
push eax
call fcn.004abb44
add esp, 4
test eax, eax
je 0x44effd
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x44e7f2
push esi
call fcn.004abb44
add esp, 4
mov edi, eax
push esi
push 0
push edi
lea ebx, [edi + esi]
call fcn.004ad0a0
mov eax, dword [ebp - 0xd8]
add esp, 0xc
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
lea ecx, [ebp - 0xdc]
push 0
push ecx
push eax
push edi
push dword [ebp - 0xb4]
call esi
push 1
push 0
push 0
push dword [ebp - 0xb4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
mov dword [ebp - 0xe8], eax
lea eax, [ebp - 0xdc]
push eax
push 4
lea eax, [ebp - 0xd4]
push eax
push dword [ebp - 0xb4]
call esi
push 0
lea eax, [ebp - 0xdc]
push eax
push 4
lea eax, [ebp - 0x100]
push eax
push dword [ebp - 0xb4]
call esi
mov ecx, edi
mov dword [ebp - 0x1c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e886
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x2c]
call fcn.00444da0
mov esi, dword [ebp - 0x100]
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x108], esi
call fcn.00448960
mov eax, dword [ebp - 0xe8]
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x48]
mov dword [ebp - 0x74], esi
push eax
call fcn.0044f440
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x14], xmm0
cmp byte [eax + 0xd], 0
jne 0x44e955
mov edx, dword [eax + 0x20]
add eax, 0x10
cmp dword [eax + 0x14], 0xf
jbe 0x44e8f6
mov eax, dword [eax]
cmp dword [ebp - 0x7c], 0xf
lea ecx, [ebp - 0x90]
mov esi, dword [ebp - 0x90]
push edx
mov edx, dword [ebp - 0x80]
cmova ecx, esi
push eax
call fcn.0044b300
add esp, 8
test eax, eax
je 0x44e91c
js 0x44e955
mov eax, dword [ebp - 0x7c]
cmp eax, 0xf
jbe 0x44e9ca
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x44e949
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44effd
push ecx
push esi
call fcn.004abdca
add esp, 8
jmp 0x44e9ca
cmp dword [ebp - 0xbc], 0x5555555
je 0x44f016
mov esi, dword [ebp - 0xc0]
push 0x30
call fcn.004abb44
movups xmm0, xmmword [ebp - 0x90]
mov ecx, dword [ebp - 0xe8]
add esp, 4
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
movups xmmword [eax + 0x10], xmm0
push eax
movq xmm0, qword [ebp - 0x80]
push dword [ebp - 0x10]
movq qword [eax + 0x20], xmm0
push dword [ebp - 0x14]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebp - 0x108]
mov dword [eax + 0x2c], ecx
lea ecx, [ebp - 0xc0]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov word [eax + 0xc], 0
call fcn.0044f7e0
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x44e9fe
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44e9f4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44effd
push ecx
push edx
call fcn.004abdca
add esp, 8
test edi, edi
je 0x44ea2c
sub ebx, edi
mov eax, edi
cmp ebx, 0x1000
jb 0x44ea22
mov edi, dword [eax - 4]
add ebx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44effd
push ebx
push edi
call fcn.004abdca
add esp, 8
mov eax, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xb4]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xb8]
jae 0x44ea52
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
jmp 0x44e786
mov edi, dword [ebp - 0xf0]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov bl, 0x7d
mov byte [ebp - 0xc], 0
mov al, 0xf
mov dword [ebp - 0xb4], 0
xor al, bl
mov byte [ebp - 0x10], bl
mov cl, 0x56
mov byte [ebp - 0xf], al
xor cl, bl
mov byte [ebp - 0xc], 0
mov dl, 0x1f
mov byte [ebp - 0xe], cl
xor dl, bl
lea ecx, [ebp - 0xf]
cmp dword [ebp - 0x58], 0xf
lea eax, [ebp - 0x6c]
push ecx
cmova eax, dword [ebp - 0x6c]
push eax
mov byte [ebp - 0xd], dl
call fcn.004b6b87
add esp, 8
mov ebx, eax
cmp dword [ebp - 0xb8], 0
mov dword [ebp - 0xd4], ebx
jne 0x44ead5
push 0
push 0
push ebx
call fcn.004b6a8b
add esp, 0xc
lea eax, [ebp - 0xb8]
push ebx
push 1
push 4
push eax
call fcn.004b5df0
add esp, 0x10
mov edx, dword [ebp - 0xf4]
mov esi, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebp - 0xe8], esi
cmp esi, ecx
je 0x44ed8b
nop
sub ecx, dword [edx]
mov eax, 0x92492493
imul ecx
imul eax, dword [ebp - 0xf8], 0x64
sub esp, 8
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
xor edx, edx
div ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5034e0]
movsd qword [ebp - 0x10c], xmm0
fld qword [ebp - 0x10c]
fstp qword [esp]
call fcn.004b7bd1
fnstcw word [ebp - 0xd6]
movzx eax, word [ebp - 0xd6]
add esp, 8
or eax, 0xc00
mov dword [ebp - 0x108], eax
mov eax, dword [0x517ad0]
push esi
fldcw word [ebp - 0x108]
fistp dword [ebp - 0x108]
mov cl, byte [ebp - 0x108]
mov byte [eax + 0x298], cl
mov eax, dword [esi + 0x18]
fldcw word [ebp - 0xd6]
mov dword [ebp - 0xec], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0044cb40
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0xc0]
call fcn.0044f440
mov edi, dword [ebp - 0x40]
mov eax, dword [ebp - 0xc0]
cmp byte [edi + 0xd], 0
jne 0x44ebea
cmp dword [edi + 0x24], 0xf
lea eax, [edi + 0x10]
mov edx, dword [eax + 0x10]
jbe 0x44ebbe
mov eax, dword [eax]
cmp dword [ebp - 0x18], 0xf
lea ecx, [ebp - 0x2c]
push edx
cmova ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
push eax
call fcn.0044b300
add esp, 8
test eax, eax
je 0x44ebdc
js 0x44ebe4
mov eax, dword [ebp - 0xc0]
jmp 0x44ebec
mov eax, dword [ebp - 0xc0]
mov edi, eax
cmp edi, eax
je 0x44ec3a
push 0
push dword [edi + 0x28]
push ebx
call fcn.004b6a8b
add esp, 0xc
lea eax, [ebp - 0xe0]
push ebx
push 1
push 4
push eax
call fcn.004b5df0
mov eax, dword [edi + 0x28]
push 0
add eax, 4
push eax
push ebx
call fcn.004b6a8b
add esp, 0x1c
lea eax, [ebp - 0xec]
push ebx
push 1
push 4
push eax
call fcn.004b5df0
add esp, 0x10
jmp 0x44eccd
cmp dword [ebp - 0x18], 0xf
lea edi, [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
cmova edi, dword [ebp - 0x2c]
push 2
push 0
push ebx
mov dword [ebp - 0xb0], eax
call fcn.004b6a8b
add esp, 0xc
lea eax, [ebp - 0xb0]
push ebx
push 1
push 4
push eax
call fcn.004b5df0
push 2
push 0
push ebx
call fcn.004b6a8b
add esp, 0x1c
push ebx
push dword [ebp - 0xb0]
push 1
push edi
call fcn.004b5df0
push 2
push 0
push ebx
call fcn.004b6a8b
add esp, 0x1c
lea eax, [ebp - 0xe0]
push ebx
push 1
push 4
push eax
call fcn.004b5df0
push 2
push 0
push ebx
call fcn.004b6a8b
add esp, 0x1c
lea eax, [ebp - 0xec]
push ebx
push 1
push 4
push eax
call fcn.004b5df0
add esp, 0x10
inc dword [ebp - 0xfc]
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x44ecd7
mov eax, dword [esi]
push 0
push 0x2000000
push 3
push 0
push 3
push accept
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xb0], eax
cmp eax, 0xffffffff
jne 0x44ef00
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x44ed3a
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44ed30
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44effd
push ecx
push edx
call fcn.004abdca
add esp, 8
mov edi, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xf4]
add esi, 0x1c
mov dword [ebp - 0xe8], esi
mov ecx, dword [edx + 4]
cmp esi, ecx
jne 0x44eaf0
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x44ed8b
add dword [ebp - 0xb8], eax
push 0
push 0
push ebx
call fcn.004b6a8b
add esp, 0xc
lea eax, [ebp - 0xb8]
push ebx
push 1
push 4
push eax
call fcn.004b5df0
add esp, 0x10
mov esi, dword [ebp - 0xe4]
push edi
call fcn.004abb3f
add esp, 4
test ebx, ebx
je 0x44eda7
push ebx
call fcn.004b49e8
add esp, 4
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x44edb4
push esi
call ebx
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x44edc1
push eax
call ebx
mov esi, dword [ebp - 0xc0]
lea eax, [ebp - 0xc0]
mov ecx, eax
push dword [esi + 4]
push eax
call fcn.0044f350
mov ebx, dword [ebp - 0xf4]
mov dword [esi + 4], esi
mov dword [esi], esi
mov dword [esi + 8], esi
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
mov dword [ebp - 0xbc], 0
cmp ecx, edx
je 0x44ee07
push ecx
call fcn.0044f3e0
mov eax, dword [ebx]
add esp, 4
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0xc0]
push dword [eax + 4]
lea eax, [ebp - 0xc0]
push eax
mov ecx, eax
call fcn.0044f350
push 0x30
push dword [ebp - 0xc0]
call fcn.004abdca
mov ecx, dword [ebp - 0x98]
add esp, 8
cmp ecx, 0xf
jbe 0x44ee68
mov edx, dword [ebp - 0xac]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44ee5e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f01b
push ecx
push edx
call fcn.004abdca
add esp, 8
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0xf
mov byte [ebp - 0xac], 0
cmp ecx, 0xf
jbe 0x44eeb7
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44eead
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f01b
push ecx
push edx
call fcn.004abdca
add esp, 8
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x20]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov byte [ebp - 0x6c], 0
cmp ebx, 0xf
jbe 0x44efe5
inc ebx
mov eax, edi
cmp ebx, 0x1000
jb 0x44efdb
mov edi, dword [eax - 4]
add ebx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f01b
jmp 0x44efdb
mov edi, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xe4]
push 0x2800
push 0
push edi
call fcn.004ad0a0
add esp, 0xc
lea eax, [ebp - 0x110]
push 0
push eax
push 0x2800
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x110]
lea ecx, [ebp - 0x100]
push 0
push ecx
push eax
push edi
cmp eax, 0x2800
jb 0x44ef59
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x44ef12
push dword [ebp - 0xe4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 0xb0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0xe8]
mov eax, esi
mov ebx, dword [ebp - 0xd4]
cmp dword [esi + 0x14], 0xf
jbe 0x44ef87
mov eax, dword [esi]
push eax
call fcn.004b4ba9
mov eax, dword [ebp - 0xec]
add esp, 4
add dword [ebp - 0xe0], eax
inc dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x44ed40
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44efcc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44effd
push ecx
push edx
call fcn.004abdca
add esp, 8
jmp 0x44ed40
push ebx
push edi
call fcn.004abdca
add esp, 8
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004abb31
mov esp, ebp
pop ebp
ret 0x1c
call fcn.00443a50
call fcn.004b4061
call fcn.00443a50
call fcn.004b4061
call fcn.004439b0
call fcn.00444950
call fcn.0044c9e0
call fcn.004b4061
int3