Function at 0x101070b
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x1015270
call sub.MSVCRT.dll__EH_prolog
sub esp, 0x29c
push ebx
mov ebx, ecx
push esi
push edi
mov eax, dword [ebx + 0x18]
cmp eax, 0xffffffff
je 0x1010b0d
push 2
push 0
push 0xffffffffffffff80
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea eax, [ebp - 0x18]
push 0
push eax
mov esi, 0x80
lea eax, [ebp - 0x98]
push esi
push eax
push dword [ebx + 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x101075e
cmp dword [ebp - 0x18], esi
je 0x1010790
push 0x3b
push str.h:_nsbld_v4_1_nstoolscontent_nsid3id3_tag_parse_v1.cpp
push 1
lea ecx, [ebp - 0x2a8]
call fcn.0100f38c
push 0x42
mov esi, eax
pop ecx
lea edi, [ebp - 0x1a0]
lea eax, [ebp - 0x1a0]
push 0x10152a8
rep movsd dword es:[edi], dword [esi]
push eax
call sub.MSVCRT.dll__CxxThrowException
push 0x1e
lea eax, [ebp - 0x95]
pop esi
push esi
push eax
call fcn.010106e9
lea eax, [ebp - 0x77]
push esi
push eax
call fcn.010106e9
lea eax, [ebp - 0x59]
push esi
push eax
call fcn.010106e9
cmp byte [ebp - 0x1b], 0
jne 0x10107c4
cmp byte [ebp - 0x1a], 0
je 0x10107c4
push 0x1d
jmp 0x10107c5
push esi
lea eax, [ebp - 0x37]
push eax
call fcn.010106e9
push 3
mov edi, 0x1017374
pop ecx
lea esi, [ebp - 0x98]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x1010b42
add dword [ebx + 0x22c], 0x80
lea eax, [ebp - 0x95]
push eax
push ebx
mov byte [ebx + 0x230], 1
call fcn.010102ea
lea eax, [ebp - 0x77]
push eax
push ebx
call fcn.0101011c
lea eax, [ebp - 0x59]
push eax
push ebx
call fcn.0101021e
push 0x1a
mov ecx, ebx
call fcn.0100f3b8
test eax, eax
jne 0x10108cf
cmp byte [ebp - 0x3b], al
je 0x10108cf
push 0x218
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x14], eax
xor edi, edi
cmp eax, edi
mov dword [ebp - 4], edi
je 0x1010855
push edi
mov ecx, eax
call fcn.0100ef06
mov esi, eax
jmp 0x1010857
xor esi, esi
or dword [ebp - 4], 0xffffffff
cmp esi, edi
je 0x101089e
lea eax, [ebp - 0x3b]
push 4
push eax
lea eax, [ebp - 0x14]
push eax
call sub.MSVCRT.dll_strncpy
and byte [ebp - 0x10], 0
add esp, 0xc
mov ecx, esi
push 0x1a
call fcn.0100f02b
lea eax, [ebp - 0x14]
mov ecx, esi
push eax
push 2
call fcn.0100f2d2
mov ecx, eax
call fcn.01010c4c
push 1
push esi
mov ecx, ebx
call fcn.0100ecfc
jmp 0x10108cf
push 0x68
push str.h:_nsbld_v4_1_nstoolscontent_nsid3id3_tag_parse_v1.cpp
push edi
lea ecx, [ebp - 0x2a8]
call fcn.0100f38c
push 0x42
mov esi, eax
pop ecx
lea edi, [ebp - 0x1a0]
lea eax, [ebp - 0x1a0]
push 0x10152a8
rep movsd dword es:[edi], dword [esi]
push eax
call sub.MSVCRT.dll__CxxThrowException
push 0x20
mov ecx, ebx
call fcn.0100f3b8
test eax, eax
jne 0x101098e
lea edi, [ebp - 0x37]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x101098e
push 0x218
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x14], eax
xor esi, esi
mov dword [ebp - 4], 1
cmp eax, esi
je 0x1010916
push esi
mov ecx, eax
call fcn.0100ef06
mov esi, eax
or dword [ebp - 4], 0xffffffff
test esi, esi
je 0x101095c
push 0x20
mov ecx, esi
call fcn.0100f02b
push 0x101731c
push 0xa
mov ecx, esi
call fcn.0100f2d2
mov ecx, eax
call fcn.01010c4c
lea eax, [ebp - 0x37]
mov ecx, esi
push eax
push 2
call fcn.0100f2d2
mov ecx, eax
call fcn.01010c4c
push 1
push esi
mov ecx, ebx
call fcn.0100ecfc
jmp 0x101098e
push 0x78
push str.h:_nsbld_v4_1_nstoolscontent_nsid3id3_tag_parse_v1.cpp
push 0
lea ecx, [ebp - 0x2a8]
call fcn.0100f38c
push 0x42
mov esi, eax
pop ecx
lea edi, [ebp - 0x1a0]
lea eax, [ebp - 0x1a0]
push 0x10152a8
rep movsd dword es:[edi], dword [esi]
push eax
call sub.MSVCRT.dll__CxxThrowException
cmp byte [ebp - 0x1b], 0
jne 0x1010a52
cmp byte [ebp - 0x1a], 0
je 0x1010a52
push 0x1f
mov ecx, ebx
call fcn.0100f3b8
test eax, eax
jne 0x1010a52
push 0x218
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x14], eax
push 2
xor esi, esi
pop edi
cmp eax, esi
mov dword [ebp - 4], edi
je 0x10109d7
push esi
mov ecx, eax
call fcn.0100ef06
mov esi, eax
or dword [ebp - 4], 0xffffffff
test esi, esi
je 0x1010a1d
movsx eax, byte [ebp - 0x1a]
push eax
lea eax, [ebp - 0x14]
push 0x101616c
push eax
call sub.MSVCRT.dll_sprintf
add esp, 0xc
mov ecx, esi
push 0x1f
call fcn.0100f02b
lea eax, [ebp - 0x14]
mov ecx, esi
push eax
push edi
call fcn.0100f2d2
mov ecx, eax
call fcn.01010c4c
push 1
push esi
mov ecx, ebx
call fcn.0100ecfc
jmp 0x1010a52
push 0x8d
push str.h:_nsbld_v4_1_nstoolscontent_nsid3id3_tag_parse_v1.cpp
push 0
lea ecx, [ebp - 0x2a8]
call fcn.0100f38c
push 0x42
mov esi, eax
pop ecx
lea edi, [ebp - 0x1a0]
lea eax, [ebp - 0x1a0]
push 0x10152a8
rep movsd dword es:[edi], dword [esi]
push eax
call sub.MSVCRT.dll__CxxThrowException
cmp byte [ebp - 0x19], 0xff
je 0x1010b42
push 0x1e
mov ecx, ebx
call fcn.0100f3b8
test eax, eax
jne 0x1010b42
push 0x218
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x14], eax
test eax, eax
mov dword [ebp - 4], 3
je 0x1010a93
push 0
mov ecx, eax
call fcn.0100ef06
mov esi, eax
jmp 0x1010a95
xor esi, esi
or dword [ebp - 4], 0xffffffff
test esi, esi
je 0x1010adc
movzx eax, byte [ebp - 0x19]
push eax
lea eax, [ebp - 0x14]
push str.__d_
push eax
call sub.MSVCRT.dll_sprintf
add esp, 0xc
mov ecx, esi
push 0x1e
call fcn.0100f02b
lea eax, [ebp - 0x14]
mov ecx, esi
push eax
push 2
call fcn.0100f2d2
mov ecx, eax
call fcn.01010c4c
push 1
push esi
mov ecx, ebx
call fcn.0100ecfc
jmp 0x1010b42
push 0xa3
push str.h:_nsbld_v4_1_nstoolscontent_nsid3id3_tag_parse_v1.cpp
push 0
lea ecx, [ebp - 0x2a8]
call fcn.0100f38c
push 0x42
mov esi, eax
pop ecx
lea edi, [ebp - 0x1a0]
rep movsd dword es:[edi], dword [esi]
push 0x10152a8
lea eax, [ebp - 0x1a0]
jmp 0x1010b3c
push 0xaa
push str.h:_nsbld_v4_1_nstoolscontent_nsid3id3_tag_parse_v1.cpp
push 1
lea ecx, [ebp - 0x2a8]
call fcn.0100f38c
push 0x42
mov esi, eax
pop ecx
lea edi, [ebp - 0x1a0]
rep movsd dword es:[edi], dword [esi]
push 0x10152a8
lea eax, [ebp - 0x1a0]
push eax
call sub.MSVCRT.dll__CxxThrowException
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret