Function at 0x401590
Capabilities:
Create thread
Read file on windows
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
push eax
mov eax, 0x1808
call fcn.0041c4a0
sub esp, eax
mov eax, dword [esp + eax]
mov dword [esp + 0x214], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x1830]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x183c]
mov edi, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1840]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1844]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x1848]
mov dword [esp + 0x5c], eax
mov eax, 0x60
call fcn.0040e4e0
mov esi, eax
mov eax, 8
call fcn.0040e400
mov ebx, eax
mov eax, 0x90
call fcn.0040e2a0
test edi, edi
mov dword [esp + 0x800], 0xc
mov dword [esp + 0x804], 1
mov dword [esp + 0x808], 0x1e
mov byte [esp + 0x80c], 0x10
mov byte [esp + 0x80d], 5
mov dword [esp + 0x810], 0xc
mov dword [esp + 0x814], 1
mov dword [esp + 0x818], 8
mov dword [esp + 0x81c], 0
mov dword [esp + 0x820], 0
mov dword [esp + 0x824], 0
mov dword [esp + 0x828], esi
mov dword [esp + 0x82c], ebx
mov dword [esp + 0x830], eax
mov dword [esp + 0x834], 4
mov byte [esp + 0x838], 1
mov dword [esp + 0x83c], 0x409420
mov dword [esp + 0x840], 0x4093e0
mov dword [esp + 0x844], 0x409350
mov dword [esp + 0x848], 0x4093c0
mov dword [esp + 0x84c], 0
jle 0x4036cf
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x402780
mov edi, dword [esp + 0x70]
lea eax, [esp + 0x800]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x68], eax
mov esi, edi
add edi, dword [esp + 0x6c]
cmp byte [esi], 0
jne 0x401796
mov eax, dword [ebx + 8]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [esp + 0x7a8], eax
mov dword [esp + 8], eax
lea eax, [esp + 0x7a0]
mov dword [esp + 0x7a0], ecx
mov dword [esp + 0x7a4], edx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00409dd0
mov eax, dword [esp + 0x7a0]
lea ecx, [esp + 0xa6]
lea edx, [esp + 0x114]
mov byte [esp + 0xa6], 0
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x7a4]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x7a8]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x68]
call fcn.00409f00
add esi, 1
add ebx, ebp
cmp esi, edi
jne 0x401714
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x1870]
mov ecx, 0x14
lea edi, [esp + 0x3d0]
rep movsd dword es:[edi], dword [esi]
mov dword [esp], eax
mov eax, dword [esp + 0x1874]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1878]
mov dword [esp + 8], eax
lea eax, [esp + 0xa8]
call fcn.00409dd0
mov eax, 0x18
call fcn.0040e4e0
mov ebx, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x214], 0
mov dword [esp + 0x64], 2
mov dword [ebx], eax
mov eax, dword [esp + 0xac]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [ebx + 8], eax
mov eax, 1
lea esi, [esi]
lea edi, [edi]
sub eax, 1
mov edx, dword [esp + 0x58]
movzx ebx, byte [esp + 0x3dd]
mov dword [esp + 0x44], eax
lea eax, [eax + eax*2]
mov byte [esp + 0xa3], 0
lea eax, [edx + eax*4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x34], edx
mov dword [esp + 0xb8], edx
mov esi, eax
mov eax, dword [esp + 0x3e0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3e4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3f8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3fc]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x38], eax
lea eax, [esp + 0xb4]
mov dword [esp], eax
call dword [esp + 0x40c]
mov ecx, ebx
mov edi, eax
mov ebp, edx
shrd edi, edx, cl
shr ebp, cl
test bl, 0x20
mov ebx, dword [esp + 0x3c]
cmovne edi, ebp
and eax, esi
mov ecx, edi
mov edi, dword [esp + 0x38]
lea esi, [ebx + eax*4]
and ecx, 0xffffff
or ecx, 0x1000000
mov ebp, ecx
mov eax, esi
mov esi, ebp
mov ebp, eax
jmp 0x401922
add ebp, 8
add esi, 0x1000000
cmp esi, dword [ebp]
ja 0x4019c0
cmp dword [ebp], esi
jne 0x401910
mov ebx, dword [ebp + 4]
mov eax, dword [esp + 0x30]
imul eax, ebx
add eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
lea eax, [esp + 0xb4]
mov dword [esp], eax
call edi
test al, al
je 0x401910
imul ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
cmp byte [eax + ebx], 0
je 0x4019c0
mov eax, dword [esp + 0x44]
test eax, eax
jg 0x401830
mov edx, 1
mov eax, 0xc
call fcn.004194f0
mov ebx, dword [esp + 0x88]
mov dword [eax], str.Path_not_found__problem_in_the_Graph__start_or_end_nodes_
mov dword [eax + 4], 0x3a
mov dword [eax + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], 0
mov eax, ebx
mov dword [ebx + 8], 1
mov dword [ebx + 0xc], 1
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xc
add esp, 0x180c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
lea ecx, [esp + 0xa4]
lea edx, [esp + 0xc0]
mov byte [esp + 0xa4], 1
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x3d0]
call fcn.00409f00
test ebx, ebx
je 0x402755
cmp dword [esp + 0x34], 1
je 0x402164
lea edi, [esp + 0x560]
xor eax, eax
mov ecx, 0x18
mov edx, dword [esp + 0x34]
mov dword [esp + 0x228], 0
lea esi, [esp + 0x1820]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
lea edi, [esp + 0x420]
mov dword [esp + 0x574], edx
mov dword [esp + 0xd0], edx
lea edx, [esp + 0xcc]
mov dword [esp + 0x560], 0x42213f
mov dword [esp + 0x564], 0x14
mov dword [esp + 0x570], eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x578], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x568], 1
mov ecx, 0x14
mov dword [esp + 0x56c], 0xfe10
mov dword [esp + 0x580], 0x422154
mov dword [esp + 0x1830], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x584], 0xf
mov dword [esp + 0x588], 1
mov dword [esp + 0x58c], 0xfe10
mov dword [esp + 0x22c], 0
mov dword [esp + 0x183c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x230], 0
mov dword [esp + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0xc
mov dword [esp + 0x1840], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1844], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1848], eax
lea eax, [esp + 0x420]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x228]
call fcn.00409e40
mov edx, dword [eax]
mov dword [esp], edx
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
mov edx, dword [eax + 8]
mov dword [esp + 8], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x590]
call fcn.0040e720
lea eax, [esp + 0xd8]
lea edx, [esp + 0x560]
mov dword [esp + 0x5a0], 0x422041
mov dword [esp + 0x5a8], 1
call fcn.004197a0
mov ebx, dword [esp + 0xdc]
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edi, dword [esp + 0xd8]
test ebx, ebx
lea esi, [eax + 0x20]
jle 0x401c00
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 0x401be0
mov eax, dword [esp + 0x28]
lea edx, [esp + 0xe4]
lea edi, [esp + 0x470]
mov ecx, 0x14
lea esi, [esp + 0x1820]
mov dword [esp + 0x240], 0
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x240]
mov dword [esp + 0x244], 0
mov dword [esp + 0x248], 0
mov dword [esp + 0x24c], 0
mov dword [esp + 0x250], 0
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x254], 0xc
mov dword [esp + 0xec], eax
lea eax, [esp + 0x470]
call fcn.00409e40
mov edx, dword [eax + 8]
mov ebp, dword [eax]
cmp edx, 1
mov dword [esp + 0x40], edx
jle 0x40214d
mov esi, dword [eax + 0x14]
mov ebx, dword [eax + 0xc]
imul ebx, esi
test ebx, ebx
mov eax, ebx
js 0x403703
mov dword [esp + 0x28], 0
je 0x401ccf
mov edx, 1
call fcn.004194f0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x28]
lea ebx, [eax - 1]
imul ebx, esi
add ebx, ebp
xor ebp, ebp
jmp 0x401cf0
mov dword [esp + 4], ebx
mov dword [esp], edi
add ebp, 1
mov dword [esp + 8], esi
add edi, esi
sub ebx, esi
call sub.msvcrt.dll_memcpy
cmp dword [esp + 0x40], ebp
jne 0x401cf0
mov edi, dword [esp + 0x28]
mov dword [esp + 0x34], 0
mov ebp, edi
nop
lea esi, [esi]
mov eax, dword [ebp + 8]
mov edx, dword [ebp]
mov ecx, dword [ebp + 4]
movzx ebx, byte [esp + 0x3dd]
mov byte [esp + 0xa5], 0
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x3e0]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3e4]
mov ecx, dword [esp + 0x3d8]
mov edx, dword [esp + 0x400]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x3f8]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3fc]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xf0]
mov dword [esp], eax
call dword [esp + 0x40c]
mov ecx, ebx
mov esi, eax
mov edi, edx
shrd esi, edx, cl
shr edi, cl
test bl, 0x20
mov edx, dword [esp + 0x38]
cmovne esi, edi
and eax, dword [esp + 0x3c]
mov ecx, esi
and ecx, 0xffffff
mov edi, ecx
lea esi, [edx + eax*4]
or edi, 0x1000000
mov eax, edi
mov edi, esi
mov esi, eax
jmp 0x401e01
add edi, 8
add esi, 0x1000000
cmp esi, dword [edi]
ja 0x401ff0
cmp dword [edi], esi
jne 0x401df0
mov ebx, dword [edi + 4]
mov eax, dword [esp + 0x30]
imul eax, ebx
add eax, dword [esp + 0x28]
mov dword [esp + 4], eax
lea eax, [esp + 0xf0]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
test al, al
je 0x401df0
imul ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp byte [eax + ebx], 0
je 0x401ff0
add dword [esp + 0x34], 1
add ebp, 0xc
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x40]
jne 0x401d20
lea edi, [esp + 0x5c0]
xor eax, eax
mov ecx, 0x18
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x220], 0
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x21c], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x5c0], 0x422164
mov dword [esp + 0x5c4], 9
mov dword [esp + 0x210], eax
mov dword [esp], eax
mov eax, dword [esp + 0x214]
mov dword [esp + 0x218], ecx
mov dword [esp + 8], ecx
mov dword [esp + 0x5c8], 1
mov dword [esp + 0x5cc], 0xfe10
mov dword [esp + 0x224], 0xc
mov dword [esp + 4], eax
lea eax, [esp + 0x5d0]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xc
call fcn.0040e720
mov eax, dword [esp + 0x3fc]
mov ecx, dword [esp + 0x3e4]
mov edx, dword [esp + 0x3e0]
mov dword [esp + 0x5e0], 0x422170
mov dword [esp + 0x5e4], 0x1f
mov dword [esp + 0x5e8], 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3f8]
mov dword [esp + 0x5ec], 0xfe10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3ec]
mov dword [esp], eax
lea eax, [esp + 0x5f0]
call fcn.0041a540
lea eax, [esp + 0x108]
lea edx, [esp + 0x5c0]
mov dword [esp + 0x600], 0x422041
mov dword [esp + 0x608], 1
call fcn.004197a0
mov ebx, dword [esp + 0x10c]
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edi, dword [esp + 0x108]
test ebx, ebx
lea esi, [eax + 0x20]
jle 0x401958
lea esi, [esi]
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 0x401fc0
jmp 0x401958
mov eax, dword [esp + 0x48]
test eax, eax
jle 0x402114
mov edi, dword [esp + 0x48]
mov eax, edi
add eax, 1
call fcn.0040e400
mov ebx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], edi
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov byte [ebx + edi], 0
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], 0
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x64], eax
jle 0x40207d
lea ebx, [eax + eax*2]
mov edx, dword [esp + 0x58]
add eax, 1
mov dword [esp + 0x44], eax
shl ebx, 2
mov eax, dword [esp + 0xfc]
mov dword [edx + ebx], eax
mov eax, dword [esp + 0x100]
mov dword [edx + ebx + 4], eax
mov eax, dword [esp + 0x104]
mov dword [edx + ebx + 8], eax
jmp 0x401e3e
lea esi, [eax + 1]
cmp dword [esp + 0x64], esi
jge 0x40213a
mov eax, dword [esp + 0x64]
test eax, eax
jle 0x402760
lea esi, [esi]
lea edi, [edi]
add eax, eax
cmp esi, eax
jg 0x4020a0
cdq
mov ecx, eax
mov dword [esp + 0x64], eax
mov ebx, edx
shl ecx, 2
shld ebx, eax, 2
shld edx, eax, 4
shl eax, 4
sub eax, ecx
sbb edx, ebx
mov ebx, edx
or ebx, eax
mov ebx, 1
cmove eax, ebx
call fcn.0040e4e0
mov edi, eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
lea ebx, [eax + eax*2]
shl ebx, 2
test ecx, ecx
je 0x4020fa
mov eax, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov dword [esp + 0x214], 0
mov dword [esp + 0x44], esi
mov edx, edi
mov dword [esp + 0x58], edi
jmp 0x402058
mov dword [esp + 0xfc], 0x422041
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 1
jmp 0x40203d
lea ebx, [eax + eax*2]
mov dword [esp + 0x44], esi
mov edx, dword [esp + 0x58]
shl ebx, 2
jmp 0x402058
mov ecx, dword [esp + 0x40]
test ecx, ecx
jle 0x401e54
mov dword [esp + 0x28], ebp
mov edi, ebp
jmp 0x401d11
mov eax, dword [esp + 0x187c]
mov ebx, dword [esp + 0x28]
movzx eax, byte [eax]
cmp byte [ebx], al
jne 0x401a16
mov eax, dword [esp + 0x60]
lea edi, [esp + 0x4c0]
lea esi, [esp + 0x1820]
mov edx, dword [esp + 0x3e0]
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x1820]
mov dword [esp + 0x1830], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], edx
mov dword [esp + 0x183c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1840], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1844], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1848], eax
mov eax, 0x14
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x510]
lea esi, [esp + 0x3d0]
mov eax, ecx
mov ecx, dword [esp + 0x1864]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x186c]
mov dword [esp + 0x44], ecx
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x3e4]
mov edi, dword [esp + 0x3fc]
mov esi, ecx
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x3f8]
mov dword [esp + 0x90], edi
lea edi, [esp + 0x310]
mov dword [esp + 0x58], ecx
mov ecx, 0x10
rep stosd dword es:[edi], eax
mov dword [esp + 0x310], str._n_n_Nodes_visited__true__or_no__false_:
mov dword [esp + 0x314], 0x27
mov dword [esp + 0x318], 1
mov dword [esp + 0x31c], 0xfe10
mov eax, dword [esp + 0x3f4]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x90]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edi
mov ecx, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3ec]
mov dword [esp], eax
lea eax, [esp + 0x320]
call fcn.0041a540
lea edx, [esp + 0x310]
lea eax, [esp + 0x12c]
mov dword [esp + 0x330], 0x422041
mov dword [esp + 0x338], 1
call fcn.00419690
mov esi, dword [esp + 0x130]
test esi, esi
jle 0x40231a
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [esp + 0x12c]
lea edi, [eax + 0x20]
mov dword [esp + 8], esi
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
mov dword [esp + 0x30], edx
call sub.msvcrt.dll_fwrite
mov edx, dword [esp + 0x30]
sub esi, eax
add edx, eax
test esi, esi
jg 0x4022f2
mov edx, dword [esp + 0x44]
mov eax, 0
test edx, edx
cmovns eax, edx
imul eax, ebx
test eax, eax
js 0x403703
mov dword [esp + 0x7c], 0
je 0x40234b
mov edx, 1
call fcn.004194f0
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x403690
mov eax, dword [esp + 0x6c]
test eax, eax
jle 0x40239e
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x7c]
add eax, edi
mov dword [esp + 0x30], eax
cmp byte [edi], 0
jne 0x402391
mov dword [esp + 4], edx
mov dword [esp + 0x34], edx
mov dword [esp], esi
mov eax, dword [esp + 0x2c]
add esi, ebx
call eax
mov edx, dword [esp + 0x34]
add edi, 1
add edx, dword [esp + 0x60]
cmp edi, dword [esp + 0x30]
jne 0x402375
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x40]
mov esi, ebp
mov dword [esp + 0x124], 1
mov dword [esp + 4], 1
mov dword [esp + 0x120], eax
mov dword [esp], eax
lea eax, [esp + 0x138]
mov dword [esp + 0x128], ebx
mov dword [esp + 8], ebx
call fcn.00409dd0
mov eax, 0x18
call fcn.0040e4e0
mov edx, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x84], 0xc
mov dword [esp + 0x70], 2
mov dword [esp + 0x74], 2
mov dword [edx], eax
mov eax, dword [esp + 0x13c]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x140]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x70]
sub eax, 1
cmp esi, 1
mov dword [esp + 0x8c], eax
je 0x402826
mov edi, dword [esp + 0x44]
test edi, edi
jle 0x4026b8
mov eax, dword [esp + 0x500]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c8]
mov dword [esp + 0x48], eax
movzx eax, byte [esp + 0x4cd]
mov byte [esp + 0x54], al
mov eax, dword [esp + 0x4ec]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x4f0]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x4fc]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4d4]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
nop
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x14c], eax
lea eax, [esp + 0x144]
mov dword [esp + 0x38], edx
mov dword [esp + 0x144], edx
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call eax
movzx ecx, byte [esp + 0x54]
mov edi, eax
mov ebp, edx
shrd edi, edx, cl
shr ebp, cl
test cl, 0x20
mov edx, dword [esp + 0x50]
cmovne edi, ebp
and eax, dword [esp + 0x48]
mov ecx, edi
and ecx, 0xffffff
or ecx, 0x1000000
lea edi, [edx + eax*4]
mov ebp, edi
mov edi, ecx
jmp 0x402532
add ebp, 8
add edi, 0x1000000
cmp edi, dword [ebp]
ja 0x4026a0
cmp dword [ebp], edi
jne 0x402520
mov ebx, dword [ebp + 4]
mov eax, dword [esp + 0x60]
imul eax, ebx
add eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
lea eax, [esp + 0x144]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call eax
test al, al
je 0x402520
mov eax, dword [esp + 0x98]
imul eax, ebx
add eax, dword [esp + 0x9c]
mov ebp, dword [eax + 8]
mov ebx, dword [eax]
test ebp, ebp
jle 0x4026a0
add ebx, 4
xor edi, edi
jmp 0x40259e
add edi, 1
add ebx, 0xc
cmp ebp, edi
je 0x4026a0
cmp dword [ebx], esi
jne 0x402590
mov eax, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebx - 4]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x402590
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x550]
movzx ebx, byte [esp + 0x51d]
mov byte [esp + 0xa7], 0
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x150]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x518]
mov dword [esp], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x540]
mov dword [esp + 0x64], eax
call dword [esp + 0x54c]
mov ecx, ebx
mov edi, eax
mov ebp, edx
shrd edi, edx, cl
shr ebp, cl
test bl, 0x20
mov ebx, dword [esp + 0x64]
cmovne edi, ebp
and eax, dword [esp + 0x6c]
mov ecx, edi
and ecx, 0xffffff
or ecx, 0x1000000
mov ebp, ecx
lea edi, [ebx + eax*4]
jmp 0x40265d
add edi, 8
add ebp, 0x1000000
cmp ebp, dword [edi]
ja 0x4026a0
cmp dword [edi], ebp
jne 0x402650
mov ebx, dword [edi + 4]
mov eax, dword [esp + 0x78]
imul eax, ebx
add eax, dword [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x150]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call eax
test al, al
je 0x402650
imul ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
cmp byte [eax + ebx], 1
je 0x402850
add dword [esp + 0x2c], 1
add dword [esp + 0x34], 0xc
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x44]
jl 0x4024b0
test esi, esi
jle 0x403158
lea eax, [esi + 1]
call fcn.0040e400
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov byte [ebx + esi], 0
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x160], esi
mov dword [esp + 0x164], 0
mov ebx, dword [esp + 0x74]
cmp dword [esp + 0x8c], ebx
jge 0x4030e0
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x15c]
add dword [esp + 0x70], 1
mov dword [ecx + ebx], eax
mov eax, dword [esp + 0x160]
mov dword [ecx + ebx + 4], eax
mov eax, dword [esp + 0x164]
mov dword [ecx + ebx + 8], eax
add ebx, 0xc
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x28]
test ebx, ebx
jne 0x402427
call fcn.0041da79
lea esi, [esi]
cmp esi, 2
mov eax, 2
jg 0x4020a0
mov eax, 0x18
mov dword [esp + 0x64], 2
jmp 0x4020cd
lea eax, [esp + 0x800]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
xor esi, esi
mov dword [esp + 0x68], eax
mov ebp, eax
mov eax, dword [ebx + 8]
mov ecx, dword [ebx]
add esi, 1
mov edx, dword [ebx + 4]
add ebx, edi
mov dword [esp + 0x7a8], eax
mov dword [esp + 8], eax
lea eax, [esp + 0x7a0]
mov dword [esp + 0x7a0], ecx
mov dword [esp + 0x7a4], edx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00409dd0
mov eax, dword [esp + 0x7a0]
lea ecx, [esp + 0xa6]
lea edx, [esp + 0x114]
mov byte [esp + 0xa6], 0
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x7a4]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x7a8]
mov dword [esp + 0x11c], eax
mov eax, ebp
call fcn.00409f00
cmp esi, dword [esp + 0x6c]
jne 0x402797
jmp 0x4017a3
mov eax, dword [esp + 0x28]
cmp byte [eax], 0x41
je 0x4034ca
mov eax, dword [esp + 0x44]
test eax, eax
jg 0x40244a
jmp 0x4026c0
lea eax, [esp + 0x350]
xor ebx, ebx
mov dword [esp + 0x48], eax
mov edi, eax
xor eax, eax
mov ecx, 0x10
rep stosd dword es:[edi], eax
lea eax, [esp + 0x350]
mov dword [esp + 0x350], str.Executing_step
mov dword [esp + 0x354], 0xf
mov dword [esp + 0x358], 1
mov dword [esp + 0x35c], 0xfe07
mov dword [esp + 0x48], eax
mov edx, eax
lea eax, [esp + 0x1a4]
mov dword [esp + 0x360], ebx
mov dword [esp + 0x370], 0x422041
mov dword [esp + 0x378], 1
call fcn.00419690
mov ebp, dword [esp + 0x1a4]
test ebp, ebp
je 0x4034c0
mov esi, dword [esp + 0x1a8]
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov byte [esp + 0x800], 0xa
test esi, esi
lea edi, [eax + 0x20]
jle 0x402919
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x4028f4
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ebp, dword [esp + 0x68]
lea edi, [eax + 0x20]
mov esi, 1
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x402925
mov eax, dword [0x426020]
mov edx, dword [0x426024]
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0041cde0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebx + 1]
sub esp, 4
cmp ebx, 0x270f
mov dword [esp + 0x28], eax
je 0x40317e
mov edx, 0x51eb851f
mov ebx, eax
imul edx
mov ecx, ebx
sar ecx, 0x1f
mov eax, edx
sar eax, 6
sub eax, ecx
imul eax, eax, 0xc8
sub ebx, eax
mov dword [esp + 0x30], ebx
je 0x402b7d
sar edx, 4
mov ebx, dword [esp + 0x28]
sub edx, ecx
imul eax, edx, 0x32
mov edx, ebx
sub edx, eax
mov eax, ebx
mov dword [esp + 0x2c], edx
mov edx, 0x66666667
imul edx
sar edx, 4
sub edx, ecx
lea eax, [edx + edx*4]
mov edx, ebx
shl eax, 3
sub edx, eax
mov eax, ebx
mov dword [esp + 0x34], edx
mov edx, 0x88888889
imul edx
mov eax, ebx
add eax, edx
sar eax, 3
sub eax, ecx
mov edx, eax
shl eax, 4
sub eax, edx
mov edx, ebx
sub ebx, eax
mov eax, ebx
mov dword [esp + 0x40], ebx
xor ebx, ebx
lea eax, [edx + eax*2]
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x2c], ebx
je 0x402cbd
cmp dword [esp + 0x34], ebx
je 0x402df3
cmp dword [esp + 0x40], ebx
je 0x402f30
mov eax, dword [esp + 0x28]
and eax, 7
cmp eax, ebx
je 0x402b8a
lea edi, [esp + 0x7a0]
xor eax, eax
mov ecx, 0x18
lea edx, [esp + 0x7a0]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x7a0], 0x42206c
mov dword [esp + 0x7a4], 0x1c
mov dword [esp + 0x7a8], 1
mov dword [esp + 0x7ac], 0xfe07
mov dword [esp + 0x7c0], 0x422089
mov dword [esp + 0x7b0], eax
lea eax, [esp + 0x198]
mov dword [esp + 0x7c4], 0xc
mov dword [esp + 0x7c8], 1
mov dword [esp + 0x7cc], 0xfe07
mov dword [esp + 0x7d0], ebx
mov dword [esp + 0x7e0], 0x422041
mov dword [esp + 0x7e8], 1
call fcn.004197a0
mov ebp, dword [esp + 0x198]
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov esi, dword [esp + 0x19c]
mov byte [esp + 0x800], 0xa
test ebp, ebp
lea edi, [eax + 0x20]
je 0x403070
test esi, esi
jle 0x402b35
nop
lea esi, [esi]
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x402b10
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov esi, dword [esp + 0x68]
lea edi, [eax + 0x20]
mov ebp, 1
jmp 0x402b50
mov dword [esp + 8], ebp
mov dword [esp], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub ebp, eax
add esi, eax
test ebp, ebp
jg 0x402b50
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x48]
jmp 0x40285f
lea edi, [esp + 0x740]
xor eax, eax
mov ecx, 0x18
lea edx, [esp + 0x740]
rep stosd dword es:[edi], eax
lea eax, [ebx + ebx*2]
add eax, dword [esp + 0x28]
mov dword [esp + 0x740], 0x42206c
mov dword [esp + 0x744], 0x1c
mov dword [esp + 0x748], 1
mov dword [esp + 0x74c], 0xfe07
mov dword [esp + 0x760], 0x422089
mov dword [esp + 0x764], 0xc
mov dword [esp + 0x768], 1
mov dword [esp + 0x750], eax
lea eax, [esp + 0x18c]
mov dword [esp + 0x76c], 0xfe07
mov dword [esp + 0x770], ebx
mov dword [esp + 0x780], 0x422041
mov dword [esp + 0x788], 1
call fcn.004197a0
mov ebp, dword [esp + 0x18c]
test ebp, ebp
je 0x403530
mov esi, dword [esp + 0x190]
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov byte [esp + 0x800], 0xa
test esi, esi
lea edi, [eax + 0x20]
jle 0x402c7f
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x402c5a
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ebp, dword [esp + 0x68]
lea edi, [eax + 0x20]
mov esi, 1
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x402c8b
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
jmp 0x402b7d
lea edi, [esp + 0x620]
xor eax, eax
mov ecx, 0x18
lea edx, [esp + 0x620]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x620], 0x42206c
mov dword [esp + 0x624], 0x1c
mov dword [esp + 0x628], 1
mov dword [esp + 0x62c], 0xfe07
add eax, ecx
mov dword [esp + 0x640], 0x422089
mov dword [esp + 0x644], 0xc
mov dword [esp + 0x630], eax
lea eax, [esp + 0x168]
mov dword [esp + 0x648], 1
mov dword [esp + 0x64c], 0xfe07
mov dword [esp + 0x650], ecx
mov dword [esp + 0x660], 0x422041
mov dword [esp + 0x668], 1
call fcn.004197a0
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x16c]
mov byte [esp + 0x800], 0xa
mov eax, dword [sym.imp.msvcrt.dll__iob]
test ebp, ebp
je 0x403620
test esi, esi
lea edi, [eax + 0x20]
jle 0x402db5
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x402d90
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ebp, dword [esp + 0x68]
lea edi, [eax + 0x20]
mov esi, 1
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x402dc1
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
jmp 0x402b7d
lea edi, [esp + 0x680]
xor eax, eax
mov ecx, 0x18
lea edx, [esp + 0x680]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x680], 0x42206c
mov dword [esp + 0x684], 0x1c
mov dword [esp + 0x688], 1
mov dword [esp + 0x68c], 0xfe07
sub eax, ecx
mov dword [esp + 0x6a0], 0x422089
mov dword [esp + 0x6a4], 0xc
mov dword [esp + 0x690], eax
lea eax, [esp + 0x174]
mov dword [esp + 0x6a8], 1
mov dword [esp + 0x6ac], 0xfe07
mov dword [esp + 0x6b0], ecx
mov dword [esp + 0x6c0], 0x422041
mov dword [esp + 0x6c8], 1
call fcn.004197a0
mov ebp, dword [esp + 0x174]
mov esi, dword [esp + 0x178]
mov byte [esp + 0x800], 0xa
mov eax, dword [sym.imp.msvcrt.dll__iob]
test ebp, ebp
je 0x4035b0
test esi, esi
lea edi, [eax + 0x20]
jle 0x402eeb
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x402ec6
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ebp, dword [esp + 0x68]
lea edi, [eax + 0x20]
mov esi, 1
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x402ef7
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
jmp 0x402b7d
lea edi, [esp + 0x6e0]
xor eax, eax
mov ecx, 0x18
lea edx, [esp + 0x6e0]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x6e0], 0x42206c
mov dword [esp + 0x6e4], 0x1c
mov dword [esp + 0x6e8], 1
mov dword [esp + 0x6ec], 0xfe07
mov dword [esp + 0x700], 0x422089
mov dword [esp + 0x6f0], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x704], 0xc
mov dword [esp + 0x708], 1
mov dword [esp + 0x70c], 0xfe07
mov dword [esp + 0x720], 0x422041
mov dword [esp + 0x710], eax
lea eax, [esp + 0x180]
mov dword [esp + 0x728], 1
call fcn.004197a0
mov ebp, dword [esp + 0x180]
mov esi, dword [esp + 0x184]
test ebp, ebp
je 0x40350b
mov eax, dword [sym.imp.msvcrt.dll__iob]
test esi, esi
mov byte [esp + 0x800], 0xa
lea edi, [eax + 0x20]
jle 0x403026
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x403001
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ebp, dword [esp + 0x68]
lea edi, [eax + 0x20]
mov esi, 1
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x403032
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
jmp 0x402b7d
mov ebp, 0x422024
mov esi, 0xc
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x40307a
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ebp, dword [esp + 0x68]
mov esi, 1
lea edi, [eax + 0x20]
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub esi, eax
add ebp, eax
test esi, esi
jg 0x4030ab
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
jmp 0x402b7d
cmp dword [esp + 0x70], ebx
mov eax, ebx
jle 0x40270c
test ebx, ebx
jle 0x4036e1
add eax, eax
cmp dword [esp + 0x70], eax
jg 0x4030f4
cdq
mov ecx, eax
mov dword [esp + 0x74], eax
mov ebx, edx
shl ecx, 2
shld ebx, eax, 2
shld edx, eax, 4
shl eax, 4
sub eax, ecx
sbb edx, ebx
mov ebx, edx
mov edx, 1
or ebx, eax
cmove eax, edx
call fcn.0040e4e0
mov ebx, eax
mov eax, dword [esp + 0x80]
test eax, eax
je 0x40314c
mov ecx, dword [esp + 0x84]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 8], ecx
call sub.msvcrt.dll_memcpy
mov dword [esp + 0x80], ebx
jmp 0x40270c
mov dword [esp + 0x15c], 0x422041
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 1
jmp 0x4026fb
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov byte [esp + 0x800], 0xa
mov esi, str.Loop_completed.
mov ebx, 0xf
lea edi, [eax + 0x20]
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 0x403198
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov esi, dword [esp + 0x68]
mov ebx, 1
lea edi, [eax + 0x20]
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 0x4031c9
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0x4220a6
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
call edi
lea ebx, [eax + eax + 2]
sub esp, 0x18
mov ebp, eax
mov eax, ebx
call fcn.0040e400
test eax, eax
mov esi, eax
je 0x403269
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0x4220a6
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
call edi
xor edx, edx
sub esp, 0x18
mov word [esi + ebx - 2], dx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x29
mov dword [esp + 8], str.C:Program_FilesWindows_Defenderrcc.xml
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
call edi
lea ebx, [eax + eax + 2]
sub esp, 0x18
mov dword [esp + 0x28], eax
mov eax, ebx
call fcn.0040e400
test eax, eax
mov ebp, eax
je 0x4032e9
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x29
mov dword [esp + 8], str.C:Program_FilesWindows_Defenderrcc.xml
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
mov dword [esp + 0x14], edx
call edi
xor eax, eax
sub esp, 0x18
mov word [ebp + ebx - 2], ax
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [sym.imp.msvcrt.dll__wfopen]
test eax, eax
mov esi, eax
je 0x403708
mov eax, dword [0x426034]
mov byte [esp + 0x800], 0
mov edi, dword [esp + 0x800]
mov ebx, dword [0x426028]
mov ecx, dword [0x42602c]
mov edx, dword [0x426030]
mov dword [esp + 0x810], eax
mov dword [esp + 0x268], eax
mov eax, edi
mov dword [esp + 0x804], ebx
mov dword [esp + 0x814], esi
test al, al
mov dword [esp + 0x808], ecx
mov dword [esp + 0x80c], edx
mov dword [esp + 0x258], edi
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x260], ecx
mov dword [esp + 0x264], edx
mov dword [esp + 0x26c], esi
jne 0x403849
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], esi
call sub.msvcrt.dll_fseek
mov dword [esp], esi
mov ebx, eax
call sub.msvcrt.dll_ftell
test ebx, ebx
mov ebp, eax
setne al
test ebp, ebp
je 0x4033b2
test al, al
jne 0x4038ad
mov edx, ebp
shr edx, 0x1f
test dl, dl
je 0x403947
test al, al
je 0x403947
mov eax, 0x10
mov dword [esp + 0x1e0], str.ftell_failed
mov dword [esp + 0x1e4], 0xc
mov dword [esp + 0x1e8], 1
mov dword [esp + 0x1ec], 0
call fcn.0040e4e0
mov edx, dword [esp + 0x1e0]
mov dword [eax], edx
mov edx, dword [esp + 0x1e4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x1e8]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x1ec]
mov dword [eax + 0xc], edx
xor edx, edx
mov dword [esp + edx + 0x270], 0
add edx, 4
cmp edx, 0x18
jb 0x403426
mov dword [esp + 0x274], eax
mov dword [esp + 0x27c], eax
add eax, 0xc
mov byte [esp + 0x270], 1
mov dword [esp + 0x278], 3
mov dword [esp + 0x280], eax
mov dword [esp], esi
call sub.msvcrt.dll_fclose
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x270]
mov dword [edx], eax
mov eax, dword [esp + 0x274]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x278]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x27c]
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x280]
mov dword [edx + 0x10], eax
movzx eax, byte [esp + 0x800]
mov esi, dword [esp + 0x814]
mov edi, dword [esp + 0x81c]
jmp 0x403894
call fcn.0041a9d0
jmp 0x402945
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x80]
mov dword [eax], ebx
mov ebx, dword [esp + 0x8c]
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xc
mov dword [eax + 8], ebx
mov ebx, dword [esp + 0x74]
mov dword [eax + 0xc], ebx
add esp, 0x180c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.0041a9d0
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
jmp 0x402b7d
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov byte [esp + 0x800], 0xa
mov esi, 0x422024
mov edi, 0xc
lea ebp, [eax + 0x20]
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub edi, eax
add esi, eax
test edi, edi
jg 0x40354a
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov esi, dword [esp + 0x68]
mov edi, 1
lea ebp, [eax + 0x20]
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub edi, eax
add esi, eax
test edi, edi
jg 0x40357b
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
jmp 0x402b7d
lea ebp, [eax + 0x20]
mov esi, 0x422024
mov edi, 0xc
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub edi, eax
add esi, eax
test edi, edi
jg 0x4035bd
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov esi, dword [esp + 0x68]
mov edi, 1
lea ebp, [eax + 0x20]
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub edi, eax
add esi, eax
test edi, edi
jg 0x4035ee
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
jmp 0x402b7d
lea ebp, [eax + 0x20]
mov esi, 0x422024
mov edi, 0xc
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub edi, eax
add esi, eax
test edi, edi
jg 0x40362d
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov esi, dword [esp + 0x68]
mov edi, 1
lea ebp, [eax + 0x20]
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 4], 1
call sub.msvcrt.dll_fwrite
sub edi, eax
add esi, eax
test edi, edi
jg 0x40365e
add ebx, 1
cmp dword [esp + 0x30], ebx
jne 0x402a0e
jmp 0x402b7d
mov eax, dword [esp + 0x6c]
test eax, eax
jle 0x40239e
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x5c]
xor esi, esi
mov dword [esp + 4], edi
mov dword [esp], eax
add esi, 1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
call eax
mov eax, dword [esp + 0x30]
add edi, dword [esp + 0x60]
add eax, ebx
cmp esi, dword [esp + 0x6c]
jne 0x4036a6
jmp 0x40239e
lea eax, [esp + 0x800]
mov dword [esp + 0x68], eax
mov esi, eax
jmp 0x4017a7
cmp dword [esp + 0x70], 2
mov eax, 2
jg 0x4030f4
mov eax, 0x18
mov dword [esp + 0x74], 2
jmp 0x403123
call fcn.0041d8e0
lea edi, [esp + 0x390]
mov ecx, 0x10
lea edx, [esp + 0x390]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x1c0]
mov dword [esp + 0x390], str.failed_to_open_file__
mov dword [esp + 0x394], 0x15
mov dword [esp + 0x398], 1
mov dword [esp + 0x39c], 0xfe10
mov dword [esp + 0x3a0], str.C:Program_FilesWindows_Defenderrcc.xml
mov dword [esp + 0x3a4], 0x29
mov dword [esp + 0x3a8], 1
mov dword [esp + 0x3b0], 0x4220ec
mov dword [esp + 0x3b4], 1
mov dword [esp + 0x3b8], 1
call fcn.00419690
mov edi, dword [esp + 0x1c4]
mov ebx, dword [esp + 0x1c0]
mov esi, dword [esp + 0x1c8]
call dword [sym.imp.msvcrt.dll__errno]
test edi, edi
mov ebp, dword [eax]
je 0x403924
mov eax, 0x10
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x1d4], edi
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1dc], ebp
call fcn.0040e4e0
mov edx, dword [esp + 0x1d0]
mov dword [eax], edx
mov edx, dword [esp + 0x1d4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x1d8]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x1dc]
mov dword [eax + 0xc], edx
xor edx, edx
mov dword [esp + edx + 0x258], 0
add edx, 4
cmp edx, 0x18
jb 0x40380b
mov dword [esp + 0x25c], eax
mov dword [esp + 0x264], eax
add eax, 0xc
mov byte [esp + 0x258], 1
mov dword [esp + 0x260], 3
mov dword [esp + 0x268], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x258]
mov dword [ecx], eax
mov eax, dword [esp + 0x25c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x260]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x264]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x268]
mov dword [ecx + 0x10], eax
movzx eax, byte [esp + 0x800]
mov esi, dword [esp + 0x814]
mov edi, dword [esp + 0x81c]
test al, al
je 0x403b77
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
jmp 0x4026b8
mov eax, 0x10
mov dword [esp + 0x1f0], str.fseek_failed
mov dword [esp + 0x1f4], 0xc
mov dword [esp + 0x1f8], 1
mov dword [esp + 0x1fc], 0
call fcn.0040e4e0
mov edx, dword [esp + 0x1f0]
mov dword [eax], edx
mov edx, dword [esp + 0x1f4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x1f8]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x1fc]
mov dword [eax + 0xc], edx
xor edx, edx
mov dword [esp + edx + 0x270], 0
add edx, 4
cmp edx, 0x18
jb 0x40390c
jmp 0x403439
mov dword [esp], ebp
call sub.msvcrt.dll_strerror
test eax, eax
mov ebx, eax
je 0x403d64
mov dword [esp], eax
xor esi, esi
call sub.msvcrt.dll_strlen
mov edi, eax
jmp 0x4037bc
mov dword [esp], esi
call sub.msvcrt.dll_rewind
mov eax, dword [0x426030]
mov byte [esp + 0x800], 0
mov edi, dword [esp + 0x800]
mov ecx, dword [0x426028]
mov edx, dword [0x42602c]
mov ebx, dword [0x426034]
mov dword [esp + 0x80c], eax
mov dword [esp + 0x27c], eax
mov eax, edi
mov dword [esp + 0x804], ecx
mov dword [esp + 0x814], ebp
test al, al
mov dword [esp + 0x808], edx
mov dword [esp + 0x810], ebx
mov dword [esp + 0x270], edi
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], edx
mov dword [esp + 0x280], ebx
mov dword [esp + 0x284], ebp
jne 0x403464
test ebp, ebp
jne 0x403b33
mov edi, dword [esp + 0x68]
mov eax, ebp
mov ecx, 0x400
mov edx, 0x1000
rep stosd dword es:[edi], eax
lea eax, [esp + 0x288]
call fcn.0041aa60
jmp 0x403a12
mov edx, dword [esp + 0x68]
mov ecx, eax
lea eax, [esp + 0x288]
call fcn.0041a3a0
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msvcrt.dll_fread
test eax, eax
jg 0x403a00
mov dword [esp], esi
call sub.msvcrt.dll_feof
test eax, eax
mov ebp, eax
jne 0x403d7f
mov dword [esp], esi
call sub.msvcrt.dll_ferror
test eax, eax
je 0x403a12
mov eax, 0x10
mov dword [esp + 0x200], str.file_read_error
mov dword [esp + 0x204], 0xf
mov dword [esp + 0x208], 1
mov dword [esp + 0x20c], 0
lea ebx, [esp + 0x2b8]
call fcn.0040e4e0
mov edx, eax
mov eax, dword [esp + 0x200]
mov ecx, 0xb
mov edi, ebx
mov dword [edx], eax
mov eax, dword [esp + 0x204]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x208]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x20c]
mov dword [edx + 0xc], eax
mov eax, ebp
rep stosd dword es:[edi], eax
mov dword [esp + 0x2bc], edx
mov dword [esp + 0x2c4], edx
add edx, 0xc
mov byte [esp + 0x2b8], 1
mov dword [esp + 0x2c0], 3
mov dword [esp + 0x2c8], edx
mov dword [esp], esi
call sub.msvcrt.dll_fclose
mov ecx, dword [esp + 0x68]
mov eax, dword [ebx]
mov dword [ecx], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 8]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
movzx eax, byte [esp + 0x800]
mov esi, dword [esp + 0x814]
mov edi, dword [esp + 0x81c]
jmp 0x403894
mov eax, 0
cmovns eax, ebp
call fcn.0040e2a0
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebp
mov ebx, eax
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msvcrt.dll_fread
test eax, eax
jne 0x403b66
test ebp, ebp
jg 0x403ed4
cmp ebp, eax
cmovle eax, ebp
mov edi, eax
mov dword [esp], esi
mov esi, ebx
call sub.msvcrt.dll_fclose
mov dword [esp], 0x422125
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
sub esp, 4
test eax, eax
je 0x40389c
mov dword [esp + 4], str.VirtualAlloc
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
test eax, eax
je 0x40389c
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x3000
mov dword [esp + 4], edi
mov dword [esp], 0
call eax
test eax, eax
mov ebx, eax
je 0x40389c
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov eax, dword [0x4287b8]
test eax, eax
jne 0x403bf0
call fcn.00411200
cmp dword [0x428a10], 1
mov eax, dword [0x428798]
sbb esi, esi
not esi
add esi, 8
test eax, eax
je 0x403c0c
call fcn.004109a0
call fcn.00414450
mov eax, dword [0x4287b4]
test eax, eax
je 0x403c2a
mov dword [esp], 0x42879c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub esp, 4
mov edx, dword [esi*4 + 0x429868]
mov eax, dword [0x41f048]
lea eax, [eax + edx*4]
mov edi, dword [eax]
test edi, edi
je 0x403d0a
mov ecx, dword [edi]
shl edx, 3
mov dword [eax], ecx
mov dword [edi], 0
add dword [0x428aa4], edx
add dword [0x426038], edx
mov eax, dword [0x4287b4]
test eax, eax
je 0x403c75
mov dword [esp], 0x42879c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
mov eax, dword [0x4287d4]
mov dword [edi], ebx
mov dword [edi + 4], 0
test eax, eax
je 0x403cab
mov ecx, edi
shr ecx, 0xc
mov eax, ecx
and eax, 0x3ffff
shr eax, 5
lea edx, [eax*4 + 0xc1f0]
mov eax, 1
shl eax, cl
lock or dword [edx + 0x428a80], eax
mov dword [0x4287b4], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x412b20
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
sub esp, 0x18
test eax, eax
je 0x403d73
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
sub esp, 8
jmp 0x40389c
mov edx, 2
mov eax, esi
call fcn.00413b70
test eax, eax
mov edi, eax
jne 0x403c5c
mov eax, dword [0x4287b4]
test eax, eax
je 0x403d39
mov dword [esp], 0x42879c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
mov dword [esp], 8
call fcn.0040fd90
test eax, eax
mov edi, eax
jne 0x403c75
mov dword [esp], 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
sub esp, 4
jmp 0x40389c
mov esi, 1
mov ebx, 0x422041
jmp 0x4037bc
mov eax, edi
call fcn.0040dae0
jmp 0x40389c
mov edx, 1
mov eax, 1
call fcn.004194f0
mov eax, dword [esp + 0x294]
mov byte [esp + 0x2e4], 0
mov ebx, dword [esp + 0x288]
mov edx, dword [esp + 0x28c]
mov edi, dword [esp + 0x290]
mov ecx, dword [esp + 0x298]
mov dword [esp + 0x2ac], eax
mov eax, dword [0x426028]
mov ebp, dword [esp + 0x29c]
mov dword [esp + 0x2a0], ebx
mov dword [esp + 0x2a4], edx
mov dword [esp + 0x2a8], edi
mov dword [esp + 0x2e8], eax
mov eax, dword [0x42602c]
mov dword [esp + 0x2b0], ecx
mov dword [esp + 0x2b4], ebp
mov dword [esp + 0x2f8], ebx
mov dword [esp + 0x2fc], edx
mov dword [esp + 0x2ec], eax
mov eax, dword [0x426030]
mov dword [esp + 0x300], edi
mov dword [esp + 0x308], ecx
mov dword [esp + 0x30c], ebp
mov dword [esp + 0x2f0], eax
mov eax, dword [0x426034]
mov dword [esp + 0x2f4], eax
mov eax, dword [esp + 0x294]
mov dword [esp + 0x304], eax
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x2b8], eax
mov eax, dword [0x426028]
mov dword [esp + 0x2bc], eax
mov eax, dword [0x42602c]
cmp byte [esp + 0x2e4], 0
mov dword [esp + 0x2cc], ebx
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x2d4], edi
mov dword [esp + 0x2c0], eax
mov eax, dword [0x426030]
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x2e0], ebp
mov dword [esp + 0x2c4], eax
mov eax, dword [0x426034]
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x294]
mov dword [esp + 0x2d8], eax
je 0x403b6d
lea ebx, [esp + 0x2b8]
jmp 0x403af0
mov eax, 0x10
mov dword [esp + 0x1b0], str.fread_failed
mov dword [esp + 0x1b4], 0xc
mov dword [esp + 0x1b8], 1
mov dword [esp + 0x1bc], 0
call fcn.0040e4e0
mov edx, dword [esp + 0x1b0]
mov dword [eax], edx
mov edx, dword [esp + 0x1b4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x1b8]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x1bc]
mov dword [eax + 0xc], edx
mov dword [esp], esi
call sub.msvcrt.dll_fclose
jmp 0x40389c