Function at 0x406fc0
Capabilities:
Delete file
Get number of processors
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x41dd05
mov eax, dword fs:[0]
push eax
sub esp, 0x568
mov eax, dword [0x428008]
xor eax, esp
mov dword [esp + 0x560], eax
push ebx
push esi
push edi
mov eax, dword [0x428008]
xor eax, esp
push eax
lea eax, [esp + 0x578]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x30], ebx
cmp dword [ebx + 0x10], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
je 0x408192
mov edi, dword [eax]
mov edx, dword [eax + 4]
cmp edi, edx
je 0x408192
sub edx, edi
mov eax, 0x4ec4ec4f
imul edx
xor ecx, ecx
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
je 0x408192
xor eax, eax
lea esp, [esp]
cmp byte [edi + eax + 0x64], 0
jne 0x407064
inc ecx
add eax, 0x68
cmp ecx, esi
jb 0x407050
jmp 0x408192
push ebx
lea eax, [esp + 0x45c]
push eax
call fcn.004088c0
mov dword [esp + 0x580], 0
xorps xmm0, xmm0
movq qword [esp + 0x42c], xmm0
mov dword [esp + 0x42c], 0
mov word [esp + 0x430], 0
mov byte [esp + 0x580], 1
lea eax, [esp + 0x458]
push eax
lea ecx, [esp + 0x430]
call fcn.00404670
xorps xmm0, xmm0
lea eax, [esp + 0x42c]
movq qword [esp + 0x470], xmm0
mov dword [esp + 0x470], eax
mov eax, dword [esp + 0x42c]
mov byte [esp + 0x474], 0
test eax, eax
jne 0x4070eb
xor al, al
jmp 0x40710d
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x407103
cmp eax, 0x80
je 0x407103
xor al, al
jmp 0x40710d
mov byte [esp + 0x430], 1
mov al, 1
mov byte [esp + 0x16], al
mov byte [esp + 0x474], al
mov byte [esp + 0x580], 2
xorps xmm0, xmm0
movq qword [esp + 0x434], xmm0
mov dword [esp + 0x43c], 0
mov dword [esp + 0x434], 0
mov dword [esp + 0x438], 0
mov dword [esp + 0x43c], 0
mov byte [esp + 0x580], 3
lea eax, [esp + 0x17]
push eax
lea eax, [esp + 0x438]
mov byte [esp + 0x1b], 0
push eax
push ebx
call fcn.00408350
test al, al
jne 0x407195
cmp byte [esp + 0x17], al
je 0x407195
cmp dword [ebx + 0x14], 8
jb 0x40718c
mov eax, dword [ebx]
jmp 0x40718e
mov eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [esp + 0x24]
xor al, al
mov byte [esp + 0x17], al
xor ebx, ebx
mov eax, 0x4ec4ec4f
mov dword [esp + 0x28], ebx
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, esi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x408005
imul edi, ebx, 0x68
add edi, esi
cmp byte [edi + 0x64], 0
je 0x4077df
mov esi, dword [esp + 0x438]
mov eax, 0x4ec4ec4f
mov ecx, esi
xor ebx, ebx
sub ecx, dword [esp + 0x434]
imul ecx
mov dword [esp + 0x18], ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
je 0x407249
mov esi, dword [esp + 0x434]
cmp dword [edi + 0x14], 8
jb 0x407210
mov ecx, dword [edi]
jmp 0x407212
mov ecx, edi
cmp dword [esi + 0x14], 8
jb 0x40721c
mov eax, dword [esi]
jmp 0x40721e
mov eax, esi
push ecx
push eax
call fcn.00410294
add esp, 8
test eax, eax
je 0x407240
mov eax, dword [esp + 0x18]
add esi, 0x68
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jb 0x407206
jmp 0x407242
mov ebx, esi
mov esi, dword [esp + 0x438]
test ebx, ebx
jne 0x4074d4
xor eax, eax
mov dword [esp + 0x48c], ebx
mov dword [esp + 0x490], ebx
mov dword [esp + 0x490], 7
mov dword [esp + 0x48c], ebx
mov word [esp + 0x47c], ax
mov byte [esp + 0x580], 4
mov dword [esp + 0x4a4], eax
mov dword [esp + 0x4a8], eax
mov dword [esp + 0x4a8], 7
mov dword [esp + 0x4a4], eax
mov word [esp + 0x494], ax
mov byte [esp + 0x580], 5
mov dword [esp + 0x4bc], eax
mov dword [esp + 0x4c0], eax
mov dword [esp + 0x4c0], 7
mov dword [esp + 0x4bc], eax
mov word [esp + 0x4ac], ax
mov byte [esp + 0x580], 6
xorps xmm0, xmm0
movlpd qword [esp + 0x4c4], xmm0
movlpd qword [esp + 0x4cc], xmm0
movlpd qword [esp + 0x4d4], xmm0
mov dword [esp + 0x4dc], eax
mov byte [esp + 0x4e0], al
mov byte [esp + 0x580], 7
lea eax, [esp + 0x47c]
cmp eax, esi
jae 0x40739b
mov ecx, eax
mov eax, dword [esp + 0x434]
cmp eax, ecx
ja 0x40739b
sub ecx, eax
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp esi, dword [esp + 0x43c]
jne 0x40735f
push ecx
lea ecx, [esp + 0x438]
call fcn.004093b0
mov esi, dword [esp + 0x438]
imul eax, ebx, 0x68
mov ebx, dword [esp + 0x434]
mov dword [esp + 0x20], esi
mov dword [esp + 0x34], esi
add eax, ebx
mov byte [esp + 0x580], 8
test esi, esi
je 0x407387
push eax
mov ecx, esi
call fcn.00406dd0
mov byte [esp + 0x580], 7
add esi, 0x68
mov dword [esp + 0x438], esi
jmp 0x4073f4
cmp esi, dword [esp + 0x43c]
jne 0x4073b8
push ecx
lea ecx, [esp + 0x438]
call fcn.004093b0
mov esi, dword [esp + 0x438]
mov dword [esp + 0x20], esi
mov dword [esp + 0x34], esi
mov byte [esp + 0x580], 9
test esi, esi
je 0x4073db
lea eax, [esp + 0x47c]
mov ecx, esi
push eax
call fcn.00406dd0
mov byte [esp + 0x580], 7
add esi, 0x68
mov dword [esp + 0x438], esi
mov ebx, dword [esp + 0x434]
mov ecx, esi
mov eax, 0x4ec4ec4f
sub ecx, ebx
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x68
add eax, 0xffffff98
add ebx, eax
mov byte [esp + 0x580], 0xb
cmp dword [esp + 0x4c0], 8
jb 0x407432
push dword [esp + 0x4ac]
call fcn.0040f7d6
add esp, 4
xor eax, eax
mov dword [esp + 0x4c0], 7
mov dword [esp + 0x4bc], 0
mov word [esp + 0x4ac], ax
mov byte [esp + 0x580], 0xa
cmp dword [esp + 0x4a8], 8
jb 0x407473
push dword [esp + 0x494]
call fcn.0040f7d6
add esp, 4
xor eax, eax
mov dword [esp + 0x4a8], 7
mov dword [esp + 0x4a4], 0
mov word [esp + 0x494], ax
mov byte [esp + 0x580], 3
cmp dword [esp + 0x490], 8
jb 0x4074b4
push dword [esp + 0x47c]
call fcn.0040f7d6
add esp, 4
xor eax, eax
mov dword [esp + 0x490], 7
mov dword [esp + 0x48c], 0
mov word [esp + 0x47c], ax
push ebx
lea ecx, [esp + 0x4e8]
call fcn.00406dd0
mov byte [esp + 0x580], 0xd
cmp ebx, edi
je 0x4074f9
push 0xffffffffffffffff
push 0
push edi
mov ecx, ebx
call fcn.00402230
lea eax, [edi + 0x18]
lea esi, [ebx + 0x18]
cmp esi, eax
je 0x40750f
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00402230
lea ecx, [ebx + 0x30]
lea eax, [edi + 0x30]
mov dword [esp + 0x38], ecx
cmp ecx, eax
je 0x407527
push 0xffffffffffffffff
push 0
push eax
call fcn.00402230
mov eax, dword [edi + 0x48]
lea ecx, [ebx + 0x48]
mov dword [ecx], eax
mov eax, dword [edi + 0x4c]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x50]
mov dword [ebx + 0x50], eax
mov eax, dword [edi + 0x54]
mov dword [ebx + 0x54], eax
mov eax, dword [edi + 0x58]
mov dword [esp + 0x18], ecx
lea ecx, [ebx + 0x50]
mov dword [ebx + 0x58], eax
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x40], ecx
lea ecx, [ebx + 0x58]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x60]
mov dword [esp + 0x3c], ecx
lea ecx, [ebx + 0x60]
mov dword [ecx], eax
mov al, byte [edi + 0x64]
mov dword [esp + 0x34], ecx
lea ecx, [ebx + 0x64]
mov byte [ecx], al
cmp dword [esp + 0x4f8], 8
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x4e4]
cmovae ecx, dword [esp + 0x4e4]
cmp dword [ebx + 0x14], 8
mov dword [esp + 0x1c], eax
jb 0x40759d
mov ebx, dword [ebx]
mov edi, dword [esp + 0x4f4]
cmp eax, edi
mov edx, edi
cmovb edx, eax
test edx, edx
jne 0x4075c2
xor eax, eax
test eax, eax
jne 0x4075ea
mov ecx, dword [esp + 0x1c]
cmp ecx, edi
jae 0x4075e1
or eax, 0xffffffff
jmp 0x4075e8
mov ax, word [ebx]
cmp ax, word [ecx]
jne 0x4075d3
add ebx, 2
add ecx, 2
dec edx
jmp 0x4075ad
movzx eax, word [ebx]
cmp ax, word [ecx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x4075b1
xor eax, eax
cmp ecx, edi
setne al
test eax, eax
sete al
test al, al
sete al
test al, al
jne 0x40770c
cmp dword [esp + 0x510], 8
lea ecx, [esp + 0x4fc]
mov ebx, dword [esi + 0x10]
cmovae ecx, dword [esp + 0x4fc]
cmp dword [esi + 0x14], 8
jb 0x40761c
mov esi, dword [esi]
mov edi, dword [esp + 0x50c]
cmp ebx, edi
mov edx, edi
cmovb edx, ebx
test edx, edx
jne 0x407640
xor eax, eax
test eax, eax
jne 0x407668
cmp ebx, edi
jae 0x40765f
or eax, 0xffffffff
jmp 0x407666
mov ax, word [esi]
cmp ax, word [ecx]
jne 0x407651
add esi, 2
add ecx, 2
dec edx
jmp 0x40762c
movzx eax, word [esi]
cmp ax, word [ecx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x407630
xor eax, eax
cmp ebx, edi
setne al
test eax, eax
sete al
test al, al
sete al
test al, al
jne 0x40770c
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
cmp eax, dword [esp + 0x52c]
jne 0x40770c
mov eax, dword [ecx + 4]
cmp eax, dword [esp + 0x530]
jne 0x40770c
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx]
cmp eax, dword [esp + 0x534]
jne 0x40770c
mov eax, dword [ecx + 4]
cmp eax, dword [esp + 0x538]
jne 0x40770c
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
cmp eax, dword [esp + 0x53c]
jne 0x40770c
mov eax, dword [ecx + 4]
cmp eax, dword [esp + 0x540]
jne 0x40770c
cmp dword [esp + 0x528], 8
lea eax, [esp + 0x514]
push dword [esp + 0x524]
mov ecx, dword [esp + 0x3c]
cmovae eax, dword [esp + 0x518]
push eax
push dword [ecx + 0x10]
push ecx
call fcn.004044b0
test eax, eax
jne 0x40770c
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
cmp eax, dword [esp + 0x544]
je 0x407718
mov eax, dword [esp + 0x20]
mov byte [esp + 0x17], 1
mov byte [eax], 1
mov byte [esp + 0x580], 0xf
cmp dword [esp + 0x528], 8
jb 0x407739
push dword [esp + 0x514]
call fcn.0040f7d6
add esp, 4
xor eax, eax
mov dword [esp + 0x528], 7
mov dword [esp + 0x524], 0
mov word [esp + 0x514], ax
mov byte [esp + 0x580], 0xe
cmp dword [esp + 0x510], 8
jb 0x40777a
push dword [esp + 0x4fc]
call fcn.0040f7d6
add esp, 4
xor eax, eax
mov dword [esp + 0x510], 7
mov dword [esp + 0x50c], 0
mov word [esp + 0x4fc], ax
mov byte [esp + 0x580], 3
cmp dword [esp + 0x4f8], 8
jb 0x4077bb
push dword [esp + 0x4e4]
call fcn.0040f7d6
add esp, 4
mov ebx, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x4f8], 7
mov dword [esp + 0x4f4], 0
mov word [esp + 0x4e4], ax
mov eax, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x28], ebx
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4071c3
mov al, byte [esp + 0x17]
mov ebx, dword [esp + 0x438]
mov edi, dword [esp + 0x434]
test al, al
je 0x408013
cmp edi, ebx
je 0x408013
xorps xmm0, xmm0
mov dword [esp + 0x448], 0
xor eax, eax
movq qword [esp + 0x440], xmm0
mov dword [esp + 0x440], eax
xor esi, esi
mov dword [esp + 0x444], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x448], eax
mov byte [esp + 0x580], 0x14
mov ecx, ebx
sub ecx, edi
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
mov dword [esp + 0x1c], edi
je 0x4078ab
cmp edi, 0x418937
jbe 0x407893
push str.vector_T__too_long
call fcn.0040efba
push edi
lea ecx, [esp + 0x444]
call fcn.00409450
mov esi, dword [esp + 0x444]
mov dword [esp + 0x18], esi
test edi, edi
je 0x407aa3
mov esi, dword [esp + 0x434]
add esi, 0x44
lea ecx, [ecx]
mov eax, dword [esi + 0x1c]
cmp eax, 1
je 0x4078d6
cmp eax, 2
je 0x4078d6
cmp eax, 3
jne 0x407a8a
lea ecx, [esp + 0x44]
call fcn.004061c0
push eax
lea ecx, [esp + 0x444]
call fcn.00408ff0
mov eax, dword [esp + 0x444]
mov ecx, eax
mov ebx, dword [esp + 0x440]
sub ecx, ebx
mov dword [esp + 0x18], eax
add ebx, 0xfffffc18
mov eax, 0x10624dd3
imul ecx
push 0x280
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x3e8
add ebx, eax
push 0
mov dword [esp + 0x30], ebx
lea edi, [ebx + 4]
mov dword [ebx], 0x23ab45db
push edi
call fcn.00410bb0
add esp, 0xc
add ebx, 0x284
push 0x100
push 0
push ebx
call fcn.00410bb0
mov eax, dword [esp + 0x34]
add esp, 0xc
add eax, 0x384
mov dword [esp + 0x24], eax
push 0x48
push 0
push eax
call fcn.00410bb0
add esp, 0xc
cmp dword [esi - 0x34], 0x13f
ja 0x407998
cmp dword [esi - 0x30], 8
jb 0x407982
mov ecx, dword [esi - 0x44]
jmp 0x407985
lea ecx, [esi - 0x44]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edi], ax
lea edi, [edi + 2]
test ax, ax
jne 0x407985
jmp 0x4079b5
cmp dword [esi - 0x30], 8
jb 0x4079a3
mov eax, dword [esi - 0x44]
jmp 0x4079a6
lea eax, [esi - 0x44]
push 0x13e
push eax
push edi
call fcn.00410254
add esp, 0xc
cmp dword [esi - 0x1c], 0x7f
ja 0x4079e3
cmp dword [esi - 0x18], 8
jb 0x4079c6
mov ecx, dword [esi - 0x2c]
jmp 0x4079d0
lea ecx, [esi - 0x2c]
lea esp, [esp]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ebx], ax
lea ebx, [ebx + 2]
test ax, ax
jne 0x4079d0
jmp 0x4079fd
cmp dword [esi - 0x18], 8
jb 0x4079ee
mov eax, dword [esi - 0x2c]
jmp 0x4079f1
lea eax, [esi - 0x2c]
push 0x7e
push eax
push ebx
call fcn.00410254
add esp, 0xc
cmp dword [esi - 4], 0x23
ja 0x407a27
cmp dword [esi], 8
jb 0x407a0d
mov ecx, dword [esi - 0x14]
jmp 0x407a10
lea ecx, [esi - 0x14]
mov edx, dword [esp + 0x24]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x407a14
jmp 0x407a43
cmp dword [esi], 8
jb 0x407a31
mov eax, dword [esi - 0x14]
jmp 0x407a34
lea eax, [esi - 0x14]
push 0x23
push eax
push dword [esp + 0x2c]
call fcn.00410254
add esp, 0xc
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x1c]
mov dword [ecx + 0x3cc], eax
mov eax, dword [esi + 8]
mov dword [ecx + 0x3d0], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x3d4], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x3d8], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x3dc], eax
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x3e0], eax
mov eax, dword [esi + 0x1c]
mov dword [ecx + 0x3e4], eax
add esi, 0x68
dec edi
mov dword [esp + 0x1c], edi
jne 0x4078c0
mov ebx, dword [esp + 0x438]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x440]
cmp edi, esi
jne 0x407b13
mov byte [esp + 0x580], 3
test edi, edi
je 0x407ae4
push edi
call fcn.0040f7d6
add esp, 4
mov dword [esp + 0x440], 0
mov dword [esp + 0x444], 0
mov dword [esp + 0x448], 0
mov byte [esp + 0x580], 2
mov edi, dword [esp + 0x434]
test edi, edi
je 0x4080ef
mov esi, edi
lea ecx, [ecx]
mov ecx, esi
call fcn.00406d10
add esi, 0x68
cmp esi, ebx
jne 0x407b00
jmp 0x4080c5
xorps xmm0, xmm0
mov dword [esp + 0x454], 0
movq qword [esp + 0x44c], xmm0
mov dword [esp + 0x44c], 0
mov dword [esp + 0x450], 0
mov dword [esp + 0x454], 0
mov byte [esp + 0x580], 0x15
lea ecx, [esp + 0x550]
call fcn.0040c410
sub esi, edi
lea ecx, [esp + 0x44c]
mov eax, 0x10624dd3
imul esi
push ecx
sar edx, 6
lea ecx, [esp + 0x554]
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x3e8
push eax
push edi
call fcn.0040c4b0
test al, al
jne 0x407c22
mov byte [esp + 0x580], 0x14
mov eax, dword [esp + 0x44c]
test eax, eax
je 0x407bd3
push eax
call fcn.0040f7d6
add esp, 4
mov dword [esp + 0x454], 0
mov dword [esp + 0x450], 0
mov dword [esp + 0x44c], 0
mov byte [esp + 0x580], 3
test edi, edi
je 0x407c09
push edi
call fcn.0040f7d6
add esp, 4
mov dword [esp + 0x440], 0
mov dword [esp + 0x444], 0
mov dword [esp + 0x448], 0
mov byte [esp + 0x580], 2
lea ecx, [esp + 0x434]
call fcn.00408e20
jmp 0x4080ef
mov esi, dword [esp + 0x44c]
mov ebx, dword [esp + 0x450]
cmp esi, ebx
jne 0x407c46
mov byte [esp + 0x580], 0x14
test esi, esi
je 0x407bd3
push esi
jmp 0x407baa
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x14], 8
jb 0x407c54
mov ecx, dword [eax]
jmp 0x407c56
mov ecx, eax
push ecx
push 0x80
push 4
push ecx
push 0
mov edx, 0x40000000
call fcn.00404880
mov edi, eax
add esp, 0x14
cmp edi, 0xffffffff
je 0x407c7d
test edi, edi
jne 0x407d26
push 2
push ecx
mov ecx, dword [esp + 0x38]
push 0x424608
call fcn.00403030
cmp eax, 0xffffffff
je 0x407d26
mov edi, dword [esp + 0x30]
mov ecx, edi
push eax
push 0
lea eax, [esp + 0x558]
push eax
call fcn.00402ee0
mov byte [esp + 0x580], 0x16
lea ecx, [esp + 0x550]
call fcn.004050c0
cmp dword [edi + 0x14], 8
jb 0x407cc9
mov edi, dword [edi]
push ecx
push 0x80
push 4
push ecx
push 0
mov edx, 0x40000000
mov ecx, edi
call fcn.00404880
add esp, 0x14
mov edi, eax
mov byte [esp + 0x580], 0x15
cmp dword [esp + 0x564], 8
jb 0x407d06
push dword [esp + 0x550]
call fcn.0040f7d6
add esp, 4
xor eax, eax
mov dword [esp + 0x564], 7
mov dword [esp + 0x560], 0
mov word [esp + 0x550], ax
cmp edi, 0xffffffff
je 0x407fb2
test edi, edi
je 0x407fb2
push 0
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [esp + 0x47c]
mov dword [esp + 0x47c], 0
push eax
sub ebx, esi
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
cmp dword [esp + 0x478], ebx
jne 0x407f1b
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x434]
push eax
call fcn.00408f70
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
sub ecx, ebx
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x407dea
xor edi, edi
xor esi, esi
mov eax, dword [esp + 0x2c]
lea edi, [edi + 0x68]
mov byte [edi + ebx - 4], 0
inc esi
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
sub ecx, ebx
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x407db4
mov esi, dword [esp + 0x44c]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0x580], 0x14
test esi, esi
je 0x407e20
push esi
call fcn.0040f7d6
add esp, 4
mov dword [esp + 0x44c], 0
mov dword [esp + 0x450], 0
mov dword [esp + 0x454], 0
mov byte [esp + 0x580], 3
mov eax, dword [esp + 0x440]
test eax, eax
je 0x407e5d
push eax
call fcn.0040f7d6
add esp, 4
mov dword [esp + 0x440], 0
mov dword [esp + 0x444], 0
mov dword [esp + 0x448], 0
mov byte [esp + 0x580], 2
lea ecx, [esp + 0x434]
call fcn.00408e20
mov byte [esp + 0x580], 1
cmp byte [esp + 0x16], 0
je 0x407e9a
mov eax, dword [esp + 0x42c]
test eax, eax
je 0x407e92
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [esp + 0x430], 0
mov dword [esp + 0x470], 0
mov byte [esp + 0x580], 0
mov eax, dword [esp + 0x42c]
test eax, eax
je 0x407ec6
push eax
call edi
mov dword [esp + 0x42c], 0
mov word [esp + 0x430], 0
mov dword [esp + 0x580], 0xffffffff
cmp dword [esp + 0x46c], 8
jb 0x407ef4
push dword [esp + 0x458]
call fcn.0040f7d6
add esp, 4
xor eax, eax
mov dword [esp + 0x46c], 7
mov word [esp + 0x458], ax
mov al, 1
mov dword [esp + 0x468], 0
jmp 0x408194
mov byte [esp + 0x580], 0x14
lea ecx, [esp + 0x44c]
call fcn.004090c0
mov byte [esp + 0x580], 3
lea ecx, [esp + 0x440]
call fcn.004090c0
mov byte [esp + 0x580], 2
lea ecx, [esp + 0x434]
call fcn.00408e20
mov byte [esp + 0x580], 1
lea ecx, [esp + 0x470]
call fcn.004062f0
mov byte [esp + 0x580], 0
mov eax, dword [esp + 0x42c]
test eax, eax
je 0x407f8c
push eax
call edi
mov dword [esp + 0x42c], 0
mov word [esp + 0x430], 0
mov dword [esp + 0x580], 0xffffffff
lea ecx, [esp + 0x458]
call fcn.00401eb0
jmp 0x408192
mov byte [esp + 0x580], 0x14
test esi, esi
je 0x407fe8
push esi
call fcn.0040f7d6
add esp, 4
mov dword [esp + 0x44c], 0
mov dword [esp + 0x450], 0
mov dword [esp + 0x454], 0
mov byte [esp + 0x580], 3
mov eax, dword [esp + 0x440]
test eax, eax
je 0x407c09
push eax
jmp 0x407be0
mov ebx, dword [esp + 0x438]
mov edi, dword [esp + 0x434]
mov byte [esp + 0x580], 2
test edi, edi
je 0x4080ef
mov esi, edi
mov dword [esp + 0x20], esi
cmp edi, ebx
je 0x4080c5
mov byte [esp + 0x580], 0x12
cmp dword [esi + 0x44], 8
jb 0x40804a
push dword [esi + 0x30]
call fcn.0040f7d6
add esp, 4
mov dword [esi + 0x44], 7
xor eax, eax
mov dword [esi + 0x40], 0
mov word [esi + 0x30], ax
mov byte [esp + 0x580], 0x11
cmp dword [esi + 0x2c], 8
jb 0x408077
push dword [esi + 0x18]
call fcn.0040f7d6
add esp, 4
mov dword [esi + 0x2c], 7
xor eax, eax
mov dword [esi + 0x28], 0
mov word [esi + 0x18], ax
mov byte [esp + 0x580], 2
cmp dword [esi + 0x14], 8
jb 0x4080a3
push dword [esi]
call fcn.0040f7d6
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x68
mov dword [esp + 0x20], esi
cmp esi, ebx
jne 0x408031
push edi
call fcn.0040f7d6
add esp, 4
mov dword [esp + 0x43c], 0
mov dword [esp + 0x438], 0
mov dword [esp + 0x434], 0
mov byte [esp + 0x580], 1
cmp byte [esp + 0x16], 0
je 0x408118
mov eax, dword [esp + 0x42c]
test eax, eax
je 0x408110
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [esp + 0x430], 0
mov dword [esp + 0x470], 0
mov byte [esp + 0x580], 0
mov eax, dword [esp + 0x42c]
test eax, eax
je 0x408148
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x42c], 0
mov word [esp + 0x430], 0
mov dword [esp + 0x580], 0xffffffff
cmp dword [esp + 0x46c], 8
jb 0x408176
push dword [esp + 0x458]
call fcn.0040f7d6
add esp, 4
xor eax, eax
mov dword [esp + 0x46c], 7
mov word [esp + 0x458], ax
mov dword [esp + 0x468], eax
xor al, al
mov ecx, dword [esp + 0x578]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x560]
xor ecx, esp
call fcn.0040f01f
mov esp, ebp
pop ebp
ret 0xc