Function at 0x5a40d8
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x48c
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x45c], edx
xor eax, eax
mov dword [ebp - 0x458], eax
lea edx, [ebp - 0x458]
mov eax, dword [ebp - 0x484]
mov eax, dword [eax + 0x10]
call fcn.00425f4e
mov ebx, eax
test eax, eax
je 0x5a4ae7
xor eax, eax
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x440], eax
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x448], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x430], xmm0
mov eax, dword [ebx]
mov dword [ebp - 0x460], eax
test eax, eax
jne 0x5a40f8
mov dword [esp + 4], 0x60bbe3
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
je 0x5a4186
mov edx, dword [ebp - 0x45c]
mov eax, ebx
call fcn.005a40d8
jmp 0x5a40f8
xor eax, eax
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x480], eax
xor edi, edi
xor eax, eax
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x464], eax
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x478], 1
lea edx, [ebp - 0x454]
mov eax, dword [ebx + 0xc]
call fcn.00425f4e
mov esi, eax
test eax, eax
je 0x5a46e3
mov dword [esp + 4], str.bits
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a427c
mov esi, dword [esi + 4]
mov dword [esp + 4], 0x60bba5
mov dword [esp], esi
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
je 0x5a4223
lea eax, [ebp - 0x418]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbad
jmp 0x5a4249
mov dword [esp + 4], 0x60bbeb
mov dword [esp], esi
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
je 0x5a4265
lea eax, [ebp - 0x418]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbee
lea edx, [esi + 2]
mov dword [esp], edx
call fcn.005ae14c
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x450], eax
jmp 0x5a41c6
lea eax, [ebp - 0x450]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbf1
jmp 0x5a431d
mov dword [esp + 4], str.value
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a432a
mov esi, dword [esi + 4]
mov dword [esp + 4], 0x60bba5
mov dword [esp], esi
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
je 0x5a42c1
lea eax, [ebp - 0x418]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbad
jmp 0x5a42e7
mov dword [esp + 4], 0x60bbeb
mov dword [esp], esi
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
je 0x5a430b
lea eax, [ebp - 0x418]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbee
lea edx, [esi + 2]
mov dword [esp], edx
call fcn.005ae14c
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x438], eax
xor eax, eax
mov dword [ebp - 0x434], eax
jmp 0x5a41c6
lea eax, [ebp - 0x438]
mov dword [esp + 8], eax
mov dword [esp + 4], str._I64d
mov dword [esp], esi
call fcn.005ae14c
jmp 0x5a41c6
mov dword [esp + 4], str.float
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a436c
lea eax, [ebp - 0x448]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bc06
mov eax, dword [esi + 4]
mov dword [esp], eax
call fcn.005ae14c
mov dword [ebp - 0x470], 1
jmp 0x5a41c6
mov dword [esp + 4], str.double
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a43ae
lea eax, [ebp - 0x430]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bc10
mov eax, dword [esi + 4]
mov dword [esp], eax
call fcn.005ae14c
mov dword [ebp - 0x474], 1
jmp 0x5a41c6
mov dword [esp + 4], str.mediaOffset
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a43ef
mov esi, dword [esi + 4]
mov dword [esp + 4], 0x60bba5
mov dword [esp], esi
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
je 0x5a4407
lea eax, [ebp - 0x418]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbad
jmp 0x5a442d
mov dword [esp + 4], str.dataOffset
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
je 0x5a43c4
jmp 0x5a4468
mov dword [esp + 4], 0x60bbeb
mov dword [esp], esi
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
je 0x5a4451
lea eax, [ebp - 0x418]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbee
lea edx, [esi + 2]
mov dword [esp], edx
call fcn.005ae14c
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x440], eax
xor esi, esi
mov dword [ebp - 0x43c], esi
jmp 0x5a41c6
lea eax, [ebp - 0x440]
mov dword [esp + 8], eax
mov dword [esp + 4], str._I64u
jmp 0x5a431d
mov dword [esp + 4], str.dataLength
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a4506
mov esi, dword [esi + 4]
mov dword [esp + 4], 0x60bba5
mov dword [esp], esi
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
je 0x5a44ad
lea eax, [ebp - 0x418]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbad
jmp 0x5a44d3
mov dword [esp + 4], 0x60bbeb
mov dword [esp], esi
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
je 0x5a44ef
lea eax, [ebp - 0x418]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbee
lea edx, [esi + 2]
mov dword [esp], edx
call fcn.005ae14c
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x44c], eax
jmp 0x5a41c6
lea eax, [ebp - 0x44c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bc3c
jmp 0x5a431d
mov dword [esp + 4], str.mediaFile
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a452a
mov eax, dword [esi + 4]
mov dword [ebp - 0x46c], eax
jmp 0x5a41c6
mov dword [esp + 4], str.dataFile
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
je 0x5a451c
mov dword [esp + 4], str.text
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a4564
mov eax, dword [esi + 4]
mov dword [ebp - 0x464], eax
jmp 0x5a41c6
mov dword [esp + 4], str.string
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
je 0x5a4556
mov dword [esp + 4], 0x60bc5e
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a45cf
mov edx, dword [esi + 4]
movsx eax, byte [edx]
shl eax, 0x18
movsx ecx, byte [edx + 1]
shl ecx, 0x10
or eax, ecx
movsx ecx, byte [edx + 3]
or eax, ecx
movsx edx, byte [edx + 2]
shl edx, 8
or eax, edx
mov dword [ebp - 0x438], eax
sar eax, 0x1f
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x450], 0x20
jmp 0x5a41c6
mov dword [esp + 4], str.ID128
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a4602
lea edx, [ebp - 0x428]
mov eax, dword [esi + 4]
call fcn.005a3fe8
mov dword [ebp - 0x480], 1
jmp 0x5a41c6
mov dword [esp + 4], str.textmode
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a463e
mov dword [esp + 4], 0x60bc71
mov eax, dword [esi + 4]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
sete al
movzx eax, al
or dword [ebp - 0x47c], eax
jmp 0x5a41c6
mov dword [esp + 4], str.data64
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a4662
mov eax, dword [esi + 4]
mov dword [ebp - 0x468], eax
jmp 0x5a41c6
mov dword [esp + 4], str.data
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a46a3
mov edi, dword [esi + 4]
mov dword [esp + 8], 2
mov dword [esp + 4], 0x60bba5
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll__strnicmp
test eax, eax
jne 0x5a41c6
add edi, 2
jmp 0x5a41c6
mov dword [esp + 4], str.endian
mov eax, dword [esi]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
jne 0x5a41c6
mov dword [esp + 4], str.little
mov eax, dword [esi + 4]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll__stricmp
test eax, eax
setne al
movzx eax, al
and dword [ebp - 0x478], eax
jmp 0x5a41c6
cmp dword [ebp - 0x464], 0
je 0x5a4720
mov eax, dword [ebp - 0x464]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov ebx, eax
mov ecx, dword [ebp - 0x450]
test ecx, ecx
je 0x5a4713
mov edx, eax
mov eax, dword [ebp - 0x45c]
call fcn.004262ac
mov ecx, ebx
mov edx, dword [ebp - 0x464]
jmp 0x5a4ad7
cmp dword [ebp - 0x468], 0
je 0x5a47b0
mov eax, dword [ebp - 0x468]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov esi, eax
mov dword [esp], eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov ebx, eax
test eax, eax
je 0x5a4ae7
mov dword [esp], esi
mov ecx, eax
mov edx, esi
mov eax, dword [ebp - 0x468]
call fcn.00428f16
mov esi, eax
test eax, eax
js 0x5a4781
mov ecx, dword [ebp - 0x450]
mov edx, eax
mov eax, dword [ebp - 0x45c]
call fcn.004262ac
mov ecx, esi
jmp 0x5a486e
cmp dword [0x5af030], 0
je 0x5a47a3
mov dword [0x611418], 1
xor ebx, ebx
mov dword [0x611414], ebx
mov eax, dword [4]
ud2
mov dword [esp], ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x5a4ae7
test edi, edi
je 0x5a4888
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov esi, eax
shr eax, 1
mov dword [ebp - 0x464], eax
mov dword [esp], eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov ebx, eax
test eax, eax
je 0x5a4ae7
cmp dword [ebp - 0x460], esi
jae 0x5a4851
mov eax, dword [ebp - 0x460]
movsx eax, byte [edi + eax + 1]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x460]
movsx eax, byte [edi + eax]
mov dword [esp + 8], eax
mov dword [esp + 4], str._c_c
lea edx, [ebp - 0x418]
mov dword [esp], edx
call fcn.005ae188
lea eax, [ebp - 0x444]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x60bbad
lea edx, [ebp - 0x418]
mov dword [esp], edx
call fcn.005ae14c
mov eax, dword [ebp - 0x460]
shr eax, 1
mov edx, dword [ebp - 0x444]
mov byte [ebx + eax], dl
add dword [ebp - 0x460], 2
jmp 0x5a47dc
mov ecx, dword [ebp - 0x450]
mov edx, dword [ebp - 0x464]
mov eax, dword [ebp - 0x45c]
call fcn.004262ac
mov ecx, dword [ebp - 0x464]
mov edx, ebx
mov eax, dword [ebp - 0x45c]
call fcn.00427720
mov dword [esp], ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x5a40f8
cmp dword [ebp - 0x470], 0
je 0x5a48a9
movss xmm0, dword [ebp - 0x448]
mov eax, dword [ebp - 0x45c]
call fcn.004263e8
jmp 0x5a40f8
cmp dword [ebp - 0x474], 0
je 0x5a48ca
movsd xmm0, qword [ebp - 0x430]
mov eax, dword [ebp - 0x45c]
call fcn.00426425
jmp 0x5a40f8
mov ecx, dword [ebp - 0x450]
test ecx, ecx
je 0x5a497d
cmp dword [ebp - 0x478], 0
jne 0x5a4947
cmp ecx, 0x10
jne 0x5a48fc
mov edx, dword [ebp - 0x438]
mov eax, dword [ebp - 0x45c]
call fcn.0042665b
jmp 0x5a40f8
cmp ecx, 0x20
jne 0x5a4917
mov edx, dword [ebp - 0x438]
mov eax, dword [ebp - 0x45c]
call fcn.0042660f
jmp 0x5a40f8
cmp dword [0x5af030], 0
je 0x5a4ae7
mov dword [0x611418], 1
xor ecx, ecx
mov dword [0x611414], ecx
mov dword [esp], str._XML_NHML__Little_endian_values_can_only_be_16_or_32_bit_n
call fcn.004268ea
jmp 0x5a4ae7
mov edx, dword [ebp - 0x438]
mov eax, dword [ebp - 0x434]
cmp ecx, 0x20
ja 0x5a4968
mov eax, dword [ebp - 0x45c]
call fcn.004262ac
jmp 0x5a40f8
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [ebp - 0x45c]
call fcn.004262df
jmp 0x5a40f8
cmp dword [ebp - 0x46c], 0
je 0x5a4abf
mov edx, 0x60bbe0
cmp dword [ebp - 0x47c], 0
je 0x5a499d
mov edx, 0x60bbdd
mov eax, dword [ebp - 0x46c]
call fcn.00427968
mov dword [ebp - 0x460], eax
test eax, eax
jne 0x5a49ec
cmp dword [0x5af030], 0
je 0x5a4ae7
mov dword [0x611418], 1
xor edx, edx
mov dword [0x611414], edx
mov eax, dword [ebp - 0x46c]
mov dword [esp + 4], eax
mov dword [esp], str._XML_NHML__Error_opening_file__s_n
call fcn.004268ea
jmp 0x5a4ae7
mov ebx, dword [ebp - 0x44c]
test ebx, ebx
jne 0x5a4a3f
mov dword [esp], 2
xor edx, edx
xor ecx, ecx
mov eax, dword [ebp - 0x460]
call fcn.00425b5e
mov eax, dword [ebp - 0x460]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__ftelli64]
mov ebx, eax
mov dword [ebp - 0x44c], eax
mov ecx, dword [ebp - 0x440]
xor edi, edi
cmp ecx, eax
mov eax, dword [ebp - 0x43c]
sbb eax, edi
jae 0x5a4a3f
sub ebx, ecx
mov dword [ebp - 0x44c], ebx
xor eax, eax
mov dword [esp], eax
mov edx, dword [ebp - 0x440]
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ebp - 0x460]
call fcn.00425b5e
mov eax, dword [ebp - 0x460]
test ebx, ebx
je 0x5a4ab5
mov dword [esp + 0xc], eax
mov eax, 0x400
cmp ebx, eax
cmovbe eax, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
lea edi, [ebp - 0x418]
mov dword [esp], edi
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fread
mov ecx, eax
test eax, eax
jns 0x5a4aa0
mov eax, dword [ebp - 0x460]
call fcn.00425b84
jmp 0x5a4ae7
mov edx, edi
mov eax, dword [ebp - 0x45c]
call fcn.00427720
sub ebx, dword [ebp - 0x44c]
jmp 0x5a4a5b
call fcn.00425b84
jmp 0x5a40f8
cmp dword [ebp - 0x480], 0
je 0x5a40f8
lea edx, [ebp - 0x428]
mov ecx, 0x10
mov eax, dword [ebp - 0x45c]
call fcn.00427720
jmp 0x5a40f8
add esp, 0x48c
pop ebx
pop esi
pop edi
pop ebp
ret