Function at 0x41b900
Capabilities:
Check for time delay via queryperformancecounter
Initialize winsock library
Read file on windows
Set current directory
Write file on windows

Disassembly:
sub esp, 0x19c
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push ebx
mov esi, eax
call fcn.00401444
add esp, 4
push eax
call fcn.00402c50
add esp, 4
xor eax, eax
jmp 0x41b930
mov dword [eax + 0x42f62c], ebx
add eax, 0x3a0
cmp eax, 0x7400
jne 0x41b930
push 0xc1808
call fcn.00401271
add esp, 4
mov dword [0x43711c], eax
cmp eax, ebx
je 0x41be3e
call fcn.004162b0
cmp esi, ebx
jne 0x41ba3b
push 0x1a
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
push ebx
call fcn.00401444
add esp, 4
push eax
call fcn.004143f0
mov eax, dword [str.vxl_lastgen.vxl]
mov ecx, dword [0x4294c8]
mov edx, dword [0x4294cc]
add esp, 4
mov dword [0x1961200], eax
mov eax, dword [0x4294d0]
push 0x4296b8
push 0x1961200
mov dword [0x1961204], ecx
mov dword [0x1961208], edx
mov dword [0x196120c], eax
call fcn.004011e0
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x41ba23
mov esi, 0x4b82c0
mov ecx, dword [esi]
mov dl, byte [ecx]
mov eax, ecx
cmp dl, bl
je 0x41b9ed
movzx edx, dl
lea eax, [eax + edx*4]
mov dl, byte [eax]
cmp dl, bl
jne 0x41b9e1
movzx edx, byte [eax + 2]
movzx ebp, byte [eax + 1]
sub edx, ebp
lea edx, [edx*4 + 8]
push edi
sub edx, ecx
push 1
add edx, eax
push edx
push ecx
call fcn.0040327d
add esi, 4
add esp, 0x10
cmp esi, 0x5b82c0
jl 0x41b9d7
push edi
call fcn.004020eb
add esp, 4
push 0x429394
push 0x1961200
call fcn.004011e0
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x41ba5e
mov eax, dword [esi + 0x10]
push esi
push 1
push eax
call fcn.00402fa8
add esp, 4
push eax
push 0x948cc4
call fcn.004026b7
push esi
call fcn.004020eb
add esp, 0x14
call fcn.00415b60
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
fild qword [esp + 0x10]
fld1
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fdivrp st(1)
push 0x42f108
fstp dword [0x42eef0]
call esi
lea edx, [esp + 0x10]
push edx
call esi
mov eax, dword [esp + 0x10]
sub eax, dword [0x42f108]
mov ecx, dword [esp + 0x14]
sbb ecx, dword [0x42f10c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
fild qword [esp + 0x10]
fmul dword [0x42eef0]
fstp dword [0x1961f88]
fldz
fstp dword [0x1961ee8]
call fcn.00415eb0
cmp dword [esp + 0x1b0], ebx
jne 0x41bb07
mov dword [0x19622b8], ebx
mov dword [0x1961b94], 0x4178b0
mov dword [0x1961b4c], 0x416150
mov eax, 0x416780
mov dword [0x19611a4], 0x417280
mov dword [0x1961194], 0x417c50
jmp 0x41bb3e
mov dword [0x19622b8], 1
mov dword [0x1961b94], 0x4176f0
mov dword [0x1961b4c], 0x416100
mov eax, 0x416560
mov dword [0x19611a4], 0x418ba0
mov dword [0x1961194], 0x417b40
mov dword [0x1961cd0], eax
call eax
push ebx
mov dword [0x1961ee4], ebx
mov dword [0x196118c], ebx
call fcn.00401444
add esp, 4
mov dword [0x1961b44], edx
lea edx, [esp + 0x18]
push edx
push 0x101
mov dword [0x1961b40], eax
mov dword [0x19611e0], ebx
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x41bc28
mov eax, dword [esp + 0x18]
cmp al, 1
jne 0x41bc22
shr eax, 8
cmp al, 1
jne 0x41bc22
push 1
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
push 0x104
push 0x1961ce0
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x41be3e
push 0x5c
push 0x1961ce0
call fcn.00402c90
add esp, 8
push 0x1961ce0
mov byte [eax], bl
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x429394
push str.client.exe
call fcn.004011e0
add esp, 8
mov dword [0x1961b8c], eax
cmp eax, ebx
jne 0x41bc38
push 0x5e
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
push str.pause
call fcn.00402b73
add esp, 4
mov eax, 0xfffffffc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x19c
ret
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x19c
ret
push 2
push ebx
push eax
call fcn.00402957
mov eax, dword [0x1961b8c]
add esp, 0xc
push eax
call fcn.00402868
mov ecx, dword [0x1961b8c]
add esp, 4
push ebx
push ebx
push ecx
mov esi, eax
call fcn.00402957
add esp, 0xc
push esi
call fcn.00401271
mov edx, dword [0x1961b8c]
add esp, 4
push edx
push esi
push 1
push eax
mov dword [0x1961310], eax
call fcn.004026b7
add esp, 0x10
cmp esi, eax
je 0x41bc9f
mov eax, dword [0x1961310]
push eax
call fcn.004011f7
add esp, 4
push 0xd
jmp 0x41bbf4
mov ecx, dword [0x1961b8c]
push ecx
call fcn.004020eb
mov edx, dword [0x1961310]
add esp, 4
mov eax, 0x1961b20
mov dword [0x1961b24], edx
mov dword [0x1961b20], esi
call fcn.00421030
mov dword [0x1961f94], eax
mov eax, dword [0x1961310]
push eax
call fcn.004011f7
mov eax, dword [esp + 0x1b8]
add esp, 4
cmp eax, 0x20
jbe 0x41bcfb
mov dword [esp + 0x1b4], 0x20
mov eax, dword [esp + 0x1b4]
mov ecx, 0x8077
mov dword [0x1961318], ebx
mov word [0x196131c], cx
cmp eax, 0xfff
jbe 0x41bd18
xor eax, eax
jmp 0x41bd26
push eax
push 0x1961318
call fcn.004218d0
add esp, 8
mov dword [0x1961190], eax
cmp eax, ebx
jne 0x41bd5f
push 0x15
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
push str.pause
call fcn.00402b73
add esp, 4
mov eax, 0xfffffffd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x19c
ret
mov esi, eax
call fcn.00422af0
push 0x53
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
cmp dword [esp + 0x1bc], ebx
je 0x41be87
push 0xb
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
call fcn.00415fe0
test eax, eax
je 0x41bda9
push 0x14
jmp 0x41be4e
push 0x45
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
mov eax, dword [esp + 0x1bc]
mov dl, byte [esp + 0x1b8]
add esp, 4
push 0x1f
push eax
push 0x1961ce1
mov byte [0x1961ce0], dl
call section..text
mov eax, 0x1961ce1
add esp, 0xc
mov byte [0x1961d00], bl
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x41bdf0
sub eax, edx
add eax, 2
push 1
push eax
mov ebx, 0x1961ce0
call fcn.00420fa0
mov ecx, dword [0x1961b90]
push ecx
mov ebx, eax
call fcn.00420400
add esp, 0xc
test eax, eax
je 0x41be4c
push 0x17
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
push str.pause
call fcn.00402b73
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x19c
ret
push 0x46
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
push 0x10
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
push 0x32
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
jmp 0x41be93
mov dword [0x1961b90], ebx
mov dword [0x19610e4], ebx
push 0x4c
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
mov ebx, 0x1961ce0
call fcn.00413a60
test eax, eax
je 0x41bed4
push 0x31
call fcn.0041cc50
add esp, 4
push eax
call fcn.004023b0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x19c
ret
push 0x1961ce0
call dword [sym.imp.WS2_32.dll_inet_addr]
push eax
push 0x4a
call fcn.0041cc50
push eax
call fcn.004023b0
add esp, 0xc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x19c
ret