Function at 0x403c00
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2f0
call fcn.0040cd20
lea eax, [ebp + 0xc]
lea edx, [ebp + 8]
lea ecx, [esp + 0x294]
push 1
push eax
push edx
call fcn.0040dd06
call fcn.0040dc8e
push eax
push 0x413850
call fcn.0040dcb8
add esp, 8
mov dword [esp + 0x58], 0x40f6ec
mov dword [esp + 0x5c], 0x4046a0
lea esi, [esp + 0x58]
mov dword [esp + 0x68], esi
push esi
call fcn.0040dca6
add esp, 4
mov ecx, dword [esp + 0x68]
cmp ecx, esi
je 0x403c73
test ecx, ecx
je 0x403c7e
mov eax, dword [ecx]
add eax, 0x14
mov esi, ecx
jmp 0x403c7a
mov eax, dword [esp + 0x58]
add eax, 0x10
mov ecx, esi
call dword [eax]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x40], str.A_tool_to_format_C_C_Java_JavaScript_JSON_Objective_C_Protobuf_C_code._n_nIf_no_arguments_are_specified__it_formats_the_code_from_standard_input_nand_writes_the_result_to_the_standard_output._nIf__file_s_are_given__it_reformats_the_files._If__i_is_specified_ntogether_with__file_s__the_files_are_edited_in_place._Otherwise__the_nresult_is_written_to_the_standard_output._n
mov dword [esp + 0x44], 0x170
sub esp, 0x1c
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp + 8], xmm0
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
call fcn.0040dcbe
add esp, 0x1c
cmp byte [0x4138ac], 0
je 0x403cf7
push 0
push 0
call fcn.0040dca0
add esp, 8
xor edi, edi
lea ecx, [esp + 0x294]
call fcn.0040dd0c
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [0x4130fc], 0
je 0x403d67
mov eax, dword [0x413d34]
cmp eax, dword [0x413d38]
je 0x403d89
mov word [esp + 0x84], 0x104
mov dword [esp + 0x74], eax
mov word [esp + 0x2c], 0
sub esp, 0x14
lea eax, [esp + 0x88]
mov dword [esp + 4], eax
lea eax, [esp + 0x14]
mov dword [esp], eax
mov word [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
call fcn.0040dc64
add esp, 0x14
test byte [esp + 8], 1
jne 0x403daa
call fcn.0040ddc0
jmp 0x403dec
movzx eax, byte [0x413924]
test al, 1
je 0x403e06
mov ebx, dword [0x413928]
test ebx, ebx
jne 0x403e12
jmp 0x40410a
movzx eax, byte [0x413714]
test al, 1
je 0x403e5a
mov ecx, dword [0x41371c]
mov eax, dword [0x413718]
xor esi, esi
jmp 0x40435a
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
test eax, eax
je 0x403dec
call fcn.0040dcfa
mov esi, eax
lea eax, [esp + 0x18]
lea ecx, [esp + 0x74]
push eax
call fcn.0040dd60
movzx eax, byte [esp + 0x74]
test al, 1
je 0x404593
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
jmp 0x404599
mov eax, dword [0x413d34]
movzx ecx, byte [eax]
test cl, 1
je 0x403e3c
mov edx, dword [eax + 4]
cmp edx, 1
je 0x403e49
jmp 0x404343
mov ebx, eax
shr ebx, 1
test ebx, ebx
je 0x40410a
mov ecx, 0x413925
test al, 1
je 0x403e21
mov ecx, dword [0x41392c]
cmp ebx, 0xfffffff0
jae 0x404693
cmp ebx, 0xb
jae 0x403e68
mov eax, ebx
add al, bl
mov byte [esp], al
lea esi, [esp + 1]
jmp 0x403e8d
mov edx, ecx
shr edx, 1
cmp edx, 1
jne 0x404343
test cl, 1
je 0x404336
mov edx, dword [eax + 8]
jmp 0x404339
shr eax, 1
mov ecx, 0x413715
xor esi, esi
jmp 0x40435a
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
mov esi, ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 8], eax
add edi, 2
mov dword [esp], edi
mov dword [esp + 4], ebx
push ebx
push ecx
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov byte [esi + ebx], 0
lea ecx, [esp + 0xd8]
lea esi, [esp + 0x7c]
mov dword [esp + 0x74], 0x40f0a8
mov dword [esp + 0xd8], 0x40f0bc
mov dword [esp + 0x78], 0
push esi
call fcn.0040ddde
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0xffffffff
mov dword [esp + 0x74], 0x40f070
mov dword [esp + 0xd8], 0x40f084
mov ecx, esi
call fcn.0040bee0
cmp dword [esp + 0xbc], 0
movzx ebx, byte [esp]
je 0x404324
mov eax, dword [esp + 0x74]
mov eax, dword [eax - 0xc]
lea ecx, [esp + eax]
add ecx, 0x74
mov eax, dword [esp + eax + 0x84]
or eax, 4
push eax
call fcn.0040dde4
test bl, 1
je 0x403f38
push dword [esp + 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 1
jmp 0x403f6f
mov ecx, 0x413d34
push edi
call fcn.004075c0
inc dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov eax, dword [eax - 0xc]
lea esi, [esp + 0x74]
add eax, esi
lea edi, [esp + 0x18]
mov ecx, edi
push eax
call fcn.0040dd72
mov ecx, edi
push dword [sym.imp.libc.dll_std::__1::ctype_char_::id]
call fcn.0040dd6c
mov edx, dword [eax]
mov ecx, eax
push 0xa
call dword [edx + 0x1c]
mov ebx, eax
mov ecx, edi
call fcn.0040ddd8
movsx eax, bl
push eax
lea edi, [esp + 4]
push edi
push esi
call fcn.0040bf90
add esp, 0xc
mov ecx, dword [eax]
mov ecx, dword [ecx - 0xc]
test byte [eax + ecx + 0x10], 5
jne 0x404053
mov esi, dword [0x413d38]
cmp esi, dword [0x413d3c]
je 0x403f60
test byte [esp], 1
jne 0x403ff0
mov eax, dword [esp + 8]
mov dword [esi + 8], eax
movsd xmm0, qword [esp]
movsd qword [esi], xmm0
jmp 0x404041
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
cmp ebx, 0xa
ja 0x404008
lea eax, [esi + 1]
mov ecx, ebx
add cl, bl
mov byte [esi], cl
jmp 0x404035
mov dword [esp + 0x14], edx
cmp ebx, 0xfffffff0
jae 0x40468c
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov dword [esi + 8], eax
add edi, 2
mov dword [esi], edi
mov dword [esi + 4], ebx
mov edx, dword [esp + 0x14]
inc ebx
push ebx
push edx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
add esi, 0xc
mov dword [0x413d38], esi
inc dword [esp + 0x10]
jmp 0x403f6f
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0xf
ja 0x404075
mov ecx, eax
push 0x10
push str.Clang_formating
call fcn.0040dc4c
jmp 0x404083
movups xmm0, xmmword [str.Clang_formating]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x10
mov ecx, eax
push dword [esp + 0x10]
call fcn.0040dc58
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 6
ja 0x4040b1
mov ecx, eax
push 7
push str._files_n
call fcn.0040dc4c
test byte [esp], 1
jne 0x4040c8
jmp 0x4040d4
mov dword [ecx + 3], 0xa73656c
mov dword [ecx], 0x6c696620
add dword [eax + 0x10], 7
test byte [esp], 1
je 0x4040d4
push dword [esp + 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov dword [esp + 0x74], 0x40f070
mov dword [esp + 0xd8], 0x40f084
lea ecx, [esp + 0x7c]
call fcn.00408390
lea ecx, [esp + 0x74]
push 0x40f090
call sub.libc.dll_std::__1::basic_istream_char__std::__1::char_traits_char___::basic_istream__
lea ecx, [esp + 0xd8]
call fcn.0040ddea
mov esi, dword [0x413d34]
mov edi, dword [0x413d38]
cmp esi, edi
je 0x4042a3
mov eax, edi
sub eax, esi
cmp eax, 0xc
jne 0x4042d0
mov dword [esp + 0x10], 1
xor ebx, ebx
mov dword [esp + 0x14], edi
jmp 0x404189
mov byte [ecx], 0xa
inc dword [eax + 0x10]
mov edi, dword [esp + 0x14]
movzx eax, byte [esi]
lea ecx, [esi + 1]
mov edx, eax
shr edx, 1
test al, 1
cmovne ecx, dword [esi + 8]
mov dword [esp + 0x30], ecx
cmovne edx, dword [esi + 4]
mov dword [esp + 0x34], edx
sub esp, 8
movsd xmm0, qword [esp + 0x38]
movsd qword [esp], xmm0
call fcn.004047d0
add esp, 8
or bl, al
add esi, 0xc
cmp esi, edi
je 0x404629
cmp byte [0x413cbc], 0
je 0x40414a
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0xb
ja 0x4041c0
mov ecx, eax
push 0xc
push str.Formatting__
call fcn.0040dc4c
jmp 0x4041d8
mov dword [ecx + 8], 0x5b20676e
mov dword [ecx + 4], 0x69747461
mov dword [ecx], 0x6d726f46
add dword [eax + 0x10], 0xc
mov ecx, eax
push dword [esp + 0x10]
call fcn.0040dc58
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x404200
mov byte [ecx], 0x2f
inc dword [eax + 0x10]
jmp 0x40420e
mov ecx, eax
push 1
push 0x40ee74
call fcn.0040dc4c
mov ecx, dword [0x413d38]
sub ecx, dword [0x413d34]
sar ecx, 2
imul edx, ecx, 0xaaaaaaab
mov ecx, eax
push edx
call fcn.0040dc58
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 1
ja 0x404260
mov ecx, eax
push 2
push 0x40ee76
call fcn.0040dc4c
movzx edx, byte [esi]
test dl, 1
jne 0x404271
lea edi, [esi + 1]
shr edx, 1
jmp 0x404277
mov word [ecx], 0x205d
add dword [eax + 0x10], 2
movzx edx, byte [esi]
test dl, 1
je 0x40424e
mov edi, dword [esi + 8]
mov edx, dword [esi + 4]
inc dword [esp + 0x10]
mov ecx, eax
push edx
push edi
call fcn.0040dc4c
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
jne 0x404140
mov ecx, eax
push 1
push 0x40ee79
call fcn.0040dc4c
jmp 0x404146
mov dword [esp + 0x38], 0x40ee1f
mov dword [esp + 0x3c], 1
sub esp, 8
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
call fcn.004047d0
add esp, 8
mov ebx, eax
jmp 0x404629
mov eax, dword [0x413c2c]
cmp eax, dword [0x413c30]
jne 0x4042fb
mov eax, dword [0x413b9c]
cmp eax, dword [0x413ba0]
jne 0x4042fb
mov eax, dword [0x4131ec]
cmp eax, dword [0x4131f0]
je 0x40412b
call fcn.0040dcfa
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 0x44
ja 0x4045eb
mov ecx, eax
push 0x45
push str.error:__offset___length_and__lines_can_only_be_used_for_single_file._n
call fcn.0040dc4c
jmp 0x404627
test bl, 1
je 0x404652
mov eax, dword [esp + 8]
jmp 0x404656
lea edx, [eax + 1]
mov ecx, 0x413714
cmp byte [edx], 0x2d
je 0x404345
mov ecx, eax
movzx eax, byte [ecx]
test al, 1
je 0x404354
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x404357
inc ecx
shr eax, 1
mov esi, dword [esp]
movzx edx, byte [0x4139ac]
mov edi, edx
shr edi, 1
test dl, 1
mov edx, 0x4139ad
cmovne edx, dword [0x4139b4]
mov dword [esp + 0x18], edx
cmovne edi, dword [0x4139b0]
mov dword [esp + 0x1c], edi
movzx edx, byte [0x41368c]
mov edi, edx
shr edi, 1
test dl, 1
mov edx, 0x41368d
cmovne edx, dword [0x413694]
mov dword [esp + 0x50], ecx
cmovne edi, dword [0x413690]
mov dword [esp + 0x54], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edi
test esi, esi
je 0x4043ca
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
sub ecx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
jmp 0x4043da
mov dword [esp + 0x24], 0x40e0c7
mov dword [esp + 0x28], 0
sub esp, 0x2c
movsd xmm0, qword [esp + 0x50]
movsd qword [esp + 0x1c], xmm0
movsd xmm0, qword [esp + 0x74]
movsd qword [esp + 0x14], xmm0
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp + 0xc], xmm0
movsd xmm0, qword [esp + 0x44]
movsd qword [esp + 4], xmm0
lea edi, [esp + 0xa0]
mov dword [esp], edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
call fcn.0040dbda
add esp, 0x2c
test byte [esp + 0x290], 1
jne 0x40445d
mov eax, esp
push edi
push eax
call fcn.0040dbd4
add esp, 8
call fcn.0040dd00
movzx edx, byte [esp]
test dl, 1
je 0x4044a2
mov edi, dword [esp + 8]
mov edx, dword [esp + 4]
jmp 0x4044a8
call fcn.0040dcfa
mov edi, eax
xor eax, eax
test byte [esp + 0x290], 1
je 0x40447c
mov eax, dword [esp + 0x74]
mov dword [esp + 0x74], 0
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
mov ecx, esp
push eax
push ecx
call fcn.0040dd12
add esp, 8
movzx eax, byte [esp]
test al, 1
je 0x4044f8
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
jmp 0x4044fe
shr edx, 1
lea edi, [esp + 1]
mov ecx, eax
push edx
push edi
call fcn.0040dc4c
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x404560
mov byte [ecx], 0xa
inc dword [eax + 0x10]
test byte [esp], 1
je 0x4044d5
push dword [esp + 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
xor edi, edi
test byte [esp + 0x290], 1
je 0x404543
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x74], 0
test ecx, ecx
je 0x40454c
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x40454c
shr eax, 1
lea edx, [esp + 1]
mov ecx, edi
push eax
push edx
call fcn.0040dc4c
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x40457d
mov byte [ecx], 0xa
inc dword [eax + 0x10]
test byte [esp], 1
je 0x404527
push dword [esp + 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x404534
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, 1
test byte [esp + 0x290], 1
jne 0x4044e1
lea ecx, [esp + 0x74]
call fcn.00407c70
test esi, esi
je 0x403ce1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x403ce1
mov ecx, eax
push 1
push 0x40ee79
call fcn.0040dc4c
test byte [esp], 1
jne 0x4044c9
jmp 0x4044d5
mov ecx, eax
push 1
push 0x40ee79
call fcn.0040dc4c
test byte [esp], 1
jne 0x40451b
jmp 0x404527
shr eax, 1
lea edx, [esp + 0x75]
mov ecx, esi
push eax
push edx
call fcn.0040dc4c
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x404634
mov byte [ecx], 0xa
inc dword [eax + 0x10]
test byte [esp + 0x74], 1
je 0x4045c7
push dword [esp + 0x7c]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 8], 1
jne 0x4045e1
mov ecx, dword [esp]
mov dword [esp], 0
test ecx, ecx
je 0x4045e1
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, 1
jmp 0x403ce1
movsd xmm0, qword [0x40ee5e]
movsd qword [ecx + 0x3d], xmm0
movups xmm0, xmmword [0x40ee51]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [0x40ee41]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [0x40ee31]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [str.error:__offset___length_and__lines_can_only_be_used_for_single_file._n]
movups xmmword [ecx], xmm0
add dword [eax + 0x10], 0x45
mov bl, 1
movzx edi, bl
and edi, 1
jmp 0x403ce1
mov ecx, eax
push 1
push 0x40ee79
call fcn.0040dc4c
test byte [esp + 0x74], 1
jne 0x4045bb
jmp 0x4045c7
lea eax, [esp + 1]
push 0x40f708
push eax
call sub.msvcrt.dll_fopen
add esp, 8
mov dword [esp + 0xbc], eax
test eax, eax
je 0x403f0a
mov dword [esp + 0xcc], 8
test bl, 1
jne 0x403f2c
jmp 0x403f38
mov ecx, esi
call fcn.004075b0
mov ecx, esp
call fcn.004075b0
int3