Function at 0x4341c0
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c9969
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x51fee0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x1c], 0
mov eax, dword [0x51fab0]
mov ecx, 0x51fab0
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x40], edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov eax, dword [esi]
mov dword [ebp - 4], 0
cmp dword [eax - 0xc], 0
mov dword [ebp - 0x1c], 1
je 0x4342cb
mov ecx, 0x4d9c60
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x434259
test dx, dx
je 0x434255
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x434259
add eax, 4
add ecx, 4
test dx, dx
jne 0x434233
xor eax, eax
jmp 0x43425e
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
jne 0x4342cb
lea eax, [ebp - 0x10]
push eax
call fcn.00433230
mov ecx, dword [eax]
xor eax, eax
add esp, 4
test ecx, ecx
setne al
mov dword [ebp - 0x1c], 3
test eax, eax
jne 0x434291
push 0x80004005
call fcn.004044c0
mov eax, dword [esi]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4342b9
test dx, dx
je 0x4342b5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4342b9
add eax, 4
add ecx, 4
test dx, dx
jne 0x434293
xor eax, eax
jmp 0x4342be
sbb eax, eax
or eax, 1
test eax, eax
sete al
mov byte [ebp - 0x13], 0
test al, al
je 0x4342cf
mov byte [ebp - 0x13], 1
mov eax, dword [ebp - 0x1c]
or ebx, 0xffffffff
test al, 2
je 0x4342fb
mov edx, dword [ebp - 0x10]
and eax, 0xfffffffd
add edx, 0xfffffff0
mov dword [ebp - 0x1c], eax
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4342fb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x13], 0
je 0x43439f
lea eax, [ebp - 0x18]
push eax
call fcn.00433230
add esp, 4
mov dword [ebp - 4], 1
mov ecx, dword [eax]
mov esi, dword [edi]
lea edx, [ecx - 0x10]
sub esi, 0x10
cmp edx, esi
je 0x434369
cmp dword [esi + 0xc], 0
jl 0x43435e
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x43435e
push edx
call fcn.00404880
add esp, 4
mov dword [ebp - 0x10], eax
mov ecx, ebx
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x434357
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x10]
add eax, 0x10
mov dword [edi], eax
jmp 0x434369
push dword [ecx - 0xc]
push ecx
mov ecx, edi
call fcn.004097a0
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x434694
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push 3
push 0
push 0
push SysReAllocStringLen
push dword [esi]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x38], esi
cmp esi, 0xffffffff
jne 0x4343d8
lea eax, [ebp - 0x18]
push eax
call fcn.00433230
add esp, 4
mov dword [ebp - 4], 2
jmp 0x434318
lea eax, [ebp - 0x34]
push eax
xorps xmm0, xmm0
push esi
movq qword [ebp - 0x34], xmm0
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x434431
lea eax, [ebp - 0x10]
push eax
call fcn.00433230
add esp, 4
mov dword [ebp - 4], 3
push eax
mov ecx, edi
call fcn.00402b30
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x43468d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x43468d
cmp dword [ebp - 0x30], 0
je 0x43444c
lea eax, [ebp - 0x10]
push eax
call fcn.00433230
add esp, 4
mov dword [ebp - 4], 4
jmp 0x434402
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x43468d
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 5
call fcn.00439bc0
mov edi, dword [ebp - 0x28]
push 0
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x34]
mov dword [ebp - 0x3c], 0
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4344b1
test edi, edi
je 0x43468a
push edi
call fcn.004a6c2e
add esp, 4
jmp 0x43468a
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x12]
push eax
lea eax, [ebp - 0x11]
push eax
push edi
mov byte [ebp - 0x11], 0
mov byte [ebp - 0x12], 0
mov dword [ebp - 0x2c], 0
call fcn.00451760
mov eax, dword [ebp - 0x2c]
add esp, 0x10
test eax, eax
jle 0x4344ef
add eax, edi
push eax
push edi
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x28]
call fcn.004397c0
mov edi, dword [ebp - 0x28]
cmp byte [ebp - 0x12], 0
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x10], esi
je 0x434594
call fcn.004348a0
test al, al
jne 0x434573
mov esi, dword [0x521340]
test esi, esi
je 0x434570
mov ecx, esi
and ecx, 0x80000001
jns 0x434521
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x43452e
mov eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
jmp 0x434535
lea esi, [esi*2 + 1]
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
mov dword [0x521340], esi
sub ecx, 0
je 0x43455f
sub ecx, 2
je 0x434562
dec ecx
je 0x434563
jmp 0x43456c
add esi, 2
inc esi
add esi, 2
mov dword [0x521340], esi
test esi, esi
jne 0x434512
mov esi, dword [ebp - 0x10]
mov ecx, edi
cmp edi, esi
je 0x434594
lea esp, [esp]
mov dl, byte [ecx]
mov bl, byte [ecx + 1]
mov byte [ecx + 1], dl
mov byte [ecx], bl
add ecx, 2
cmp ecx, esi
jne 0x434580
or ebx, 0xffffffff
sub esi, edi
cmp byte [edi + esi - 1], 0
je 0x4345c9
inc esi
push esi
lea ecx, [ebp - 0x28]
call fcn.00439bc0
mov edi, dword [ebp - 0x28]
mov byte [edi + esi - 1], 0
cmp byte [ebp - 0x11], 0
je 0x434620
inc esi
push esi
lea ecx, [ebp - 0x28]
call fcn.00439bc0
mov edi, dword [ebp - 0x28]
mov byte [edi + esi - 1], 0
jmp 0x4345e4
cmp byte [ebp - 0x11], 0
je 0x434620
lea eax, [esi + 2]
push eax
lea ecx, [ebp - 0x28]
call fcn.00439bc0
mov edi, dword [ebp - 0x28]
mov word [edi + esi], 0
cmp byte [ebp - 0x11], 0
je 0x434620
push edi
lea ecx, [ebp - 0x10]
call fcn.00401ff0
mov ecx, dword [ebp - 0x18]
push eax
mov byte [ebp - 4], 6
call fcn.00402b30
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x43467a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x43467a
mov eax, dword [0x51fab0]
mov ecx, 0x51fab0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
push edi
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 7
call fcn.0040b480
mov esi, dword [ebp - 0x18]
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
mov byte [ebp - 4], 8
call fcn.00402b30
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x434670
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push esi
push esi
call fcn.00450dd0
add esp, 8
test edi, edi
je 0x434687
push edi
call fcn.004a6c2e
add esp, 4
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret