Function at 0x40b1b0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
test rdx, rdx
mov rsi, rcx
mov rbx, rdx
mov rdi, r8
je 0x40b675
mov rax, qword [rdx + 0x38]
lea r8, str.unknown
lea rdx, str.__Automated_generated_idl_file___s_._n__Generated_by_genidl_tool__c__2009_2016_Mingw_w64_project._n___n_n
lea rbp, [rbx + 0x180]
test rax, rax
cmovne r8, rax
call sub.msvcrt.dll_fprintf
mov rdx, rdi
mov rcx, rbx
call fcn.00408c30
lea rdi, [rbx + 0x48]
xor r9d, r9d
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.00408e00
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.0040a4a0
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.0040a280
xor r9d, r9d
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.0040a7d0
mov edx, 1
mov r9, rsi
mov r8d, 2
lea rcx, [0x00410a79]
call sub.msvcrt.dll_fwrite
mov rdx, qword [rbx + 8]
mov eax, 1
test rdx, rdx
je 0x40b27b
lea r8, [0x00410712]
mov rcx, rsi
call fcn.00409ea0
mov edx, dword [rbx + 4]
test edx, edx
jne 0x40b925
mov r8, qword [rbx + 0x20]
test r8, r8
je 0x40b2ad
lea rcx, [0x00410712]
mov r9d, eax
mov qword [rsp + 0x20], rcx
lea rdx, str.helpstring
mov rcx, rsi
call fcn.00409ff0
mov r8, qword [rbx + 0x28]
test r8, r8
je 0x40b2d4
lea rcx, [0x00410712]
mov r9d, eax
mov qword [rsp + 0x20], rcx
lea rdx, str.helpfile
mov rcx, rsi
call fcn.00409ff0
cmp eax, 1
jne 0x40b8b0
mov r9, rsi
mov r8d, 2
mov edx, 1
lea rcx, [0x0041078f]
call sub.msvcrt.dll_fwrite
mov r8, qword [rbx + 0x38]
lea rdx, str.library__s_n_n
mov rcx, rsi
call sub.msvcrt.dll_fprintf
cmp qword [rbx + 0x108], 0
je 0x40b357
lea r12, [0x00410a93]
xor edi, edi
lea rbp, str._simportlib___s____n
mov rax, qword [rbx + 0x118]
mov r8, r12
mov rdx, rbp
mov rcx, rsi
mov r9, qword [rax + rdi*8]
add rdi, 1
add r9, 0x20
call sub.msvcrt.dll_fprintf
cmp rdi, qword [rbx + 0x108]
jb 0x40b324
test rdi, rdi
jne 0x40b8c2
cmp qword [rbx + 0x48], 0
je 0x40b4c1
lea r13, str._s___s__n
mov eax, 1
xor ebp, ebp
jmp 0x40b3ad
lea r9, [0x00410aaa]
mov rdx, rbx
mov rcx, rsi
call fcn.004095a0
lea r8, [0x00410aaa]
mov rcx, rsi
lea rdx, str._s__n
call sub.msvcrt.dll_fprintf
xor eax, eax
mov rdx, qword [rbx + 0x48]
add rbp, 1
cmp rbp, rdx
jae 0x40b690
mov rdx, qword [rbx + 0x180]
lea rdi, [rbp + rbp*2]
shl rdi, 5
add rdx, rdi
cmp dword [rdx], 5
jne 0x40b39c
test eax, eax
jne 0x40b630
lea r8, [0x00410aaa]
xor r9d, r9d
mov rcx, rsi
call fcn.0040a0b0
mov rax, qword [rbx + 0x180]
lea r8, [0x00410aaa]
mov rcx, rsi
lea rdx, str._s_s_n
mov r9, qword [rax + rdi + 0x18]
call sub.msvcrt.dll_fprintf
lea r8, [0x00410aaa]
mov rcx, rsi
lea rdx, str._s_n
call sub.msvcrt.dll_fprintf
mov r8, qword [rbx + 0x180]
add r8, rdi
mov rax, qword [r8 + 0x48]
mov r15d, dword [rax + 0x54]
cmp r15d, 0xffffffff
je 0x40b372
lea r12, [rbx + 0x60]
nop word [rax + rax]
mov r8d, 6
mov edx, r15d
mov rcx, r12
call fcn.00402960
lea r9, [0x00410712]
mov edx, r15d
mov rcx, r12
mov r14, rax
mov r8d, 6
call fcn.00402980
test r14, r14
mov r9, rax
je 0x40b600
test rax, rax
mov r15d, dword [r14 + 0xc]
je 0x40b493
lea r8, [0x00410aaa]
mov rdx, r13
mov rcx, rsi
call sub.msvcrt.dll_fprintf
cmp r15d, 0xffffffff
jne 0x40b440
nop dword [rax]
add rdi, qword [rbx + 0x180]
mov r8, rdi
jmp 0x40b372
test eax, eax
jne 0x40b4c1
mov rdx, rsi
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov r9, rsi
mov r8d, 4
mov edx, 1
lea rcx, str.__n_n
xor r12d, r12d
call sub.msvcrt.dll_fwrite
cmp qword [rbx + 0x48], 0
mov eax, 1
lea rbp, [0x00410712]
lea r14, str._s_s
jne 0x40b5bd
jmp 0x40b675
xor r9d, r9d
mov r8, rbp
mov rcx, rsi
call fcn.0040a0b0
mov r8, rbp
mov rdx, r14
mov rcx, rsi
mov rax, qword [rbx + 0x180]
mov r9, qword [rax + rdi + 0x18]
call sub.msvcrt.dll_fprintf
mov rax, qword [rbx + 0x180]
mov r13, qword [rax + rdi + 0x40]
test r13, r13
je 0x40b561
mov edx, 0x20
mov rcx, r13
call sub.msvcrt.dll_strchr
lea rdx, str._:__s
mov rcx, rsi
lea r8, [rax + 1]
test rax, rax
cmove r8, r13
call sub.msvcrt.dll_fprintf
mov rdx, rsi
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov r8, rbp
mov rcx, rsi
lea rdx, str._s_n
call sub.msvcrt.dll_fprintf
mov r9, rbp
mov rdx, rbx
mov rcx, rsi
add rdi, qword [rbx + 0x180]
mov r8, rdi
call fcn.004095a0
mov r8, rbp
mov rcx, rsi
lea rdx, str._s__n
call sub.msvcrt.dll_fprintf
xor eax, eax
mov rdx, qword [rbx + 0x48]
add r12, 1
cmp r12, rdx
jae 0x40b655
mov rdx, qword [rbx + 0x180]
lea rdi, [r12 + r12*2]
shl rdi, 5
add rdx, rdi
cmp dword [rdx], 3
jne 0x40b5ac
test eax, eax
je 0x40b501
lea rdx, str._s__Interface_declarations.____n
mov r8, rbp
mov rcx, rsi
call sub.msvcrt.dll_fprintf
mov rdx, qword [rbx + 0x180]
add rdx, rdi
jmp 0x40b501
test rax, rax
je 0x40b4a0
lea r8, [0x00410aaa]
mov rdx, r13
mov rcx, rsi
call sub.msvcrt.dll_fprintf
add rdi, qword [rbx + 0x180]
mov r8, rdi
jmp 0x40b372
lea rdx, str._s__CoClass_declarations.____n
mov rcx, rsi
lea r8, [0x00410aaa]
call sub.msvcrt.dll_fprintf
mov rdx, qword [rbx + 0x180]
add rdx, rdi
jmp 0x40b3cd
test eax, eax
jne 0x40b7c0
mov rdx, rsi
mov ecx, 0xa
call sub.msvcrt.dll_fputc
cmp qword [rbx + 0x48], 0
jne 0x40b7c9
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test eax, eax
je 0x40b8e0
test rdx, rdx
je 0x40b4c1
lea rbp, [0x00410aaa]
mov eax, 1
xor r12d, r12d
lea r14, str._s_s
jmp 0x40b779
xor r9d, r9d
mov r8, rbp
mov rcx, rsi
call fcn.0040a0b0
mov r8, rbp
mov rdx, r14
mov rcx, rsi
mov rax, qword [rbx + 0x180]
mov r9, qword [rax + rdi + 0x18]
call sub.msvcrt.dll_fprintf
mov rax, qword [rbx + 0x180]
mov r13, qword [rax + rdi + 0x40]
test r13, r13
je 0x40b720
mov edx, 0x20
mov rcx, r13
call sub.msvcrt.dll_strchr
lea rdx, str._:__s
mov rcx, rsi
lea r8, [rax + 1]
test rax, rax
cmove r8, r13
call sub.msvcrt.dll_fprintf
mov rdx, rsi
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov r8, rbp
mov rcx, rsi
lea rdx, str._s_n
call sub.msvcrt.dll_fprintf
mov r9, rbp
mov rdx, rbx
mov rcx, rsi
add rdi, qword [rbx + 0x180]
mov r8, rdi
call fcn.004095a0
mov r8, rbp
mov rcx, rsi
lea rdx, str._s__n
call sub.msvcrt.dll_fprintf
xor eax, eax
add r12, 1
cmp r12, qword [rbx + 0x48]
jae 0x40b4b0
mov rdx, qword [rbx + 0x180]
lea rdi, [r12 + r12*2]
shl rdi, 5
add rdx, rdi
cmp dword [rdx], 4
jne 0x40b76b
test eax, eax
je 0x40b6c0
lea rdx, str._s__Dispatch_interface_declarations.____n
mov r8, rbp
mov rcx, rsi
call sub.msvcrt.dll_fprintf
mov rdx, qword [rbx + 0x180]
add rdx, rdi
jmp 0x40b6c0
test rdx, rdx
je 0x40b675
lea rbp, [0x00410712]
mov eax, 1
xor r12d, r12d
lea r13, str._s_s
jmp 0x40b866
mov r9, qword [rdx + 0x40]
mov r8, rbp
mov rcx, rsi
call fcn.0040a0b0
mov r8, rbp
mov rdx, r13
mov rcx, rsi
mov rax, qword [rbx + 0x180]
mov r9, qword [rax + rdi + 0x18]
call sub.msvcrt.dll_fprintf
mov rdx, rsi
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov r8, rbp
mov rcx, rsi
lea rdx, str._s_n
call sub.msvcrt.dll_fprintf
mov r9, rbp
mov rdx, rbx
mov rcx, rsi
add rdi, qword [rbx + 0x180]
mov r8, rdi
call fcn.004095a0
mov r8, rbp
mov rcx, rsi
lea rdx, str._s__n
call sub.msvcrt.dll_fprintf
xor eax, eax
add r12, 1
cmp r12, qword [rbx + 0x48]
jae 0x40b900
mov rdx, qword [rbx + 0x180]
lea rdi, [r12 + r12*2]
shl rdi, 5
add rdx, rdi
cmp dword [rdx], 2
jne 0x40b858
test eax, eax
je 0x40b7e4
lea rdx, str._s__Module_declarations.____n
mov r8, rbp
mov rcx, rsi
call sub.msvcrt.dll_fprintf
mov rdx, qword [rbx + 0x180]
add rdx, rdi
jmp 0x40b7e4
mov rdx, rsi
mov ecx, 0xa
call sub.msvcrt.dll_fputc
jmp 0x40b2dd
mov rdx, rsi
mov ecx, 0xa
call sub.msvcrt.dll_fputc
cmp qword [rbx + 0x48], 0
jne 0x40b362
jmp 0x40b4c1
mov rdx, rsi
mov ecx, 0xa
call sub.msvcrt.dll_fputc
cmp qword [rbx + 0x48], 0
jne 0x40b6a1
jmp 0x40b4c1
test eax, eax
jne 0x40b675
mov rdx, rsi
mov ecx, 0xa
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sub.msvcrt.dll_fputc
lea r9, [0x00410712]
mov r8d, eax
mov rcx, rsi
call fcn.00409f70
jmp 0x40b286