Function at 0x40867c
Capabilities:
Clear file content
Get thread local storage value
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
adc dword [section..trtfd], 0x42d00c
push ebx
or dword [section..xlsdkf], 0x5016
push esi
sbb dword [0x42d008], 0x6d64
push edi
push 0x1f
and dword [0x42d018], 0x1f4a
lea eax, [ebp - 0x78]
push eax
not dword [0x42c008]
push 0
xor dword [0x429008], 0x2961
jmp 0x40aa2a
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x97898797
or dword [0x42a008], 0x42d008
call dword [sym.imp.USER32.dll_DestroyMenu]
and dword [0x42c01c], 0
mov ebx, dword [0x42c01c]
inc ebx
mov dword [0x42c01c], ebx
cmp dword [0x42c01c], 5
jne 0x40aa74
push 0x57f5
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [0x42c01c], 4
jne 0x40aa90
sub ebx, ebx
xor ebx, dword [0x42c01c]
inc ebx
mov dword [0x42c01c], ebx
cmp dword [0x42c01c], 0x10
jb 0x40aa4f
sub eax, eax
xor eax, dword [0x42a014]
xor dword [0x42d018], eax
mov dword [ebp - 4], 0xf89c85b6
or ecx, dword [0x42d008]
mov dword [ebp - 0x14], 0xf89c85b5
mov ecx, dword [ebp - 4]
or dword [0x42b014], edi
mov ebx, 0x7510893
sub eax, eax
or eax, dword [0x423e45]
mov eax, dword [eax]
or dword [0x42d018], eax
sub ecx, ebx
not eax
mov eax, 0x3272db
or dword [0x42c010], 0x42900c
add ecx, eax
mov dword [ebp - 0x1c], ecx
mov dword [0x42c014], 0x14
cmp dword [0x42c014], 0
je 0x40aba5
cmp dword [0x42c014], 2
jne 0x40ab27
push dword [ebp - 0x28]
push 0x424553
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [0x42c014], 3
jne 0x40ab41
mov ecx, dword [0x42c014]
dec ecx
mov dword [0x42c014], ecx
mov ecx, dword [0x42c014]
dec ecx
mov dword [0x42c014], ecx
jmp 0x40aaff
mov ecx, dword [ebp + 0x14]
or ecx, ecx
je 0x40ac27
and dword [0x42c014], edi
mov ecx, dword [ebp + 0x14]
mov dword [0x42c014], 0x11
cmp dword [0x42c014], 0
je 0x40ac1c
cmp dword [0x42c014], 5
jne 0x40abf0
push 0x429028
push dword [ebp - 0x20]
push 0x4243c7
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExA]
cmp dword [0x42c014], 6
jne 0x40ac0a
mov edi, dword [0x42c014]
dec edi
mov dword [0x42c014], edi
mov edi, dword [0x42c014]
dec edi
mov dword [0x42c014], edi
jmp 0x40abc3
mov ecx, dword [ecx]
xor dword [0x42a018], ecx
mov dword [ebp - 0x1c], ecx
adc dword [0x429024], edi
mov ecx, 0x7665
imul edx, eax
mov dword [0x42d00c], 0x1b
cmp dword [0x42d00c], 0
je 0x40ac99
cmp dword [0x42d00c], 4
jne 0x40ac67
push 0x429020
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_GetCommTimeouts]
cmp dword [0x42d00c], 5
jne 0x40ac81
mov edi, dword [0x42d00c]
dec edi
mov dword [0x42d00c], edi
mov edi, dword [0x42d00c]
dec edi
mov dword [0x42d00c], edi
jmp 0x40ac3f
mov esi, 0x76532
add edx, ecx
xchg esi, ecx
or edi, esi
mov edi, 0x54354
movzx ecx, byte [0x42901c]
sbb dword [section..trtfd], ecx
sub edx, edi
mov ecx, dword [ebp - 4]
sbb dword [0x429028], 0x4a48
sub ecx, ebx
and esi, dword [0x42900c]
add ecx, eax
mov dword [ebp - 8], ecx
mov dword [0x42b014], 0x169
mov ecx, dword [ebp - 0x14]
add esi, dword [section..vnhjh]
sub ecx, ebx
add dword [0x42d00c], 0x42d004
add ecx, eax
mov dword [ebp - 0x24], ecx
and esi, esi
mov ecx, dword [ebp - 4]
and dword [section..vnhjh], 0
jmp 0x40ad17
mov esi, dword [section..vnhjh]
inc esi
mov dword [section..vnhjh], esi
cmp dword [section..vnhjh], 0x10
jae 0x40ad6e
cmp dword [section..vnhjh], 4
jne 0x40ad3c
push 0x8810
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
cmp dword [section..vnhjh], 3
jne 0x40ad56
mov esi, dword [section..vnhjh]
inc esi
mov dword [section..vnhjh], esi
jmp 0x40ad0a
sub ecx, ebx
add ecx, eax
add esi, 0x75ba
mov dword [ebp - 0x30], ecx
or ecx, dword [0x42c010]
mov esi, dword [ebp - 4]
inc ecx
sub esi, ebx
mov ecx, dword [0x4245a4]
mov ecx, dword [ecx]
adc dword [0x429020], ecx
add esi, eax
mov ecx, dword [ebp - 0x24]
sub dword [0x42c010], 0x42c004
sub ecx, eax
lea edx, [esi - 0x3272db]
xor dword [0x42a004], 0x429028
sub ecx, ebx
sub edx, ebx
mov dword [0x42b00c], 0x3cf6
cmp edx, ecx
mov dword [0x42a008], 0x130c
je 0x40afdd
sub ecx, 0x2467
mov ecx, dword [ebp - 4]
and dword [0x42c00c], 0x42d01c
sub ecx, ebx
add dword [0x42b018], 0x2ea9
add ecx, eax
mov dword [section..vnhjh], 0x737d
cmp esi, ecx
mov dword [0x42b018], 0x3d4e
jne 0x40afba
push dword [ebp + 8]
call fcn.00423bc9
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
sub edi, ecx
mov ecx, dword [ebp - 0x18]
sub eax, ebx
and dword [0x42901c], 0
jmp 0x40ae44
mov edi, dword [0x42901c]
inc edi
mov dword [0x42901c], edi
cmp dword [0x42901c], 0x1d
jae 0x40ae8e
cmp dword [0x42901c], 0x2c
jne 0x40ae83
push 0x61ef
push 0x288b
push 0x42d018
push dword [ebp - 0x28]
push 0x2975
push dword [ebp - 0x24]
push 0x26ce
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
jmp 0x40ae37
mov edi, 0x3272db
add eax, edi
mov dword [0x42901c], 0x5f35
cmp ecx, eax
mov dword [0x42c018], 0x19df
je 0x40b04d
sub dword [0x42d018], 0x5f9c
push dword [ebp - 0x18]
and dword [0x42b018], 0x42b000
push dword [ebp + 8]
dec dword [0x42a00c]
call fcn.00423ca8
or dword [0x42a014], 0x42a00c
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
sbb dword [0x42a010], 0x3b6d
mov ecx, dword [ebp - 0x18]
sub eax, ebx
add dword [0x429004], 0x42d004
add eax, edi
mov dword [0x42a018], 0x317f
cmp ecx, eax
je 0x40b04d
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x18]
mov ecx, dword [section..xlsdkf]
xor dword [0x42a014], ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
and dword [0x42b018], 0
jmp 0x40af47
mov ecx, dword [0x42b018]
inc ecx
mov dword [0x42b018], ecx
cmp dword [0x42b018], 0x16
jae 0x40af75
cmp dword [0x42b018], 0x20
jne 0x40af6a
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
jmp 0x40af3a
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x20]
sub eax, dword [0x429024]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x18]
inc ecx
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x34], ecx
xor dword [0x42a004], edi
mov eax, dword [ebp - 0x18]
or dword [section..iuyhfv], ebx
mov ecx, dword [ebp + 8]
or dword [0x42a008], 0x109d
add ecx, dword [eax + 0x1c]
push edi
pop eax
mov dword [ebp - 0x18], ecx
jmp 0x40b015
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + 8]
add edx, dword [ecx + esi*4]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x28]
sub ecx, ebx
add ecx, eax
cmp edx, ecx
je 0x40b015
jmp 0x40b001
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
sub ecx, ebx
add ecx, eax
cmp edx, ecx
je 0x40b059
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x30]
sub ecx, ebx
add ecx, eax
cmp edx, ecx
je 0x40b068
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x28]
push dword [ebp + 0xc]
call fcn.00401056
mov eax, 0x3272db
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
sub ecx, ebx
add ecx, eax
cmp edx, ecx
je 0x40b03c
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + esi*2]
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + ecx*4]
mov dword [ebp - 0x38], ecx
jmp 0x40afdd
mov ecx, dword [ebp - 0x14]
sub ecx, ebx
lea esi, [esi + ecx + 0x3272db]
jmp 0x40ad97
mov eax, dword [ebp - 4]
sub eax, ebx
add eax, edi
jmp 0x40f896
mov eax, dword [ebp - 4]
sub eax, ebx
add eax, 0x3272db
jmp 0x40f896
mov ecx, dword [ebp - 0x38]
add ecx, dword [ebp + 8]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x1c]
or ecx, ecx
je 0x40d4bc
mov dword [ebp - 0x20], 0
push 3
sub edx, edx
pop edx
add edx, 8
push edx
pop ecx
push 6
dec ecx
pop ebx
dec ebx
xchg ebx, ecx
sub ebx, ecx
xchg ebx, ecx
dec ecx
mov eax, dword [ebp - 0x1c]
imul eax, ecx
sub esp, eax
mov dword [ebp - 0x20], esp
mov eax, dword [ebp - 4]
mov ecx, 0x7510893
sub eax, ecx
mov edx, 0x3272db
add eax, edx
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x14]
sub eax, ecx
add eax, edx
mov edx, dword [ebp + 0x14]
jmp 0x40d427
imul eax, dword [edx]
mov edx, dword [ebp - 4]
sub edx, ecx
mov ecx, dword [ebp + 8]
lea ecx, [edx + ecx + 0x3272db]
cmp ecx, eax
je 0x40d4b2
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + eax*4 + 4]
mov ecx, 0x7510893
sub edx, edx
sub edi, ecx
mov esi, 0x3272db
add edi, esi
div edi
mov edx, dword [ebp - 4]
sub edx, ecx
lea eax, [edx + eax + 0x3272db]
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x20]
mov dword [edi + edx*4], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
sub eax, ecx
lea eax, [eax + edx + 0x3272db]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 0x14]
sub eax, ecx
add eax, esi
imul eax, dword [edx]
mov edx, dword [ebp - 4]
sub edx, ecx
mov ecx, dword [ebp + 8]
lea ecx, [edx + ecx + 0x3272db]
cmp ecx, eax
jne 0x40d441
push esi
pop eax
jmp 0x40d4b7
mov eax, 0x3272db
mov ebx, 0x7510893
mov ecx, dword [ebp - 4]
sub ecx, ebx
add ecx, eax
mov dword [ebp - 0xc], ecx
mov ebx, 0x65655
add ebx, 0x3234
xchg ebx, esi
sub ebx, ebx
push esi
push ebx
pop esi
pop ebx
push esi
pop edx
sub ebx, 0xffffeffe
lea eax, [ebp - 0x10]
add edx, eax
add edx, 5
push edx
inc esi
pop ecx
dec ecx
jmp 0x40f852
xchg ecx, eax
dec eax
xchg ecx, eax
dec ecx
xchg ecx, edx
dec edx
push edx
push ebx
pop edx
pop ebx
dec ebx
call dword [ebx]
cmp dword [ebp + 0x10], esi
je 0x40f882
xchg edx, eax
push 0xb
pop ecx
push 4
pop ebx
inc ebx
xchg ebx, ecx
sub ebx, ecx
xchg ebx, ecx
dec ecx
dec ecx
mov eax, dword [ebp - 0x1c]
imul eax, ecx
add esp, eax
xchg edx, eax
push eax
sub ebx, ebx
mov edx, esp
dec edx
inc ebx
add ebx, dword [edx + ebx]
dec ebx
sub edx, edx
add dword [ebp - 0xc], ebx
pop ebx
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
leave
ret 0x10