Function at 0x10012e88
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [0x1002d4a0]
push ebx
mov dword [ebp - 4], eax
xor ebx, ebx
push ebx
lea eax, [ebp - 0x6c]
push eax
push 0x64
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0x6c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x10012ed1
mov eax, dword [ebp + 0x10]
push ebx
push ebx
mov dword [eax], ebx
mov eax, dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
mov dword [eax], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
xor eax, eax
jmp 0x10013148
push esi
push edi
mov edi, dword [ebp + 8]
push edi
call fcn.1001b9a0
xor esi, esi
inc esi
cmp eax, 4
pop ecx
jb 0x10012efd
lea eax, [eax + edi - 4]
push str..xml
push eax
call fcn.1001b752
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x70], esi
je 0x10012f00
mov dword [ebp - 0x70], ebx
mov eax, dword [ebp + 0x10]
push 2
pop edi
cmp dword [ebp - 0x6c], edi
mov dword [eax], esi
jb 0x10012f68
push edi
lea eax, [ebp - 0x68]
push 0x100280cc
push eax
call fcn.1001c750
add esp, 0xc
test eax, eax
jne 0x10012f36
mov ebx, dword [ebp + 0x14]
and dword [ebp - 0x78], eax
mov dword [ebx], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x70], edi
jmp 0x1001311c
cmp dword [ebp - 0x6c], edi
jb 0x10012f68
push edi
lea eax, [ebp - 0x68]
push 0x100280d0
push eax
call fcn.1001c750
add esp, 0xc
test eax, eax
jne 0x10012f68
mov ebx, dword [ebp + 0x14]
mov dword [ebx], 3
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x78], esi
jmp 0x1001311c
push 3
pop edi
cmp dword [ebp - 0x6c], edi
jb 0x10012f96
push edi
lea eax, [ebp - 0x68]
push 0x100280c8
push eax
call fcn.1001c750
add esp, 0xc
test eax, eax
jne 0x10012f96
mov ebx, dword [ebp + 0x14]
and dword [ebp - 0x78], eax
mov dword [ebx], esi
mov dword [ebp - 0x74], edi
jmp 0x10013119
cmp dword [ebp - 0x70], ebx
mov ebx, dword [ebp + 0x14]
je 0x1001310f
and dword [ebp - 0x78], 0
and dword [ebp - 0x74], 0
push 6
mov dword [ebx], esi
mov dword [ebp - 0x70], esi
pop esi
cmp dword [ebp - 0x6c], esi
jb 0x1001311c
push esi
lea eax, [ebp - 0x68]
push str.__xml
push eax
call fcn.1001ce68
add esp, 0xc
test eax, eax
jne 0x1001311c
jmp 0x100130e0
mov al, byte [ebp + esi - 0x68]
cmp al, 0x20
je 0x10012fee
cmp al, 9
je 0x10012fee
cmp al, 0xd
je 0x10012fee
cmp al, 0xa
jne 0x10012ff4
inc esi
cmp esi, dword [ebp - 0x6c]
jb 0x10012fda
cmp esi, dword [ebp - 0x6c]
jae 0x1001311c
cmp byte [ebp + esi - 0x68], 0x3f
je 0x1001311c
mov edx, esi
mov al, byte [ebp + esi - 0x68]
cmp al, 0x61
jb 0x10013016
cmp al, 0x7a
jbe 0x1001301e
cmp al, 0x41
jb 0x10013024
cmp al, 0x5a
ja 0x10013024
inc esi
cmp esi, dword [ebp - 0x6c]
jb 0x1001300a
mov ecx, esi
sub ecx, edx
je 0x1001311c
cmp esi, dword [ebp - 0x6c]
jae 0x1001311c
mov al, byte [ebp + esi - 0x68]
cmp al, 0x20
je 0x1001304b
cmp al, 9
je 0x1001304b
cmp al, 0xd
je 0x1001304b
cmp al, 0xa
jne 0x10013051
inc esi
cmp esi, dword [ebp - 0x6c]
jb 0x10013037
cmp esi, dword [ebp - 0x6c]
jae 0x1001311c
cmp byte [ebp + esi - 0x68], 0x3d
jne 0x1001311c
inc esi
cmp esi, dword [ebp - 0x6c]
jae 0x1001311c
mov al, byte [ebp + esi - 0x68]
cmp al, 0x20
je 0x10013083
cmp al, 9
je 0x10013083
cmp al, 0xd
je 0x10013083
cmp al, 0xa
jne 0x10013089
inc esi
cmp esi, dword [ebp - 0x6c]
jb 0x1001306f
cmp esi, dword [ebp - 0x6c]
jae 0x1001311c
mov al, byte [ebp + esi - 0x68]
cmp al, 0x22
je 0x1001309e
cmp al, 0x27
jne 0x1001311c
inc esi
cmp esi, dword [ebp - 0x6c]
jae 0x1001311c
mov dword [ebp - 0x7c], esi
mov al, byte [ebp + esi - 0x68]
cmp al, 0x22
je 0x100130b9
cmp al, 0x27
je 0x100130b9
inc esi
cmp esi, dword [ebp - 0x6c]
jb 0x100130a7
mov edi, esi
sub edi, dword [ebp - 0x7c]
cmp esi, dword [ebp - 0x6c]
jae 0x100130c4
inc esi
cmp ecx, 8
jne 0x100130e0
push ecx
lea eax, [ebp + edx - 0x68]
push str.encoding
push eax
call fcn.1001ce68
add esp, 0xc
test eax, eax
je 0x100130eb
cmp esi, dword [ebp - 0x6c]
jb 0x10012fda
jmp 0x1001311c
cmp edi, 5
jne 0x1001310a
mov eax, dword [ebp - 0x7c]
push edi
lea eax, [ebp + eax - 0x68]
push str.UTF_8
push eax
call fcn.1001ce68
add esp, 0xc
test eax, eax
je 0x1001311c
and dword [ebx], 0
jmp 0x1001311c
xor eax, eax
mov dword [ebx], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], esi
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
pop edi
add eax, ecx
pop esi
jmp 0x10013132
cmp byte [ebp + eax - 0x68], 0
je 0x10013139
add eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x6c]
jb 0x10013128
jmp 0x10013145
mov ecx, dword [ebp + 0x10]
xor eax, eax
mov dword [ecx], eax
mov dword [ebx], eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 4]
pop ebx
call fcn.1001b57a
leave
ret