Function at 0x41e060
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x456994
mov eax, dword fs:[0]
push eax
mov eax, 0x11c8
call fcn.0044d3e0
mov eax, dword [0x467334]
xor eax, esp
mov dword [esp + 0x11c0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x467334]
xor eax, esp
push eax
lea eax, [esp + 0x11dc]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x11ec]
mov ecx, dword [ebp + 0x2b8]
xor edx, edx
mov dword [esp + 0x18], ebp
cmp ecx, edx
je 0x41e86f
cmp dword [ebp + 0x1b0], edx
je 0x41e86f
lea eax, [ebp + 0x2a4]
push eax
lea ecx, [esp + 0x30]
push ecx
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x44], esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], edx
mov byte [edi], dl
mov eax, dword [esi + 0x18]
mov ebx, pe_nt_image_headers32
cmp eax, ebx
jb 0x41e0fa
mov ecx, dword [edi]
jmp 0x41e0fc
mov ecx, edi
cmp ecx, 0x45b60c
ja 0x41e135
cmp eax, ebx
jb 0x41e10c
mov ecx, dword [edi]
jmp 0x41e10e
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45b60c
jbe 0x41e135
cmp eax, ebx
jb 0x41e121
mov edi, dword [edi]
push 2
mov eax, 0x45b60c
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x41e177
cmp eax, 2
jae 0x41e147
mov ecx, dword [esi + 0x14]
push ecx
push 2
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jb 0x41e152
mov eax, dword [edi]
jmp 0x41e154
mov eax, edi
push 2
push 0x45b60c
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
mov dword [esi + 0x14], 2
cmp dword [esi + 0x18], ebx
jb 0x41e173
mov edi, dword [edi]
mov byte [edi + 2], 0
lea esi, [esp + 0xc0]
call fcn.00401900
mov ecx, eax
mov dword [esp + 0x11ec], 2
call fcn.00401b50
mov byte [esp + 0x11e8], 3
cmp dword [eax + 0x18], ebx
jb 0x41e1a7
mov eax, dword [eax + 4]
jmp 0x41e1aa
add eax, 4
lea edx, [ebp + 0x19c]
push edx
mov edi, eax
lea esi, [esp + 0x50]
call fcn.00405a10
add esp, 4
push eax
lea edi, [esp + 0x6c]
mov byte [esp + 0x11ec], 4
call fcn.00405ac0
add esp, 8
push 0xffffffffffffffff
push 0
add ebp, 0x288
push eax
mov ecx, ebp
mov byte [esp + 0x11f0], 5
call fcn.00402ea0
cmp dword [esp + 0x7c], ebx
jb 0x41e201
mov eax, dword [esp + 0x68]
push eax
call fcn.0043c853
add esp, 4
xor edi, edi
mov esi, 0xf
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], edi
mov byte [esp + 0x68], 0
cmp dword [esp + 0x60], ebx
jb 0x41e228
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edi
mov byte [esp + 0x4c], 0
cmp dword [esp + 0x44], ebx
jb 0x41e248
mov edx, dword [esp + 0x30]
push edx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x44], esi
lea esi, [esp + 0x9c]
mov dword [esp + 0x40], edi
mov byte [esp + 0x30], 0
mov dword [esp + 0x11e4], 0xffffffff
call fcn.00429050
call fcn.00403c90
test eax, eax
je 0x41e27a
call fcn.00419f50
cmp dword [ebp + 0x18], ebx
jb 0x41e284
mov eax, dword [ebp + 4]
jmp 0x41e287
lea eax, [ebp + 4]
xor edi, edi
push edi
push 0x80
push 3
push edi
push edi
push closesocket
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
lea ebx, [edi + 0xa]
cmp esi, 0xffffffff
je 0x41e354
call fcn.00417b10
lea eax, [esp + 0x24]
push eax
push edi
push edi
mov dword [esp + 0x11f0], 0xffffffff
push esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
cmp eax, edi
je 0x41e354
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edi
push 0x989680
push ecx
push eax
call fcn.004462b0
mov edi, dword [esp + 0x18]
sub eax, 0xb6109100
push 0xfff
lea ecx, [esp + 0x1d9]
sbb edx, 2
push 0
push ecx
mov dword [edi + 0x280], eax
mov dword [edi + 0x284], edx
mov byte [esp + 0x1e0], 0
call fcn.00444d20
add esp, 0xc
push 0
lea edx, [esp + 0x20]
push edx
push ebx
lea eax, [esp + 0x1e0]
push eax
push esi
mov dword [esp + 0x30], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41e816
cmp dword [esp + 0x1c], eax
jne 0x41e816
test esi, esi
je 0x41e381
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00403c90
sub eax, 1
jne 0x41e373
call fcn.004399b0
call fcn.00438a50
call fcn.00403c90
test eax, eax
je 0x41e381
call fcn.00419cc0
call fcn.0043c831
cdq
mov ecx, 0xff
idiv ecx
mov edi, edx
shl edi, 8
call fcn.0043c831
cdq
mov ecx, 0xff
idiv ecx
mov esi, edx
add esi, edi
shl esi, 8
call fcn.0043c831
cdq
mov ecx, 0xff
idiv ecx
mov edi, edx
add edi, esi
shl edi, 8
call fcn.0043c831
cdq
mov ecx, 0xff
idiv ecx
mov eax, dword [esp + 0x18]
add edx, edi
mov dword [eax + 0x1f4], edx
call fcn.0043c831
cdq
mov ecx, 0x14
idiv ecx
mov esi, edx
inc esi
call fcn.0043c831
cdq
idiv esi
cmp edx, esi
jg 0x41e3f9
mov eax, esi
cdq
idiv esi
test edx, edx
je 0x41e410
call fcn.00418400
call dword [sym.imp.USER32.dll_GetActiveWindow]
call dword [sym.imp.USER32.dll_GetCapture]
call dword [sym.imp.USER32.dll_GetClipboardOwner]
call fcn.0043c831
cdq
mov ecx, 0x14
idiv ecx
mov esi, edx
inc esi
call fcn.0043c831
cdq
idiv esi
cmp edx, esi
jg 0x41e435
mov eax, esi
cdq
idiv esi
test edx, edx
je 0x41e43a
call fcn.004399b0
lea edx, [esp + 0xf4]
push edx
call fcn.00429cc0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x11e4], ebx
mov eax, dword [edi + 0x1f4]
push eax
lea ecx, [esp + 0x100]
push ecx
call fcn.00429170
lea ecx, [esp + 0x2c]
lea eax, [esp + 0xf4]
call fcn.00429df0
push 0xffffffffffffffff
push 0
lea esi, [edi + 0x1f8]
push eax
mov ecx, esi
mov byte [esp + 0x11f0], 0xd
call fcn.00402ea0
mov byte [esp + 0x11e4], bl
mov ebx, pe_nt_image_headers32
cmp dword [esp + 0x44], ebx
jb 0x41e4af
mov edx, dword [esp + 0x30]
push edx
call fcn.0043c853
add esp, 4
call fcn.00403c90
test eax, eax
je 0x41e4bd
call fcn.00439810
cmp dword [ebp + 0x18], ebx
jb 0x41e4c7
mov eax, dword [ebp + 4]
jmp 0x41e4ca
lea eax, [ebp + 4]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, eax
mov dword [esp + 0x1c], ecx
cmp ecx, 0xffffffff
jne 0x41e659
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
sub esp, 0x1c
mov edi, esp
lea eax, [esp + 0x4c]
push eax
mov esi, ebp
sub esp, 0x1c
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov esi, esp
mov ebp, 0xf
mov dword [esi + 0x18], ebp
lea edi, [esi + 4]
mov dword [esi + 0x14], 0
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 0x5c], esp
cmp eax, ebx
jb 0x41e535
mov ecx, dword [edi]
jmp 0x41e537
mov ecx, edi
cmp ecx, 0x45c374
ja 0x41e570
cmp eax, ebx
jb 0x41e547
mov ecx, dword [edi]
jmp 0x41e549
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45c374
jbe 0x41e570
cmp eax, ebx
jb 0x41e55c
mov edi, dword [edi]
push 0x26
mov eax, 0x45c374
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x41e5b2
cmp eax, 0x26
jae 0x41e582
mov ecx, dword [esi + 0x14]
push ecx
push 0x26
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jb 0x41e58d
mov eax, dword [edi]
jmp 0x41e58f
mov eax, edi
push 0x26
push 0x45c374
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
mov dword [esi + 0x14], 0x26
cmp dword [esi + 0x18], ebx
jb 0x41e5ae
mov edi, dword [edi]
mov byte [edi + 0x26], 0
lea esi, [esp + 0xdc]
call fcn.00401900
mov ecx, eax
mov byte [esp + 0x1208], 0xe
call fcn.00401b50
mov byte [esp + 0x1204], 0xf
cmp dword [eax + 0x18], ebx
jb 0x41e5df
mov eax, dword [eax + 4]
jmp 0x41e5e2
add eax, 4
mov edx, dword [esp + 0x38]
push eax
push 1
push edx
call fcn.0041c440
add esp, 0x2c
cmp dword [esp + 0x44], ebx
jb 0x41e605
mov eax, dword [esp + 0x30]
push eax
call fcn.0043c853
add esp, 4
lea esi, [esp + 0x9c]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.00429050
lea ecx, [esp + 0x148]
mov dword [esp + 0x11e4], 0xffffffff
call fcn.00429d60
lea ecx, [esp + 0x148]
push ecx
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.0043c062
add esp, 4
jmp 0x41e98d
mov eax, dword [edi + 0x20c]
mov dword [esp + 0x20], 0
cmp dword [esi + 0x18], ebx
jb 0x41e671
mov esi, dword [esi + 4]
jmp 0x41e674
add esi, 4
push 0
lea edx, [esp + 0x24]
push edx
push eax
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x41e693
cmp dword [esp + 0x20], 0
jne 0x41e7c0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
sub esp, 0x1c
mov edi, esp
lea eax, [esp + 0xa0]
push eax
sub esp, 0x1c
mov ecx, 7
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], 0
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 0x64], esp
cmp eax, ebx
jb 0x41e6d8
mov ecx, dword [edi]
jmp 0x41e6da
mov ecx, edi
cmp ecx, 0x45c39c
ja 0x41e713
cmp eax, ebx
jb 0x41e6ea
mov ecx, dword [edi]
jmp 0x41e6ec
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45c39c
jbe 0x41e713
cmp eax, ebx
jb 0x41e6ff
mov edi, dword [edi]
push 0x24
mov eax, 0x45c39c
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x41e755
cmp eax, 0x24
jae 0x41e725
mov ecx, dword [esi + 0x14]
push ecx
push 0x24
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jb 0x41e730
mov eax, dword [edi]
jmp 0x41e732
mov eax, edi
push 0x24
push 0x45c39c
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
mov dword [esi + 0x14], 0x24
cmp dword [esi + 0x18], ebx
jb 0x41e751
mov edi, dword [edi]
mov byte [edi + 0x24], 0
lea esi, [esp + 0x1bc]
call fcn.00401900
mov ecx, eax
mov byte [esp + 0x1208], 0x10
call fcn.00401db0
mov byte [esp + 0x1204], 0x11
cmp dword [eax + 0x18], ebx
jb 0x41e782
mov eax, dword [eax + 4]
jmp 0x41e785
add eax, 4
mov edx, dword [esp + 0x38]
push eax
push 1
push edx
call fcn.0041c440
add esp, 0x2c
lea ecx, [esp + 0x80]
call fcn.00402c70
lea esi, [esp + 0x17c]
call fcn.00429050
call fcn.004179a0
test eax, eax
je 0x41e7c0
call fcn.00418470
call fcn.004184e0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41e7dd
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00438a10
test eax, eax
je 0x41e7dd
call fcn.00418470
lea ecx, [esp + 0x148]
mov dword [esp + 0x11e4], 0xffffffff
call fcn.00429d60
lea eax, [esp + 0x148]
push eax
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.0043c062
add esp, 4
xor eax, eax
jmp 0x41e992
call fcn.00403c90
mov dword [esp + 0x11e4], 0xffffffff
call fcn.00417960
test eax, eax
je 0x41e834
call fcn.00418310
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x1d4]
push ecx
lea ecx, [edi + 0x1f8]
call fcn.00402ca0
push 0
lea edx, [esp + 0x1d8]
push 0
push edx
call fcn.0043d840
add esp, 0xc
mov dword [edi + 0x1f4], eax
xor eax, eax
jmp 0x41e992
mov eax, dword [ebp + 0x1b0]
push eax
push ecx
lea eax, [esp + 0x34]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], edx
mov byte [edi], dl
mov eax, dword [esi + 0x18]
mov ebx, pe_nt_image_headers32
mov dword [esp + 0x4c], esp
cmp eax, ebx
jb 0x41e8a4
mov ecx, dword [edi]
jmp 0x41e8a6
mov ecx, edi
cmp ecx, 0x45c350
ja 0x41e8df
cmp eax, ebx
jb 0x41e8b6
mov ecx, dword [edi]
jmp 0x41e8b8
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45c350
jbe 0x41e8df
cmp eax, ebx
jb 0x41e8cb
mov edi, dword [edi]
push 0x21
mov eax, 0x45c350
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x41e921
cmp eax, 0x21
jae 0x41e8f1
mov ecx, dword [esi + 0x14]
push ecx
push 0x21
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jb 0x41e8fc
mov eax, dword [edi]
jmp 0x41e8fe
mov eax, edi
push 0x21
push 0x45c350
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
mov dword [esi + 0x14], 0x21
cmp dword [esi + 0x18], ebx
jb 0x41e91d
mov edi, dword [edi]
mov byte [edi + 0x21], 0
lea esi, [esp + 0xc4]
call fcn.00401900
xor esi, esi
push eax
mov dword [esp + 0x11f4], esi
call fcn.00401c70
mov byte [esp + 0x11ec], 1
cmp dword [eax + 0x18], ebx
jb 0x41e94e
mov eax, dword [eax + 4]
jmp 0x41e951
add eax, 4
push eax
push 1
push ebp
call fcn.0041c440
add esp, 0x14
cmp dword [esp + 0x44], ebx
jb 0x41e970
mov edx, dword [esp + 0x30]
push edx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x40], esi
lea esi, [esp + 0x9c]
mov dword [esp + 0x44], 0xf
mov byte [esp + 0x30], 0
call fcn.00429050
mov eax, 0x80004005
mov ecx, dword [esp + 0x11dc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x11c0]
xor ecx, esp
call fcn.0043c2d9
add esp, 0x11d4
ret 4