Function at 0x40bb10
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
mov edx, 1
push esi
push ebx
mov eax, 0x18
sub esp, 0x43c
call fcn.004194f0
mov edx, 1
mov dword [eax], str.BCADEFHG
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0x422922
lea ebp, [esp + 0x2e0]
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 1
mov dword [esp + 0x2e0], eax
mov eax, 0x24
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e8], 2
mov dword [esp + 0x2ec], 2
mov edi, ebp
mov dword [esp + 0x2f0], 0
mov dword [esp + 0x2f4], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x422924
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0x422926
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], 0x422928
mov dword [eax + 0x1c], 1
mov dword [eax + 0x20], 1
mov dword [esp + 0x2f8], eax
mov eax, 0x18
mov dword [esp + 0x2fc], 0
mov dword [esp + 0x300], 3
mov dword [esp + 0x304], 3
mov dword [esp + 0x308], 0
mov dword [esp + 0x30c], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x422924
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0x42292a
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 1
mov dword [esp + 0x310], eax
mov eax, 0xc
mov dword [esp + 0x314], 0
mov dword [esp + 0x318], 2
mov dword [esp + 0x31c], 2
mov dword [esp + 0x320], 0
mov dword [esp + 0x324], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], str.BCADEFHG
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esp + 0x328], eax
mov eax, 0x24
mov dword [esp + 0x32c], 0
mov dword [esp + 0x330], 1
mov dword [esp + 0x334], 1
mov dword [esp + 0x338], 0
mov dword [esp + 0x33c], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x42292a
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], str.BCADEFHG
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], 0x42292a
mov dword [eax + 0x1c], 1
mov dword [eax + 0x20], 1
mov dword [esp + 0x340], eax
mov eax, 0x18
mov dword [esp + 0x344], 0
mov dword [esp + 0x348], 3
mov dword [esp + 0x34c], 3
mov dword [esp + 0x350], 0
mov dword [esp + 0x354], 0xc
call fcn.004194f0
mov dword [eax], 0x422922
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0x422928
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 1
mov dword [esp + 0x358], eax
mov eax, 0x60
mov dword [esp + 0x35c], 0
mov dword [esp + 0x360], 2
mov dword [esp + 0x364], 2
mov dword [esp + 0x368], 0
mov dword [esp + 0x36c], 0xc
mov dword [esp + 0x148], 0x422924
mov dword [esp + 0x14c], 1
mov dword [esp + 0x150], 1
mov dword [esp + 0x154], str.BCADEFHG
mov dword [esp + 0x158], 1
mov dword [esp + 0x15c], 1
mov dword [esp + 0x160], 0x422922
mov dword [esp + 0x164], 1
mov dword [esp + 0x168], 1
mov dword [esp + 0x16c], 0x422926
mov dword [esp + 0x170], 1
mov dword [esp + 0x174], 1
mov dword [esp + 0x178], 0x422928
mov dword [esp + 0x17c], 1
mov dword [esp + 0x180], 1
mov dword [esp + 0x184], 0x42292a
mov dword [esp + 0x188], 1
mov dword [esp + 0x18c], 1
call fcn.0040e4e0
mov esi, eax
mov eax, 0xc0
call fcn.0040e4e0
mov ebx, eax
mov eax, 0x90
call fcn.0040e2a0
mov dword [esp + 0x398], esi
mov dword [esp + 0x39c], ebx
lea esi, [esp + 0x148]
lea ebx, [esp + 0x370]
mov dword [esp + 0x370], 0xc
mov dword [esp + 0x374], 0x18
mov dword [esp + 0x378], 0x1e
mov byte [esp + 0x37c], 0x10
mov byte [esp + 0x37d], 5
mov dword [esp + 0x380], 0xc
mov dword [esp + 0x384], 0x18
mov dword [esp + 0x388], 8
mov dword [esp + 0x38c], 0
mov dword [esp + 0x390], 0
mov dword [esp + 0x394], 0
mov dword [esp + 0x3a0], eax
mov dword [esp + 0x3a4], 4
mov byte [esp + 0x3a8], 1
mov dword [esp + 0x3ac], 0x409420
mov dword [esp + 0x3b0], 0x4093e0
mov dword [esp + 0x3b4], 0x409350
mov dword [esp + 0x3b8], 0x4093c0
mov dword [esp + 0x3bc], 0
lea esi, [esi]
lea edi, [edi]
mov ecx, edi
mov edx, esi
mov eax, ebx
call fcn.00409f00
lea eax, [esp + 0x190]
add esi, 0xc
add edi, 0x18
cmp esi, eax
jne 0x40bfd0
mov edx, 1
mov eax, 0x24
mov ecx, 0x14
lea edi, [esp + 0x1e0]
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.004194f0
mov edx, 1
mov dword [eax], str.BCADEFHG
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0x422922
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], 0x422926
mov dword [eax + 0x1c], 1
mov dword [eax + 0x20], 1
mov dword [esp + 0x370], eax
mov eax, 0xc
mov dword [esp + 0x374], 0
mov dword [esp + 0x378], 3
mov dword [esp + 0x37c], 3
mov dword [esp + 0x380], 0
mov dword [esp + 0x384], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x422928
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esp + 0x388], eax
mov eax, 0xc
mov dword [esp + 0x38c], 0
mov dword [esp + 0x390], 1
mov dword [esp + 0x394], 1
mov dword [esp + 0x398], 0
mov dword [esp + 0x39c], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x42292a
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esp + 0x3a0], eax
mov eax, 0xc
mov dword [esp + 0x3a4], 0
mov dword [esp + 0x3a8], 1
mov dword [esp + 0x3ac], 1
mov dword [esp + 0x3b0], 0
mov dword [esp + 0x3b4], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x422928
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esp + 0x3b8], eax
mov eax, 0xc
mov dword [esp + 0x3bc], 0
mov dword [esp + 0x3c0], 1
mov dword [esp + 0x3c4], 1
mov dword [esp + 0x3c8], 0
mov dword [esp + 0x3cc], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x42292c
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esp + 0x3d0], eax
mov eax, 0xc
mov dword [esp + 0x3d4], 0
mov dword [esp + 0x3d8], 1
mov dword [esp + 0x3dc], 1
mov dword [esp + 0x3e0], 0
mov dword [esp + 0x3e4], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x42292c
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esp + 0x3e8], eax
mov eax, 0xc
mov dword [esp + 0x3ec], 0
mov dword [esp + 0x3f0], 1
mov dword [esp + 0x3f4], 1
mov dword [esp + 0x3f8], 0
mov dword [esp + 0x3fc], 0xc
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x42292c
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esp + 0x400], eax
mov eax, 0x24
mov dword [esp + 0x404], 0
mov dword [esp + 0x408], 1
mov dword [esp + 0x40c], 1
mov dword [esp + 0x410], 0
mov dword [esp + 0x414], 0xc
call fcn.004194f0
mov dword [eax], 0x422928
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0x42292a
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], 0x42292e
mov dword [eax + 0x1c], 1
mov dword [eax + 0x20], 1
mov dword [esp + 0x418], eax
mov eax, 0x60
mov dword [esp + 0x41c], 0
mov dword [esp + 0x420], 3
mov dword [esp + 0x424], 3
mov dword [esp + 0x428], 0
mov dword [esp + 0x42c], 0xc
mov dword [esp + 0x280], 0x422924
mov dword [esp + 0x284], 1
mov dword [esp + 0x288], 1
mov dword [esp + 0x28c], str.BCADEFHG
mov dword [esp + 0x290], 1
mov dword [esp + 0x294], 1
mov dword [esp + 0x298], 0x422922
mov dword [esp + 0x29c], 1
mov dword [esp + 0x2a0], 1
mov dword [esp + 0x2a4], 0x422926
mov dword [esp + 0x2a8], 1
mov dword [esp + 0x2ac], 1
mov dword [esp + 0x2b0], 0x422928
mov dword [esp + 0x2b4], 1
mov dword [esp + 0x2b8], 1
mov dword [esp + 0x2bc], 0x42292a
mov dword [esp + 0x2c0], 1
mov dword [esp + 0x2c4], 1
mov dword [esp + 0x2c8], 0x42292e
mov dword [esp + 0x2cc], 1
mov dword [esp + 0x2d0], 1
mov dword [esp + 0x2d4], 0x42292c
mov dword [esp + 0x2d8], 1
mov dword [esp + 0x2dc], 1
call fcn.0040e4e0
mov edi, eax
mov eax, 0xc0
call fcn.0040e4e0
mov esi, eax
mov eax, 0x90
call fcn.0040e2a0
mov dword [esp + 0x25c], esi
lea esi, [esp + 0x280]
mov dword [esp + 0x230], 0xc
mov dword [esp + 0x234], 0x18
mov dword [esp + 0x238], 0x1e
mov byte [esp + 0x23c], 0x10
mov byte [esp + 0x23d], 5
mov dword [esp + 0x240], 0xc
mov dword [esp + 0x244], 0x18
mov dword [esp + 0x248], 8
mov dword [esp + 0x24c], 0
mov dword [esp + 0x250], 0
mov dword [esp + 0x254], 0
mov dword [esp + 0x258], edi
mov dword [esp + 0x260], eax
mov dword [esp + 0x264], 4
mov byte [esp + 0x268], 1
mov dword [esp + 0x26c], 0x409420
mov dword [esp + 0x270], 0x4093e0
mov dword [esp + 0x274], 0x409350
mov dword [esp + 0x278], 0x4093c0
mov dword [esp + 0x27c], 0
nop
lea esi, [esi]
lea eax, [esp + 0x230]
mov ecx, ebx
mov edx, esi
add esi, 0xc
add ebx, 0x18
call fcn.00409f00
cmp esi, ebp
jne 0x40c560
mov ebx, 0x14
lea edi, [esp + 0x190]
lea esi, [esp + 0x230]
mov ecx, ebx
mov dword [esp + 0x78], 0x422924
mov dword [esp + 0x7c], 1
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x80], 1
mov dword [esp + 0x5c], 0x42292a
mov edi, esp
mov dword [esp + 0x50], 0x422924
mov dword [esp + 0x54], 1
lea esi, [esp + 0x1e0]
mov dword [esp + 0x58], 1
lea eax, [esp + 0xc0]
mov ebx, ecx
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x108]
call fcn.00401590
mov eax, ebx
mov ecx, 0x10
mov ebx, dword [esp + 0xd4]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x108], 0x422930
mov dword [esp + 0x10c], 0x33
mov dword [esp + 0x110], 1
mov dword [esp + 0x114], 0xfe10
cmp eax, 1
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
jle 0x40cac0
mov eax, ecx
imul eax, ebx
test eax, eax
js 0x40cb2a
mov dword [esp + 0x6c], 0
je 0x40c678
mov edx, 1
call fcn.004194f0
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x6c]
lea ebp, [eax - 1]
imul ebp, ebx
add ebp, edi
xor edi, edi
lea esi, [esi]
mov dword [esp + 4], ebp
mov dword [esp], esi
add edi, 1
mov dword [esp + 8], ebx
add esi, ebx
sub ebp, ebx
call sub.msvcrt.dll_memcpy
cmp edi, dword [esp + 0x64]
jne 0x40c690
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], ebx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x118]
call fcn.0040e720
lea edx, [esp + 0x108]
lea eax, [esp + 0x84]
mov dword [esp + 0x128], 0x422964
mov dword [esp + 0x130], 1
call fcn.00419690
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
test edi, edi
je 0x40cb10
mov eax, dword [sym.imp.msvcrt.dll__iob]
test ebx, ebx
mov byte [esp + 0x230], 0xa
lea esi, [eax + 0x20]
jle 0x40c7b5
mov esi, esi
lea edi, [edi]
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 0xc], esi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebx, eax
add edi, eax
test ebx, ebx
jg 0x40c790
mov eax, dword [sym.imp.msvcrt.dll__iob]
lea esi, [eax + 0x20]
lea edi, [esp + 0x230]
mov ebx, 1
lea esi, [esi]
lea edi, [edi]
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 0xc], esi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebx, eax
add edi, eax
test ebx, ebx
jg 0x40c7d0
mov ebx, 0x14
mov dword [esp + 0x90], 0x422924
mov dword [esp + 0x94], 1
mov dword [esp + 0x98], 1
mov dword [esp + 0x5c], 0x42292c
mov ecx, ebx
mov dword [esp + 0x50], 0x422924
mov dword [esp + 0x54], 1
mov edi, esp
mov dword [esp + 0x58], 1
lea esi, [esp + 0x190]
lea eax, [esp + 0xa8]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x230]
mov ebx, ecx
call fcn.00401590
mov eax, ebx
mov ecx, 0x10
mov ebp, dword [esp + 0xa8]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x230], str._n_Graph_02:_a_first_path_from_node_A_to_node_H_is:
mov dword [esp + 0x234], 0x33
mov dword [esp + 0x238], 1
mov dword [esp + 0x23c], 0xfe10
cmp eax, 1
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov ebx, dword [esp + 0xbc]
jle 0x40ca70
mov eax, ecx
imul eax, ebx
test eax, eax
js 0x40cb2a
mov dword [esp + 0x6c], 0
je 0x40c8df
mov edx, 1
call fcn.004194f0
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x6c]
lea esi, [eax - 1]
imul esi, ebx
add esi, ebp
xor ebp, ebp
jmp 0x40c900
mov dword [esp + 4], esi
mov dword [esp], edi
add ebp, 1
mov dword [esp + 8], ebx
add edi, ebx
sub esi, ebx
call sub.msvcrt.dll_memcpy
cmp dword [esp + 0x64], ebp
jne 0x40c900
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xf4], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], ebx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x240]
call fcn.0040e720
lea edx, [esp + 0x230]
lea eax, [esp + 0x9c]
mov dword [esp + 0x250], 0x422964
mov dword [esp + 0x258], 1
call fcn.00419690
mov esi, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa0]
test esi, esi
je 0x40cb1a
mov eax, dword [sym.imp.msvcrt.dll__iob]
test ebx, ebx
mov byte [esp + 0x77], 0xa
lea edi, [eax + 0x20]
jle 0x40ca25
nop
lea esi, [esi]
mov dword [esp + 8], ebx
mov dword [esp], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebx, eax
add esi, eax
test ebx, ebx
jg 0x40ca00
mov eax, dword [sym.imp.msvcrt.dll__iob]
lea edi, [eax + 0x20]
lea esi, [esp + 0x77]
mov ebx, 1
jmp 0x40ca40
mov dword [esp + 8], ebx
mov dword [esp], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebx, eax
add esi, eax
test ebx, ebx
jg 0x40ca40
add esp, 0x43c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xac]
mov dword [esp + 0xf0], ebp
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x104], ebx
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x100], eax
jmp 0x40c95b
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd8], edi
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xe8], eax
jmp 0x40c6e7
call fcn.0041a9d0
jmp 0x40c7f0
call fcn.0041a9d0
add esp, 0x43c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.0041d8e0
nop