Function at 0x42d2b0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50cfd1
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x573be0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0
mov eax, dword [0x574ba4]
mov ecx, 0x574ba4
call dword [eax + 0xc]
mov ebx, dword [ebp + 8]
add eax, 0x10
mov dword [ebx], eax
mov dword [ebp - 4], 0
cmp dword [esi], 0xffffffff
mov dword [ebp - 0x14], 1
je 0x42d60b
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], 1
mov esi, dword [ebp + 0xc]
push esi
lea ecx, [ebp - 0x28]
call fcn.0042c780
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
push 0
push dword [ebp + 0x10]
push esi
push edi
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42d5fe
mov al, byte [edi]
xor cl, cl
mov byte [ebp + 0xf], cl
mov byte [ebp + 0x13], cl
cmp al, 0xff
jne 0x42d37b
cmp byte [edi + 1], 0xfe
jne 0x42d37b
mov byte [ebp + 0xf], 1
mov eax, 2
jmp 0x42d3b5
cmp al, 0xfe
jne 0x42d394
cmp byte [edi + 1], 0xff
jne 0x42d394
mov byte [ebp + 0xf], 1
mov byte [ebp + 0x13], 1
mov eax, 2
jmp 0x42d3b5
cmp al, 0xef
jne 0x42d435
cmp byte [edi + 1], 0xbb
jne 0x42d435
cmp byte [edi + 2], 0xbf
jne 0x42d435
mov eax, 3
mov esi, dword [ebp - 0x24]
add eax, edi
cmp eax, esi
jne 0x42d3c2
mov esi, edi
jmp 0x42d3d5
cmp edi, eax
je 0x42d3d8
sub esi, eax
push esi
push eax
push edi
call fcn.004e9420
add esp, 0xc
add esi, edi
mov dword [ebp - 0x24], esi
cmp byte [ebp + 0x13], 0
je 0x42d3f8
mov ecx, edi
cmp edi, esi
je 0x42d3f8
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 0x42d3e4
mov ebx, dword [ebp + 8]
mov cl, byte [ebp + 0xf]
sub esi, edi
cmp byte [edi + esi - 1], 0
je 0x42d43a
inc esi
push esi
lea ecx, [ebp - 0x28]
call fcn.0042c780
mov edi, dword [ebp - 0x28]
mov al, byte [ebp + 0xf]
mov byte [edi + esi - 1], 0
test al, al
je 0x42d54f
inc esi
push esi
lea ecx, [ebp - 0x28]
call fcn.0042c780
mov edi, dword [ebp - 0x28]
mov byte [edi + esi - 1], 0
jmp 0x42d457
mov esi, dword [ebp - 0x24]
jmp 0x42d3fb
test cl, cl
je 0x42d54f
lea eax, [esi + 2]
push eax
lea ecx, [ebp - 0x28]
call fcn.0042c780
mov edi, dword [ebp - 0x28]
mov word [edi + esi], 0
mov eax, dword [0x574ba4]
mov ecx, 0x574ba4
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp + 0xc], esi
mov byte [ebp - 4], 2
test edi, edi
je 0x42d4b1
test edi, 0xffff0000
jne 0x42d499
movzx eax, di
mov ecx, eax
mov dword [ebp + 0x10], eax
call fcn.0041fcd0
test eax, eax
je 0x42d4c0
push dword [ebp + 0x10]
lea ecx, [ebp + 0xc]
push eax
call fcn.00420bb0
jmp 0x42d4bd
mov ecx, edi
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42d4a0
sub ecx, edx
sar ecx, 1
jmp 0x42d4b3
xor ecx, ecx
push ecx
push edi
lea ecx, [ebp + 0xc]
call fcn.00420c80
mov esi, dword [ebp + 0xc]
mov byte [ebp - 4], 3
mov edx, dword [ebx]
lea eax, [esi - 0x10]
sub edx, 0x10
or ecx, 0xffffffff
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x18], edx
cmp eax, edx
je 0x42d52b
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
mov dword [ebp - 0x10], ecx
jl 0x42d51a
mov eax, dword [eax]
cmp eax, dword [edx]
jne 0x42d51a
mov ecx, dword [ebp + 0x10]
call fcn.00420750
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d513
mov esi, dword [ebp - 0x18]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ebx], eax
jmp 0x42d525
push dword [esi - 0xc]
mov ecx, ebx
push esi
call fcn.00420c80
mov eax, dword [ebp + 0x10]
or ecx, 0xffffffff
mov byte [ebp - 4], 1
add eax, 0xc
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42d5fe
mov edx, dword [ebp + 0x10]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x42d5fe
mov eax, dword [0x574ba4]
mov ecx, 0x574ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 0xc], eax
push edi
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 4
call fcn.00420650
mov byte [ebp - 4], 5
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx]
lea edx, [eax - 0x10]
sub ecx, 0x10
or esi, 0xffffffff
mov dword [ebp - 0x10], edx
mov dword [ebp + 0x10], ecx
cmp edx, ecx
je 0x42d5dd
add ecx, 0xc
mov dword [ebp - 0x1c], ecx
cmp dword [ecx], 0
jl 0x42d5cf
mov edi, dword [ebp + 0x10]
mov ecx, dword [edx]
cmp ecx, dword [edi]
mov edi, dword [ebp - 0x28]
jne 0x42d5cf
mov ecx, edx
call fcn.00420750
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d5c8
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x18]
add eax, 0x10
mov dword [ebx], eax
jmp 0x42d5da
push dword [eax - 0xc]
mov ecx, ebx
push eax
call fcn.00420c80
mov edx, dword [ebp - 0x10]
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x42d5f5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, ebx
mov ecx, ebx
call fcn.0042c120
test edi, edi
je 0x42d60b
push edi
call fcn.004e932d
add esp, 4
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc