Function at 0x412be0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xf8
mov eax, dword [0x65ada4]
xor eax, esp
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xfc]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10c]
push edi
mov edi, edx
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0x28], eax
lea eax, [esp + 0x38]
push eax
push str._s_ld
push edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x30], 0
mov byte [esp + 0x44], 0
mov dword [esi], 0
call fcn.00571f80
add esp, 0x10
mov ecx, str.STATEMENTCOUNT
lea eax, [esp + 0x34]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412c70
test dl, dl
je 0x412c6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412c70
add eax, 2
add ecx, 2
test dl, dl
jne 0x412c50
xor eax, eax
jmp 0x412c75
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x413021
jmp 0x412c84
mov edi, dword [esp + 0x10]
mov ecx, str.FILEEND
lea eax, [esp + 0x34]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412cb0
test dl, dl
je 0x412cac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412cb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x412c90
xor eax, eax
jmp 0x412cb5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x413027
mov ecx, str.STMTID
lea eax, [esp + 0x34]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412ce6
test dl, dl
je 0x412ce2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412ce6
add eax, 2
add ecx, 2
test dl, dl
jne 0x412cc6
xor eax, eax
jmp 0x412ceb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x413038
mov ebp, dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x38]
push edx
push 0x5a8fc8
push edi
call fcn.00571f80
add esp, 0x10
mov ecx, str.CATVERS
lea eax, [esp + 0x34]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412d38
test dl, dl
je 0x412d34
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412d38
add eax, 2
add ecx, 2
test dl, dl
jne 0x412d18
xor eax, eax
jmp 0x412d3d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x413038
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x3c]
push edx
push str._s__s__ld
push edi
call fcn.00571f80
add esp, 0x14
mov ecx, str.TREEBEGIN
lea eax, [esp + 0x34]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412d90
test dl, dl
je 0x412d8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412d90
add eax, 2
add ecx, 2
test dl, dl
jne 0x412d70
xor eax, eax
jmp 0x412d95
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x412ee0
mov ecx, str.LENGTH
lea eax, [esp + 0x9c]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412dd0
test dl, dl
je 0x412dcc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412dd0
add eax, 2
add ecx, 2
test dl, dl
jne 0x412db0
xor eax, eax
jmp 0x412dd5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x413038
mov eax, dword [esp + 0x14]
inc eax
push eax
call dword [sym.imp.MSVCR90.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
je 0x41303f
call fcn.00437cf0
mov ebx, eax
test ebx, ebx
je 0x41303f
mov ecx, dword [esp + 0x14]
push edi
push 1
push ecx
push esi
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x41306e
mov edx, dword [esp + 0x14]
push 0
push esi
push ebx
mov byte [edx + esi], 0
call fcn.00434480
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4130a8
push esi
call dword [sym.imp.MSVCR90.dll_free]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x38]
push eax
push 0x5a85d0
push esi
call fcn.00571f80
add esp, 0x10
mov ecx, str.TREEEND
lea eax, [esp + 0x34]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412e85
test dl, dl
je 0x412e81
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412e85
add eax, 2
add ecx, 2
test dl, dl
jne 0x412e65
xor eax, eax
jmp 0x412e8a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x413038
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x3c]
push ecx
push str._s__s__ld
push esi
call fcn.00571f80
add esp, 0x14
mov edi, esi
mov ecx, str.TREEBEGIN
lea eax, [esp + 0x34]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412eec
test dl, dl
je 0x412edc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412eec
add eax, 2
add ecx, 2
test dl, dl
jne 0x412ec0
xor eax, eax
jmp 0x412ef1
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x18], ecx
jmp 0x412eb4
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x412f6d
mov ecx, str.SQLQUERY
lea eax, [esp + 0x34]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412f20
test dl, dl
je 0x412f1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412f20
add eax, 2
add ecx, 2
test dl, dl
jne 0x412f00
xor eax, eax
jmp 0x412f25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x413038
mov ecx, str.LENGTH
lea eax, [esp + 0x9c]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412f60
test dl, dl
je 0x412f5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412f60
add eax, 2
add ecx, 2
test dl, dl
jne 0x412f40
xor eax, eax
jmp 0x412f65
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x413038
mov edx, dword [esp + 0x18]
inc edx
push edx
call dword [sym.imp.MSVCR90.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
je 0x413067
mov eax, dword [esp + 0x18]
push edi
push 1
push eax
push esi
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x41307c
mov ecx, dword [esp + 0x18]
push esi
mov byte [esi + ecx], 0
mov edx, dword [esp + 0x30]
push ebx
push edx
push ebp
call fcn.0041ca70
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4130b6
mov edx, dword [esp + 0x10]
inc dword [esp + 0x20]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x38]
push ecx
push str._s_ld
push edx
call fcn.00571f80
add esp, 0x10
mov ecx, str.STATEMENTCOUNT
lea eax, [esp + 0x34]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x413010
test dl, dl
je 0x41300c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x413010
add eax, 2
add ecx, 2
test dl, dl
jne 0x412ff0
xor eax, eax
jmp 0x413015
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x412c80
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov dword [esi], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [edx], ecx
xor eax, eax
jmp 0x4130c7
mov edi, 0x3e99
jmp 0x413052
mov edi, 6
test esi, esi
je 0x413052
push esi
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov eax, dword [esp + 0x24]
push eax
push 0x3201
push edi
call fcn.00406f10
add esp, 0xc
jmp 0x4130c5
mov edi, 6
jmp 0x413052
test esi, esi
je 0x41307c
push esi
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
call dword [sym.imp.MSVCR90.dll__errno]
mov ecx, dword [eax]
mov edx, dword [esp + 0x24]
push ecx
push edx
push str.fread
push 0x3201
push 0x719
call fcn.00406f10
add esp, 0x14
mov eax, 0x719
jmp 0x4130c7
test esi, esi
je 0x4130b6
push esi
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
push 0x3201
push 0
call fcn.00406f10
add esp, 8
mov eax, edi
mov ecx, dword [esp + 0x104]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00586584
add esp, 0xf8
ret