Function at 0x409c30
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x2e8
push ebp
push esi
push edi
push 0
push 0x10000000
push 4
push 0
push 2
push 0xc0000000
push str.c:jswx.log
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x409d54
push 2
push 0
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
or ecx, 0xffffffff
mov edi, str.WinMain
xor eax, eax
lea edx, [esp + 0xf4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
lea edx, [esp + 0xf4]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x42378c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xf8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.Web_Function
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xf8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x423778
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x10]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
lea edi, [esp + 0xfc]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x100]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esp + 0x300]
mov esi, 0x4232f0
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x409d86
test dl, dl
je 0x409d82
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x409d86
add ecx, 2
add esi, 2
test dl, dl
jne 0x409d62
xor ecx, ecx
jmp 0x409d8b
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x409d9e
mov dword [0x43799c], 1
jmp 0x409e5c
mov esi, str.INSTALL
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x409dc9
test dl, dl
je 0x409dc5
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x409dc9
add ecx, 2
add esi, 2
test dl, dl
jne 0x409da5
xor ecx, ecx
jmp 0x409dce
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x409dde
mov dword [0x43799c], 2
jmp 0x409e5c
mov esi, str.UNINSTALL
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x409e09
test dl, dl
je 0x409e05
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x409e09
add ecx, 2
add esi, 2
test dl, dl
jne 0x409de5
xor ecx, ecx
jmp 0x409e0e
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x409e1e
mov dword [0x43799c], 3
jmp 0x409e5c
mov esi, str.PROGRAM
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x409e49
test cl, cl
je 0x409e45
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x409e49
add eax, 2
add esi, 2
test cl, cl
jne 0x409e25
xor eax, eax
jmp 0x409e4e
sbb eax, eax
sbb eax, 0xffffffff
neg eax
sbb eax, eax
and al, 0xfc
add eax, 4
mov dword [0x43799c], eax
mov ecx, dword [0x488e90]
lea eax, [esp + 0x2c]
push 0x32
push eax
push 0xd
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0x2c]
push edx
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
mov dword [0x427100], eax
je 0x409e92
mov dword [0x4270fc], 1
push 0
push 0x10000000
push 4
push 0
push 2
push 0xc0000000
push str.c:jswx.log
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x409fad
push 2
push 0
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
or ecx, 0xffffffff
mov edi, str.MainInitGlobals
xor eax, eax
lea edx, [esp + 0xf4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
lea edx, [esp + 0xf4]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x42378c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xf8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.Web_Function
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xf8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x423778
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x10]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
lea edi, [esp + 0xfc]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x100]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [esp + 0x2f8]
lea edx, [esp + 0x60]
push edx
mov dword [0x488e90], esi
mov dword [esp + 0x64], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x409ff6
mov ecx, dword [esp + 0x70]
mov eax, 2
cmp ecx, eax
mov dword [0x437990], 1
jne 0x409ff6
mov dword [0x437990], eax
mov eax, dword [esp + 0x64]
mov dword [0x437994], eax
mov ecx, dword [esp + 0x2fc]
mov dword [0x4270bc], 0xffffffff
push ecx
push esi
mov dword [0x437940], 0
mov dword [0x437944], 0
mov dword [0x437998], 0
call fcn.0040a090
add esp, 8
call fcn.0040bd10
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
lea edx, [esp + 0x18]
push 0
push edx
call esi
test eax, eax
je 0x40a076
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
lea eax, [esp + 0x10]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
call ebp
push 0
push 0
lea edx, [esp + 0x18]
push 0
push edx
call esi
test eax, eax
jne 0x40a057
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
add esp, 0x2e8
ret 0x10