Function at 0x439720
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a7a20
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x4db06c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x19c4], 0
jg 0x4397c0
mov eax, dword [esi + 0x36a4]
cmp eax, 0x20
je 0x4397c0
cmp dword [0x4e042c], 6
mov edi, dword [sym.imp.KERNEL30.dll_SetThreadPriority]
mov ebx, dword [sym.imp.KERNEL30.dll_GetCurrentThread]
jb 0x43978b
cmp eax, 0x40
je 0x439781
cmp dword [esi + 0x1c94], 0
je 0x43978b
push 0x20000
call ebx
push eax
call edi
push 0x20
call dword [sym.imp.KERNEL30.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL30.dll_SetPriorityClass]
cmp dword [0x4e042c], 6
jb 0x4397b6
cmp dword [esi + 0x1c94], 0
je 0x4397b6
push 0x10000
call ebx
push eax
call edi
mov dword [esi + 0x36a4], 0x20
push 0x64
push dword [esi + 0x48]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [esi + 0x1c98], 0
lea ebx, [esi + 0x78]
cmp dword [esi + 0xefc], 0
jne 0x43984a
cmp dword [esi + 0xf00], 0
jne 0x43984a
cmp word [esi + 0xf9e], 0
mov dword [ebp - 0x10], 0
je 0x43982d
cmp dword [esi + 0xfa0], 0
je 0x43982d
push 0
push dword [esi + 0xf90]
call dword [sym.imp.KERNEL30.dll_WaitForSingleObject]
test eax, eax
jne 0x43982d
lea ecx, [esi + 0xf90]
call fcn.0045af90
push dword [esi + 0xf90]
call dword [sym.imp.KERNEL30.dll_ReleaseMutex]
mov eax, dword [esi]
mov ecx, esi
push str._____Cancelled._____
push 0
push 0xc
push 0xbc9
call dword [eax + 0x150]
jmp 0x439b7d
lea eax, [esi + 0x2388]
mov dword [ebp - 0x10], 1
push eax
call dword [sym.imp.KERNEL30.dll_GetLocalTime]
push 1
lea eax, [esi + 0x23b0]
mov ecx, ebx
push eax
call fcn.0041a2e0
mov eax, dword [esi + 0x2598]
or eax, dword [esi + 0x259c]
jne 0x4398b2
mov eax, dword [esi + 0x25a0]
or eax, dword [esi + 0x25a4]
jne 0x4398b2
mov ecx, dword [esi + 0x2620]
add ecx, dword [esi + 0x24e8]
mov eax, dword [esi + 0x2624]
adc eax, dword [esi + 0x24ec]
or ecx, eax
jne 0x4398b2
mov dword [esi + 0x2300], 1
jmp 0x4398bc
mov dword [esi + 0x2300], 0
push 1
mov ecx, esi
call fcn.0043c4d0
mov eax, dword [esi + 0x1388]
mov edi, dword [sym.imp.KERNEL30.dll_CloseHandle]
and eax, 0x2000000
or eax, 0
jne 0x439a3f
cmp dword [esi + 0x22d8], 0
je 0x439a3f
mov ebx, dword [esi + 0x23a4]
cmp ebx, 0xffffffff
jne 0x43993f
push ebx
push dword [esi + 0x23a8]
call dword [sym.imp.KERNEL30.dll_WaitForSingleObject]
push 0
push 0
push 4
push 0
push 3
push 0x40000000
lea eax, [esi + 0x1cc0]
push eax
call dword [sym.imp.KERNEL30.dll_CreateFileW]
mov ebx, eax
mov dword [esi + 0x23a4], ebx
cmp ebx, 0xffffffff
jne 0x43993f
push dword [esi + 0x23a8]
call dword [sym.imp.KERNEL30.dll_ReleaseMutex]
mov ebx, dword [esi + 0x23a4]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
push 0
push 1
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0
push eax
mov ecx, esi
call fcn.004446d0
push 2
push 0
push 0
push ebx
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL30.dll_SetFilePointer]
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x14]
push 0
push eax
push dword [ebp - 0x14]
push edi
push ebx
call dword [sym.imp.KERNEL30.dll_WriteFile]
push edi
mov dword [ebp - 4], 0xffffffff
call fcn.00491111
add esp, 4
mov ecx, esi
call fcn.004442c0
mov ebx, dword [esi + 0x23a4]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 4], 1
cmp ebx, dword [esi + 0x23ac]
mov ecx, esi
sete al
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00444a00
push 2
push 0
push 0
push ebx
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL30.dll_SetFilePointer]
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x14]
push 0
push eax
push dword [ebp - 0x14]
push edi
push ebx
call dword [sym.imp.KERNEL30.dll_WriteFile]
push edi
mov dword [ebp - 4], 0xffffffff
call fcn.00491111
mov eax, dword [esi + 0x23a4]
add esp, 4
mov edi, dword [sym.imp.KERNEL30.dll_CloseHandle]
cmp eax, 0xffffffff
je 0x439a3c
push eax
call edi
push dword [esi + 0x23a8]
mov dword [esi + 0x23a4], 0xffffffff
call dword [sym.imp.KERNEL30.dll_ReleaseMutex]
lea ebx, [esi + 0x78]
cmp dword [esi + 0x22dc], 0
je 0x439ad6
cmp dword [esi + 0x22e0], 0
jne 0x439a65
mov eax, dword [esi + 0x1388]
and eax, 0x2000000
or eax, 0
jne 0x439ad6
cmp dword [esi + 0x23ac], 0xffffffff
je 0x439a8e
mov ecx, esi
call fcn.00444210
push 1
push dword [esi + 0x23ac]
mov ecx, esi
call fcn.00444930
push dword [esi + 0x23ac]
call edi
jmp 0x439aa2
cmp dword [esi + 0x2304], 3
jl 0x439aa2
push 1
push 0xffffffffffffffff
mov ecx, esi
call fcn.00444930
cmp dword [esi + 0x22dc], 2
je 0x439acc
lea ecx, [esi + 0x1ec8]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + 0x206], ax
test ax, ax
jne 0x439ab1
xor eax, eax
mov word [esi + 0x1ec8], ax
mov dword [esi + 0x23ac], 0xffffffff
mov eax, dword [esi + 0x1388]
and eax, 0x2000000
or eax, 0
je 0x439aed
mov ecx, 1
jmp 0x439aef
xor ecx, ecx
mov edx, dword [esi]
test ecx, ecx
mov ecx, 0xc03
mov eax, 1
cmovne eax, ecx
mov ecx, esi
push 0
push eax
call dword [edx + 0x110]
mov edi, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call edi
mov ecx, ebx
call fcn.00419db0
cmp dword [ebx + 0xcc0], 0
jbe 0x439b45
lea ecx, [ebx + 0xcb8]
call fcn.0045ed00
push ecx
push 0x400000
push 0x10000
lea ecx, [ebx + 0xcb8]
call fcn.0045ec90
mov eax, dword [esi + 0x1388]
and eax, 0x2000000
or eax, 0
je 0x439b5c
mov ecx, 1
jmp 0x439b5e
xor ecx, ecx
mov edx, dword [esi]
test ecx, ecx
mov ecx, 0xc03
mov eax, 1
cmovne eax, ecx
mov ecx, esi
push 1
push eax
call dword [edx + 0x110]
push eax
call edi
push SysReAllocString
call dword [sym.imp.KERNEL30.dll_SetThreadExecutionState]
mov eax, dword [esi + 0x1388]
and eax, 0x2000000
or eax, 0
je 0x439b9f
mov ebx, 1
jmp 0x439ba1
xor ebx, ebx
mov edi, dword [esi]
mov eax, 0x47
test ebx, ebx
mov ecx, 0x29
cmovne ecx, eax
call fcn.0045fe50
push eax
test ebx, ebx
mov ecx, 0xc03
mov eax, 1
cmovne eax, ecx
mov ecx, esi
push eax
call dword [edi + 0xf8]
mov eax, dword [esi]
mov ecx, esi
push 0x4b88fd
push 0xbcc
call dword [eax + 0xf4]
mov eax, dword [esi + 0x1c88]
mov ebx, dword [ebp - 0x10]
cmp eax, 2
je 0x439c23
cmp eax, 1
jne 0x439c1f
test ebx, ebx
je 0x439c23
mov eax, dword [esi + 0x2598]
or eax, dword [esi + 0x259c]
jne 0x439c1f
mov eax, dword [esi + 0x25a0]
or eax, dword [esi + 0x25a4]
jne 0x439c1f
cmp dword [esi + 0x2344], eax
je 0x439c23
xor edi, edi
jmp 0x439c28
mov edi, 1
mov eax, dword [esi + 0x1388]
xor ecx, ecx
and eax, 0x2000000
mov dword [ebp - 0x14], ecx
or eax, ecx
je 0x439c62
mov edx, dword [esi + 0x1c30]
test edx, edx
je 0x439cc1
mov eax, dword [esi + 0x1c48]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 0xc]
cmp eax, 8
je 0x439c62
cmp eax, 9
je 0x439c62
cmp eax, 0xa
jne 0x439cc1
test ebx, ebx
je 0x439c7d
cmp dword [esi + 0x1c44], ecx
jne 0x439c7d
lea eax, [ebp - 0x14]
mov ecx, esi
push eax
push edi
call fcn.00439db0
mov ecx, dword [ebp - 0x14]
test edi, edi
jne 0x439c9d
test ecx, ecx
je 0x439c94
mov eax, dword [esi + 0x1388]
and eax, 0x2000000
or eax, edi
je 0x439c9d
cmp dword [esi + 0x2304], 0
je 0x439cad
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
push 0x10
call dword [eax + 0x140]
mov dword [esi + 0x1c88], 0
mov dword [esi + 0x1cac], 0
mov eax, dword [esi + 0x239c]
test eax, eax
je 0x439cde
push eax
call fcn.00487954
add esp, 4
mov dword [esi + 0x239c], 0
push 1
mov ecx, esi
mov dword [esi + 0x23a0], 0xffffffff
call fcn.00435fd0
mov ecx, esi
call fcn.0043db10
mov ecx, esi
call fcn.0043aac0
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x439d5a
mov ecx, dword [esi + 0x48]
test ecx, ecx
je 0x439d5a
cmp eax, ecx
je 0x439d20
push eax
push ecx
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x439d5a
mov eax, dword [esi + 0x1388]
and eax, 0x2000000
or eax, 0
je 0x439d37
mov ecx, 1
jmp 0x439d39
xor ecx, ecx
mov edx, dword [esi]
test ecx, ecx
mov ecx, 0xc03
mov eax, 1
cmovne eax, ecx
mov ecx, esi
push eax
call dword [edx + 0x110]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
cmp dword [0x4e042c], 6
jb 0x439d8c
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x439d8c
push eax
push 0x7545
push dword [esi + 0x48]
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call dword [sym.imp.USER32.dll_EnableMenuItem]
push dword [esi + 0x48]
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret