Function at 0x421250
Capabilities:
Write file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
test byte [rdx], 1
mov rsi, rcx
mov rbx, rdx
je 0x421540
mov rdx, qword [0x0051f400]
mov rax, qword [rbx + 8]
cmp qword [rdx], rax
je 0x421880
mov rdi, qword [rbx + 0x10]
test rdi, rdi
je 0x421554
cmp byte [rdi], 0
lea rax, str._unnamed_
cmove rdi, rax
lea rcx, str.sym
mov r9, rsi
mov r8d, 4
mov edx, 1
call sub.msvcrt.dll_fwrite
lea rdx, [0x004ec596]
mov r8, rbx
mov rcx, rsi
call sub.msvcrt.dll_fprintf
lea rdx, [0x004ec70f]
mov r8, rdi
mov rcx, rsi
call sub.msvcrt.dll_fprintf
movzx eax, byte [rbx]
test al, 1
je 0x421420
mov rdx, qword [0x0051f400]
mov rdi, qword [rdx]
cmp qword [rbx + 8], rdi
je 0x421413
mov rdx, qword [rbx + 0x18]
test rdx, rdx
je 0x421334
cmp rdx, qword [0x0051f5a0]
je 0x421334
lea rcx, str._frag
mov r9, rsi
mov r8d, 6
mov edx, 1
call sub.msvcrt.dll_fwrite
mov r8, qword [rbx + 0x18]
lea rdx, [0x004ec596]
mov rcx, rsi
call sub.msvcrt.dll_fprintf
movzx eax, byte [rbx]
test al, 4
jne 0x421730
lea rcx, str._local
mov r9, rsi
mov r8d, 6
mov edx, 1
call sub.msvcrt.dll_fwrite
movzx eax, byte [rbx]
and eax, 1
jne 0x421510
test byte [rbx + 1], 2
je 0x421560
lea rcx, str._weakrefr
mov r9, rsi
mov r8d, 9
mov edx, 1
call sub.msvcrt.dll_fwrite
movzx eax, byte [rbx]
and eax, 1
je 0x4216c0
mov rdx, qword [0x0051f400]
mov rcx, qword [rbx + 8]
cmp rcx, qword [rdx]
je 0x4218d0
cmp rcx, qword [rdx]
je 0x4218f0
mov r8, qword [rcx]
lea rdx, [0x004ec70f]
mov rcx, rsi
call sub.msvcrt.dll_fprintf
movzx eax, byte [rbx]
mov r9d, eax
and r9d, 1
je 0x421660
mov rdx, qword [0x0051f400]
mov rcx, qword [rbx + 8]
cmp rcx, qword [rdx]
mov r8, rcx
je 0x4215a3
test al, 4
jne 0x421673
mov r8d, dword [0x005508d8]
cmp r8d, 7
jg 0x421650
cmp rcx, qword [rdx]
jne 0x4215d5
mov rax, qword [rbx + 0x18]
jmp 0x4215cd
mov rbx, qword [rbx + 0x18]
nop word [rax + rax]
mov rax, qword [0x0051f5a0]
cmp qword [rbx + 0x40], rax
je 0x42145a
lea rcx, str._frag
mov r8d, 6
mov edx, 1
mov r9, rsi
call sub.msvcrt.dll_fwrite
mov r8, qword [rbx + 0x40]
lea rdx, [0x004ec596]
mov rcx, rsi
call sub.msvcrt.dll_fprintf
movzx eax, byte [rbx]
test al, 2
jne 0x421700
test al, 4
jne 0x421750
test al, 8
jne 0x4218a5
test al, 0x10
jne 0x421775
test al, 0x20
jne 0x42179a
mov rcx, rbx
call fcn.0041d8b0
test eax, eax
jne 0x4217c4
mov rcx, rbx
call fcn.0041d620
test eax, eax
jne 0x4217ee
mov rcx, rbx
call fcn.0041d680
test eax, eax
jne 0x421818
test byte [rbx], 1
je 0x4216d0
mov rdx, qword [0x0051f400]
mov rcx, qword [rbx + 8]
cmp rcx, qword [rdx]
je 0x421840
mov rax, qword [0x0051ed80]
add rax, 0x128
cmp rcx, rax
je 0x421386
lea rcx, str._defined
mov r9, rsi
mov r8d, 8
mov edx, 1
call sub.msvcrt.dll_fwrite
movzx eax, byte [rbx]
and eax, 1
je 0x421362
nop
mov rdx, qword [0x0051f400]
mov rdi, qword [rbx + 8]
cmp qword [rdx], rdi
jne 0x421399
mov rax, qword [rbx + 0x18]
test byte [rax + 1], 2
jne 0x42136c
jmp 0x421386
mov rax, rdx
mov rax, qword [rax + 8]
mov rdi, qword [rax + 8]
test rdi, rdi
jne 0x421287
lea rdi, str._unnamed_
jmp 0x421295
xor eax, eax
mov rdx, rbx
test byte [rdx + 1], 4
je 0x42158b
lea rcx, str._weakrefd
mov r9, rsi
mov r8d, 9
mov edx, 1
call sub.msvcrt.dll_fwrite
movzx eax, byte [rbx]
and eax, 1
mov rcx, qword [rbx + 8]
test al, al
mov rdx, rcx
jne 0x4218e0
mov rcx, qword [rdx + 0x20]
jmp 0x4213af
mov rax, qword [rbx + 0x18]
test byte [rax], 4
jne 0x42166b
mov r8d, dword [0x005508d8]
cmp r8d, 7
jg 0x421650
test r9b, r9b
jne 0x421921
mov rax, rbx
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x20]
mov rax, qword [0x0051ed80]
add rax, 0x128
cmp rcx, rax
je 0x421650
add r8d, 1
lea r9, [0x004ec507]
lea rdx, str._n_s_
mov dword [0x005508d8], r8d
mov rcx, rsi
shl r8d, 2
call sub.msvcrt.dll_fprintf
test byte [rbx], 1
je 0x421894
mov rax, qword [0x0051f400]
mov rax, qword [rax]
cmp qword [rbx + 8], rax
je 0x421890
mov r8d, dword [rbx + 0x20]
lea rdx, str.constant__lx
mov rcx, rsi
call sub.msvcrt.dll_fprintf
mov rdx, rsi
mov ecx, 0x3e
call sub.msvcrt.dll_fputc
sub dword [0x005508d8], 1
mov rcx, rsi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp sub.msvcrt.dll_fflush
test al, 4
je 0x4215b0
mov rax, rbx
mov rax, qword [rax + 8]
mov r8, qword [rax + 0x20]
mov rax, qword [0x0051ed80]
add rax, 0x128
cmp r8, rax
je 0x421650
mov rax, qword [0x0051f020]
cmp qword [rax], r8
je 0x421650
mov rcx, rbx
call fcn.0041ef20
lea rdx, [0x004ec786]
mov rcx, rsi
mov r8d, eax
call sub.msvcrt.dll_fprintf
mov rcx, rsi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp sub.msvcrt.dll_fflush
mov rdx, rbx
jmp 0x421565
mov rdx, qword [rbx + 8]
test byte [rdx + 0x18], 4
jne 0x421852
mov rax, qword [0x0051ed80]
add rax, 0x128
cmp qword [rdx + 0x20], rax
je 0x421356
jmp 0x4214e8
lea rcx, str._written
mov r9, rsi
mov r8d, 8
mov edx, 1
call sub.msvcrt.dll_fwrite
movzx eax, byte [rbx]
test al, 4
je 0x42146d
jmp 0x421750
lea rcx, str._resolved
mov r9, rsi
mov r8d, 9
mov edx, 1
call sub.msvcrt.dll_fwrite
jmp 0x42133c
lea rcx, str._resolved
mov r9, rsi
mov r8d, 9
mov edx, 1
call sub.msvcrt.dll_fwrite
movzx eax, byte [rbx]
test al, 0x10
je 0x42147d
lea rcx, str._used_in_reloc
mov r9, rsi
mov r8d, 0xe
mov edx, 1
call sub.msvcrt.dll_fwrite
movzx eax, byte [rbx]
test al, 0x20
je 0x421485
lea rcx, str._used
mov r9, rsi
mov r8d, 5
mov edx, 1
call sub.msvcrt.dll_fwrite
mov rcx, rbx
call fcn.0041d8b0
test eax, eax
je 0x421495
lea rcx, str._local
mov r9, rsi
mov r8d, 6
mov edx, 1
call sub.msvcrt.dll_fwrite
mov rcx, rbx
call fcn.0041d620
test eax, eax
je 0x4214a5
lea rcx, str._extern
mov r9, rsi
mov r8d, 7
mov edx, 1
call sub.msvcrt.dll_fwrite
mov rcx, rbx
call fcn.0041d680
test eax, eax
je 0x4214b5
lea rcx, str._weak
mov r9, rsi
mov r8d, 5
mov edx, 1
call sub.msvcrt.dll_fwrite
jmp 0x4214b5
mov rax, qword [rbx + 0x18]
mov rdx, qword [rax + 8]
test byte [rdx + 0x18], 4
je 0x421918
lea rcx, str._debug
mov r9, rsi
mov r8d, 6
mov edx, 1
call sub.msvcrt.dll_fwrite
test byte [rbx], 1
jne 0x421900
mov rdx, qword [rbx + 8]
jmp 0x4216de
mov rax, qword [rbx + 0x18]
jmp 0x421543
mov rbx, qword [rbx + 0x18]
lea rdx, [rbx + 0x10]
mov rcx, rsi
call fcn.00420db0
jmp 0x42163c
lea rcx, str._resolving
mov r9, rsi
mov r8d, 0xa
mov edx, 1
call sub.msvcrt.dll_fwrite
movzx eax, byte [rbx]
jmp 0x421475
mov rdx, qword [rbx + 0x18]
jmp 0x421565
mov rdx, qword [0x0051f400]
jmp 0x4213a6
mov rax, qword [rbx + 0x18]
mov rdx, qword [rax + 8]
jmp 0x42159a
mov rdx, qword [0x0051f400]
mov rcx, qword [rbx + 8]
cmp qword [rdx], rcx
jne 0x4214d2
mov rax, qword [rbx + 0x18]
mov rdx, qword [rax + 8]
jmp 0x4216de
mov rdx, qword [0x0051f400]
mov rcx, qword [rbx + 8]
jmp 0x421401