Function at 0x10003420
Capabilities:
Encode data using xor
Get file size
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1019d931
mov eax, dword fs:[0]
push eax
sub esp, 0x290
mov eax, dword [0x1026e004]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x288], eax
lea eax, [ebp - 0x21c]
push edx
push 0x208
push eax
mov eax, dword [0x102a8048]
mov eax, dword [eax + 0xe8]
call eax
mov dword [ebp - 0x274], 0x1a84
mov eax, dword [ebp - 0x274]
xor eax, 0x3a
mov word [ebp - 0x270], ax
mov eax, dword [ebp - 0x274]
inc eax
xor eax, 0x7b
mov word [ebp - 0x26e], ax
mov eax, dword [ebp - 0x274]
add eax, 2
xor eax, 0x35
mov word [ebp - 0x26c], ax
mov eax, dword [ebp - 0x274]
add eax, 3
xor eax, 0x35
mov word [ebp - 0x26a], ax
mov eax, dword [ebp - 0x274]
add eax, 4
xor eax, 0x30
mov word [ebp - 0x268], ax
mov eax, dword [ebp - 0x274]
add eax, 5
xor eax, 0x35
mov word [ebp - 0x266], ax
mov eax, dword [ebp - 0x274]
add eax, 6
xor eax, 0x41
mov word [ebp - 0x264], ax
mov eax, dword [ebp - 0x274]
add eax, 7
xor eax, 0x33
mov word [ebp - 0x262], ax
mov eax, dword [ebp - 0x274]
add eax, 8
xor eax, 0x35
mov word [ebp - 0x260], ax
mov eax, dword [ebp - 0x274]
add eax, 9
xor eax, 0x30
mov word [ebp - 0x25e], ax
mov eax, dword [ebp - 0x274]
add eax, 0xa
xor eax, 0x2d
mov word [ebp - 0x25c], ax
mov eax, dword [ebp - 0x274]
add eax, 0xb
xor eax, 0x44
mov word [ebp - 0x25a], ax
mov eax, dword [ebp - 0x274]
add eax, 0xc
xor eax, 0x36
mov word [ebp - 0x258], ax
mov eax, dword [ebp - 0x274]
add eax, 0xd
xor eax, 0x43
mov word [ebp - 0x256], ax
mov eax, dword [ebp - 0x274]
add eax, 0xe
xor eax, 0x30
mov word [ebp - 0x254], ax
mov eax, dword [ebp - 0x274]
add eax, 0xf
xor eax, 0x2d
mov word [ebp - 0x252], ax
mov eax, dword [ebp - 0x274]
add eax, 0x10
xor eax, 0x34
mov word [ebp - 0x250], ax
mov eax, dword [ebp - 0x274]
add eax, 0x11
xor eax, 0x44
mov word [ebp - 0x24e], ax
mov eax, dword [ebp - 0x274]
add eax, 0x12
xor eax, 0x45
mov word [ebp - 0x24c], ax
mov eax, dword [ebp - 0x274]
add eax, 0x13
xor eax, 0x46
mov word [ebp - 0x24a], ax
mov eax, dword [ebp - 0x274]
add eax, 0x14
xor eax, 0x2d
mov word [ebp - 0x248], ax
mov eax, dword [ebp - 0x274]
add eax, 0x15
xor eax, 0x41
mov word [ebp - 0x246], ax
mov eax, dword [ebp - 0x274]
add eax, 0x16
xor eax, 0x42
mov word [ebp - 0x244], ax
mov eax, dword [ebp - 0x274]
add eax, 0x17
xor eax, 0x46
mov word [ebp - 0x242], ax
mov eax, dword [ebp - 0x274]
add eax, 0x18
xor eax, 0x43
mov word [ebp - 0x240], ax
mov eax, dword [ebp - 0x274]
add eax, 0x19
xor eax, 0x2d
mov word [ebp - 0x23e], ax
mov eax, dword [ebp - 0x274]
add eax, 0x1a
xor eax, 0x37
mov word [ebp - 0x23c], ax
mov eax, dword [ebp - 0x274]
add eax, 0x1b
xor eax, 0x31
mov word [ebp - 0x23a], ax
mov eax, dword [ebp - 0x274]
add eax, 0x1c
xor eax, 0x46
mov word [ebp - 0x238], ax
mov eax, dword [ebp - 0x274]
add eax, 0x1d
xor eax, 0x45
mov word [ebp - 0x236], ax
mov eax, dword [ebp - 0x274]
add eax, 0x1e
xor eax, 0x46
mov word [ebp - 0x234], ax
mov eax, dword [ebp - 0x274]
add eax, 0x1f
xor eax, 0x31
mov word [ebp - 0x232], ax
mov eax, dword [ebp - 0x274]
add eax, 0x20
xor eax, 0x32
mov word [ebp - 0x230], ax
mov eax, dword [ebp - 0x274]
add eax, 0x21
xor eax, 0x44
mov word [ebp - 0x22e], ax
mov eax, dword [ebp - 0x274]
add eax, 0x22
xor eax, 0x38
mov word [ebp - 0x22c], ax
mov eax, dword [ebp - 0x274]
add eax, 0x23
xor eax, 0x35
mov word [ebp - 0x22a], ax
mov eax, dword [ebp - 0x274]
add eax, 0x24
xor eax, 0x35
mov word [ebp - 0x228], ax
mov eax, dword [ebp - 0x274]
add eax, 0x25
xor eax, 0x41
mov word [ebp - 0x226], ax
mov eax, dword [ebp - 0x274]
add eax, 0x26
xor eax, 0x7d
mov word [ebp - 0x224], ax
xor eax, eax
mov word [ebp - 0x222], ax
mov ax, word [ebp - 0x270]
xor eax, eax
nop dword [eax]
mov cx, word [ebp + eax*2 - 0x270]
mov edx, dword [ebp - 0x274]
add edx, eax
movzx ecx, cx
xor edx, ecx
mov word [ebp + eax*2 - 0x270], dx
inc eax
cmp eax, 0x27
jb 0x10003770
xor eax, eax
mov word [ebp - 0x222], ax
lea eax, [ebp - 0x270]
push eax
push 0x208
lea eax, [ebp - 0x21c]
push eax
mov eax, dword [0x102a8048]
mov eax, dword [eax + 0xf0]
call eax
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
lea eax, [ebp - 0x21c]
push 0
push 0
push 3
push 0
push 3
push bind
push eax
call edi
mov esi, eax
cmp esi, 0xffffffff
jne 0x100037f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
or eax, 0xe0ff0000
jmp 0x100039de
push dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x298], 0
push esi
mov dword [ebp - 0x294], 0
call fcn.10006db0
mov dword [ebp - 4], 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x278], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x280]
push ecx
push eax
call fcn.100067b0
mov ecx, dword [ebp - 0x27c]
lea edx, [ebp - 0x284]
mov eax, dword [ebp - 0x280]
sub ecx, eax
push 0
push edx
push ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
or ebx, 0xffffffff
test eax, eax
jne 0x10003890
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or esi, 0xe0ff0000
jmp 0x10003955
mov eax, dword [ebp - 0x27c]
sub eax, dword [ebp - 0x280]
cmp dword [ebp - 0x284], eax
je 0x100038ae
mov esi, 0xe0010001
jmp 0x10003955
push 0
push 0
push 2
push 0
push 0
push 0x40000000
push dword [ebp - 0x288]
call edi
mov esi, eax
cmp esi, 0xffffffff
jne 0x100038dc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or esi, 0xe0ff0000
jmp 0x10003955
push dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x290]
mov dword [ebp - 0x290], 0
push esi
mov dword [ebp - 0x28c], 0
call fcn.10006db0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x29c]
mov ecx, dword [ebp - 0x280]
push 0
push eax
mov eax, dword [ebp - 0x27c]
sub eax, ecx
push eax
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
xor esi, esi
mov byte [ebp - 4], 1
mov edi, dword [ebp - 0x28c]
test edi, edi
je 0x10003955
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x10003955
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, ebx
lock xadd dword [edi + 8], eax
jne 0x10003955
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x280]
test ecx, ecx
je 0x100039ad
mov edx, dword [ebp - 0x278]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x10003985
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100039fc
push edx
push ecx
call fcn.100e04ea
add esp, 8
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x278], 0
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x294]
test edi, edi
je 0x100039dc
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x100039dc
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], ebx
dec ebx
jne 0x100039dc
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100e04a9
mov esp, ebp
pop ebp
ret 4
call fcn.100e48b6
int3