Function at 0x430a30
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rdi, rdx
mov r12, rcx
lea rdx, [0x0078f00a]
mov rcx, rdi
mov r13d, r8d
call sub.msvcrt.dll_fopen
mov r8d, 2
mov rbx, rax
test rax, rax
je 0x430c6d
mov rcx, rax
xor edx, edx
call sub.msvcrt.dll_fseek
mov rcx, rbx
call sub.msvcrt.dll_ftell
mov rcx, rbx
movsxd rsi, eax
call sub.msvcrt.dll_rewind
lea rcx, [rsi + 3]
cmp rsi, 0xffff
ja 0x430c8e
cmp rsi, 0x10
jbe 0x430b01
call sub.msvcrt.dll_malloc
mov r9, rbx
mov r8d, 1
mov rdx, rsi
lea rcx, [rax + 1]
mov rbp, rax
call sub.msvcrt.dll_fread
sub rax, 1
je 0x430b27
mov rcx, rbp
xor r12d, r12d
call sub.msvcrt.dll_free
mov rcx, rbx
call sub.msvcrt.dll_fclose
call fcn.004309a0
mov r9, rdi
lea r8, str.Read_error_while_reading__s.
xor edx, edx
mov rcx, rax
call fcn.00430850
mov eax, r12d
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
xor r12d, r12d
call sub.msvcrt.dll_fclose
call fcn.004309a0
mov r9, rdi
lea r8, str.File_is_empty_or_too_short____s.
xor edx, edx
mov rcx, rax
call fcn.00430850
jmp 0x430aed
mov rcx, rbx
call sub.msvcrt.dll_fclose
cmp byte [rbp + 1], 0xef
je 0x430c4a
mov rax, qword [r12 + 0x10]
test r13b, r13b
mov byte [rbp], 0x7b
lea r8, [rsi + 2]
mov byte [rbp + rsi], 0x7d
mov rdx, rbp
movabs r14, 0xffffffffffff
lea rbx, [rax + 0x60]
cmovne rbx, rax
mov byte [rbp + rsi + 1], 0
lea rsi, str.pool_list
mov rcx, rbx
call fcn.00425990
mov rcx, rbp
mov ebp, 2
call sub.msvcrt.dll_free
cmp dword [rbx + 0x50], 0
jne 0x430ce3
cmp word [rbx + 0xe], 3
jne 0x430cc2
test r13b, r13b
je 0x430d1d
lea r13, [rsp + 0x48]
mov qword [rsp + 0x38], r13
jmp 0x430bfd
add r10, 0x10
mov rax, qword [r12 + 0x10]
lea r11, [rbp + 0x18]
mov qword [r15 + r11*8], r10
mov rcx, qword [rax + r11*8]
test rcx, rcx
je 0x430df2
mov edx, dword [rsi + 0x2c]
movzx ecx, word [rcx + 0xe]
and ecx, 7
cmp edx, ecx
je 0x430beb
test edx, edx
je 0x430beb
call fcn.00403390
test al, al
je 0x430e18
add rbp, 1
add rsi, 0x10
cmp rbp, 0x11
je 0x430cb7
movsxd r15, dword [rsi + 0x28]
mov rdx, rbx
cmp r15, rbp
jne 0x430dd4
mov r13, qword [rsi + 0x20]
mov rcx, qword [rsp + 0x38]
mov r8, r13
mov r15, qword [r12 + 0x10]
call fcn.00412850
mov r8, qword [rbx + 8]
mov r9d, dword [rbx]
and r8, r14
shl r9, 5
mov r10, qword [rsp + 0x48]
add r9, r8
cmp r10, r9
jne 0x430bae
xor r10d, r10d
jmp 0x430bb2
cmp byte [rbp + 2], 0xbb
jne 0x430b39
cmp byte [rbp + 3], 0xbf
jne 0x430b39
mov byte [rbp + 1], 0x20
mov word [rbp + 2], 0x2020
jmp 0x430b39
call fcn.004309a0
mov r9, rdi
xor edx, edx
xor r12d, r12d
lea r8, str.Failed_to_open_config_file__s.
mov rcx, rax
call fcn.00430850
jmp 0x430aed
mov rcx, rbx
xor r12d, r12d
call sub.msvcrt.dll_fclose
call fcn.004309a0
mov r9, rdi
lea r8, str.Oversized_config_file____s.
xor edx, edx
mov rcx, rax
call fcn.00430850
jmp 0x430aed
mov r12d, 1
jmp 0x430aed
call fcn.004309a0
mov r9, rdi
xor edx, edx
xor r12d, r12d
lea r8, str.Invalid_config_file__s._No_root_
mov rcx, rax
call fcn.00430850
jmp 0x430aed
call fcn.004309a0
mov ecx, dword [rbx + 0x50]
xor r12d, r12d
mov rsi, rax
call fcn.00403840
mov r9, rdi
xor edx, edx
mov rcx, rsi
mov qword [rsp + 0x28], rax
mov rbx, qword [rbx + 0x58]
lea r8, str.JSON_config_parse_error_in__s__offset__llu_:__s
mov qword [rsp + 0x20], rbx
call fcn.00430850
jmp 0x430aed
lea rdx, [rsp + 0x48]
lea r15, str.pool_list
xor r14d, r14d
mov qword [rsp + 0x38], rdx
movsxd rcx, dword [r15 + 8]
mov rdx, rbx
cmp rcx, r14
jne 0x430e4d
mov rsi, qword [r15]
mov rcx, qword [rsp + 0x38]
mov r8, rsi
mov rbp, qword [r12 + 0x10]
call fcn.00412850
mov r9d, dword [rbx]
mov r10, qword [rsp + 0x48]
movabs r8, 0xffffffffffff
and r8, qword [rbx + 8]
shl r9, 5
add r9, r8
cmp r10, r9
je 0x430e45
add r10, 0x10
mov rax, qword [r12 + 0x10]
lea r11, [r14 + 0x18]
mov qword [rbp + r11*8], r10
mov rcx, qword [rax + r11*8]
test rcx, rcx
je 0x430e6b
mov edx, dword [r15 + 0xc]
movzx ecx, word [rcx + 0xe]
and ecx, 7
cmp edx, ecx
je 0x430dbb
test edx, edx
je 0x430dbb
call fcn.00403390
test al, al
je 0x430e91
add r15, 0x10
sub r14, 1
je 0x430cb7
mov r14d, 1
jmp 0x430d31
call fcn.004309a0
lea r8, str.Code_error._oConfigValues_are_not_in_order.
xor edx, edx
xor r12d, r12d
mov rcx, rax
call fcn.00430850
jmp 0x430aed
call fcn.004309a0
mov qword [rsp + 0x20], r13
mov r9, rdi
xor edx, edx
lea r8, str.Invalid_config_file__s._Missing_value___s_.
mov rcx, rax
xor r12d, r12d
call fcn.00430850
jmp 0x430aed
mov byte [rsp + 0x38], al
call fcn.004309a0
mov qword [rsp + 0x20], r13
mov r9, rdi
lea r8, str.Invalid_config_file__s._Value___s__has_unexpected_type.
xor edx, edx
mov rcx, rax
call fcn.00430850
movzx r12d, byte [rsp + 0x38]
jmp 0x430aed
xor r10d, r10d
jmp 0x430d80
call fcn.004309a0
lea r8, str.Code_error._oConfigValues_are_not_in_order.
xor edx, edx
mov r12d, r13d
mov rcx, rax
call fcn.00430850
jmp 0x430aed
call fcn.004309a0
mov qword [rsp + 0x20], rsi
mov r9, rdi
xor edx, edx
lea r8, str.Invalid_config_file__s._Missing_value___s_.
mov rcx, rax
mov r12d, r13d
call fcn.00430850
jmp 0x430aed
mov byte [rsp + 0x38], al
call fcn.004309a0
mov qword [rsp + 0x20], rsi
jmp 0x430e26