Function at 0x4093ee
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2c80
call fcn.0040f0e0
mov eax, dword [0x4130f0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x2c74], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x2c68], ecx
cmp eax, 0x83eb
ja 0x40a84f
cmp eax, 0x83e8
jae 0x40a83e
add eax, 0xffff7ffc
cmp eax, 0x54
ja case.0x4093e7.32785
movzx ecx, byte [eax + 0x40ac18]
jmp dword [ecx*4 + 0x40abbc]
push 0x420430
call fcn.0040ee10
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 4
cmp dword [0x413168], 1
jne 0x40941f
mov edx, dword [ebp - 0x2c68]
push str.MDI_Abilitato
push 0
push 0x180
push edx
call ebx
mov dword [ebp - 0x2c6c], 0
mov edi, 0x421008
mov edi, edi
mov eax, dword [edi]
test eax, eax
je 0x4095c5
cmp byte [eax + 0x404], 0
je 0x4095c5
mov esi, dword [edi - 4]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp esi, eax
mov eax, str._Corrente
je 0x40945e
mov eax, 0x410514
mov ecx, dword [edi]
mov edx, dword [ebp - 0x2c6c]
add ecx, 0x404
push ecx
push esi
push eax
inc edx
push edx
lea eax, [ebp - 0x58c]
push str.Istanza:__d_PID_s:__d_EXE:__s
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
mov esi, dword [ebp - 0x2c68]
add esp, 0x18
lea ecx, [ebp - 0x58c]
push ecx
push 0
push 0x180
push esi
call ebx
mov edx, dword [edi]
add edx, 4
push edx
lea eax, [ebp - 0x58c]
push str._____INI:__s
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
lea ecx, [ebp - 0x58c]
push ecx
push 0
push 0x180
push esi
call ebx
mov eax, dword [0x411360]
mov edx, dword [str._____PWD:]
mov cx, word [0x411364]
mov dword [ebp - 0x588], eax
lea eax, [ebp - 0x582]
mov dword [ebp - 0x58c], edx
mov dl, byte [0x411366]
push eax
push 0x3f7
mov word [ebp - 0x584], cx
mov byte [ebp - 0x582], dl
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [ebp - 0x58c]
push ecx
push 0
push 0x180
push esi
call ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [edi - 4], eax
jne 0x4095c5
mov edx, dword [0x413974]
push 0
push 0
push 0x1304
push edx
call ebx
push 0x413148
mov dword [ebp - 0x2c70], eax
call fcn.0040ee10
xor esi, esi
add esp, 4
cmp dword [ebp - 0x2c70], esi
jle 0x4095b8
jmp 0x409560
mov ecx, esi
call fcn.004024a0
test eax, eax
je 0x4095af
lea ecx, [eax + 0xa17]
push ecx
lea edx, [eax + 0xb17]
push edx
add eax, 0xa97
push eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x58c]
push str._____MDI__d__s_Utente__s_Operatore__s
push ecx
call dword [sym.imp.MSVCR100.dll_sprintf]
mov eax, dword [ebp - 0x2c68]
add esp, 0x18
lea edx, [ebp - 0x58c]
push edx
push 0
push 0x180
push eax
call ebx
inc esi
cmp esi, dword [ebp - 0x2c70]
jl 0x409560
push 0x413148
call fcn.0040ee20
add esp, 4
inc dword [ebp - 0x2c6c]
add edi, 0xc
cmp edi, 0x421614
jl 0x409430
push 0x420430
jmp 0x40aa2c
cmp dword [ebp - 0x2c68], 0
je case.0x4093e7.32785
mov esi, dword [ebp - 0x2c68]
mov ecx, 0x80
mov edi, 0x41ff8c
rep movsd dword es:[edi], dword [esi]
mov edi, dword [sym.imp.MSVCR100.dll__strdup]
mov esi, 0x41ff8c
mov edi, edi
mov eax, dword [esi]
test eax, eax
je 0x40961e
push eax
call edi
add esp, 4
mov dword [esi], eax
add esi, 4
cmp esi, 0x42018c
jl 0x409610
lea ecx, [ebp - 0x2c7c]
push ecx
push 4
push 0x413130
push 0x408070
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x42018c], eax
jmp case.0x4093e7.32785
mov edx, dword [0x42018c]
push edx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040f020
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [0x413974]
push 0
push 0
push 0x130b
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, dword [ebp - 0x2c68]
mov dword [0x41ff6c], eax
mov ecx, dword [edi + 0x3c]
push 0
push ecx
call fcn.00409190
mov dl, byte [edi + 0x38]
mov esi, eax
add esp, 8
mov byte [esi + 0x400], dl
call fcn.004052b0
mov dword [edi], 0
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040f020
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 0x2c68]
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [eax]
call fcn.00402940
mov esi, eax
add esp, 4
test esi, esi
je case.0x4093e7.32785
mov edx, dword [ebp - 0x2c74]
push 0
push 0x410b34
push esi
push edx
call fcn.0040ebe0
push esi
call dword [sym.imp.MSVCR100.dll_free]
add esp, 0x14
push 0
xor cl, cl
call fcn.00408370
call fcn.00402650
test eax, eax
je case.0x4093e7.32785
mov eax, dword [ebp - 0x2c74]
push 0
push 0x410b34
push str.Errore_in_aggiornamento_MxDesk:_nuovo_eseguibile_non_presente
push eax
call fcn.0040ebe0
add esp, 0x10
jmp case.0x4093e7.32785
push 0x2c
lea ecx, [ebp - 0x5d4]
push 0
push ecx
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ebx, [ebp - 0x59c]
mov dword [ebp - 0x5d4], 0x2c
call fcn.004032e0
mov eax, dword [ebp - 0x59c]
mov edx, dword [ebp - 0x594]
mov ecx, dword [ebp - 0x598]
add edx, eax
mov dword [ebp - 0x5b8], eax
mov eax, dword [ebp - 0x590]
add eax, ecx
mov dword [ebp - 0x5b4], ecx
xor ecx, ecx
cmp dword [0x41ee28], ecx
mov dword [ebp - 0x5b0], edx
sete cl
lea edx, [ebp - 0x5d4]
mov dword [ebp - 0x5ac], eax
mov eax, dword [0x413970]
push edx
push eax
lea ecx, [ecx + ecx + 3]
mov dword [ebp - 0x5cc], ecx
call dword [sym.imp.USER32.dll_SetWindowPlacement]
push 1
call fcn.00408230
jmp 0x40aa31
mov ecx, dword [ebp + 0x10]
mov dword [0x413168], ecx
call fcn.00408d10
push 1
call fcn.00408230
jmp 0x40aa31
mov ecx, dword [0x413974]
mov eax, 5
call fcn.00403d30
mov ecx, dword [0x413970]
xor eax, eax
cmp dword [0x41ee28], eax
sete al
lea eax, [eax + eax + 3]
call fcn.00403d30
cmp byte [0x42046e], 0
je case.0x4093e7.32785
mov edi, dword [0x413970]
call fcn.004040b0
mov byte [0x42046e], 0
jmp case.0x4093e7.32785
cmp dword [ebp + 0x10], 0x8011
jb case.0x4093e7.32785
cmp dword [ebp + 0x10], 0x8017
ja case.0x4093e7.32785
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x2c68]
add esi, 0x40
push edx
call fcn.00402360
jmp 0x40aa31
cmp dword [ebp - 0x2c68], 0
je 0x409e2d
mov eax, dword [ebp - 0x2c68]
mov ebx, dword [eax + 0x68]
mov ecx, dword [ebx + 0xdc4]
push str.oldparent
push ecx
call dword [sym.imp.USER32.dll_GetPropA]
mov edx, dword [ebx + 0xdc4]
push eax
push edx
call dword [sym.imp.USER32.dll_SetParent]
mov eax, dword [ebx + 0xdc4]
push str.oldparent
push eax
call dword [sym.imp.USER32.dll_RemovePropA]
push 0x413148
call fcn.0040ee10
mov ecx, dword [0x413974]
add esp, 4
xor eax, eax
call fcn.00403d30
mov ecx, dword [ebx + 0xdc0]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x8052
push ecx
call esi
mov edx, dword [0x413974]
push 0
push 0
push 0x1304
push edx
call esi
mov edi, eax
xor esi, esi
test edi, edi
jle 0x40991d
lea ebx, [ebx]
mov ecx, esi
call fcn.004024a0
test eax, eax
je 0x40990f
cmp eax, ebx
jne 0x409916
inc esi
cmp esi, edi
jl 0x409900
jmp 0x40991d
mov esi, eax
call fcn.00403e40
xor esi, esi
mov dword [ebp - 0x2c6c], esi
test edi, edi
jle 0x4099a2
lea esp, [esp]
mov ecx, esi
call fcn.004024a0
cmp ebx, eax
je 0x409948
inc esi
cmp esi, edi
jl 0x409930
mov dword [ebp - 0x2c6c], esi
jmp 0x4099a2
cmp dword [0x41fd58], 0
mov dword [ebp - 0x2c6c], esi
je 0x40998e
mov eax, dword [0x41fd5c]
test eax, eax
je 0x40998e
mov ecx, dword [ebx + 0xdc0]
push ecx
push 0x10
push 0x87d3
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x40998e
mov edx, dword [0x413970]
push eax
push 2
push 0x87d0
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [0x413974]
push 0
push esi
push 0x1308
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x413974]
push 0
push 0
push 0x1304
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
dec eax
mov dword [0x41ff68], eax
cmp esi, edi
jne 0x4099d0
push 0x410514
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
mov edx, dword [0x413974]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x130c
push edx
call esi
xor ecx, ecx
call fcn.004024a0
mov dword [ebp - 0x2c70], eax
test eax, eax
jne 0x409a51
cmp dword [0x420474], eax
je 0x409a10
push eax
push eax
mov eax, dword [0x413974]
push 0x8009
push eax
call esi
push 2
push 0x83e8
xor edi, edi
call fcn.00406170
mov ecx, dword [0x41fd5c]
add esp, 8
push ecx
mov dword [0x4139a0], edi
call dword [sym.imp.USER32.dll_IsWindow]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x409a82
mov edx, dword [0x41fd5c]
push edi
push 9
push 0x87d3
push edx
call esi
jmp 0x409a82
mov ecx, dword [0x413974]
mov eax, 5
call fcn.00403d30
mov esi, dword [ebp - 0x2c70]
push 0
push 0
push 1
mov ecx, esi
call fcn.00407c00
add esp, 0xc
call fcn.00403dc0
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0x10
call dword [sym.imp.MSVCR100.dll_malloc]
mov edi, eax
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0xdac]
mov dword [edi], eax
mov ecx, dword [ebx + 0xda4]
push 0x2690
mov dword [edi + 4], ecx
mov edx, dword [ebx + 0xda8]
lea eax, [ebp - 0x2c64]
push ebx
push eax
mov dword [edi + 8], edx
mov dword [edi + 0xc], ebx
call sub.MSVCR100.dll_memcpy
add esp, 0x10
cmp dword [ebp - 0x2c70], 0
je 0x409af8
lea ecx, [ebp - 0x2c7c]
push ecx
push 0
push edi
push fcn.00403170
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call fcn.00403280
add esp, 4
jmp 0x409afe
mov dword [0x420468], edi
push 0x413148
call fcn.0040ee20
mov edx, dword [ebx + 0xdbc]
mov edi, dword [sym.imp.USER32.dll_DestroyWindow]
add esp, 4
push edx
call edi
mov eax, dword [ebp - 0x2c6c]
push eax
call fcn.00406cd0
add esp, 4
cmp byte [ebx + 0x401], 0
je 0x409b3b
mov ecx, dword [ebx + 0xdd4]
push ecx
call edi
mov edx, dword [0x413974]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp byte [0x4201a0], 0
mov ebx, dword [sym.imp.USER32.dll_SetTimer]
je 0x409db0
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x409db0
call fcn.004030d0
test al, al
jne 0x409db0
cmp byte [0x4201a1], al
jne 0x409db0
cmp byte [0x4201a2], al
jne 0x409db0
push 0
mov byte [0x4201a1], 1
call dword [sym.imp.USER32.dll_ReplyMessage]
cmp edi, 3
je 0x409c41
push 0
call fcn.004056f0
add esp, 4
test eax, eax
je 0x409bc7
mov eax, dword [eax + 0xdc0]
push 0
push 0
push 0x8052
push eax
call esi
mov ecx, dword [ebp - 0x2c74]
push 0x15
push 0x410b34
push str.Errore_nella_connessione_con_il_server._n_nPremi:_n_Riprova__per_eseguire_la_riconnessione_n_Annulla__per_chiudere_la_connessione.
push ecx
call fcn.00405310
add esp, 0x10
cmp eax, 4
je 0x409c3e
mov edx, dword [0x413970]
push 1
push edx
call fcn.0040ed70
push 0
call fcn.004056f0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x409da9
mov eax, dword [edi + 0xdc0]
push 0
push 1
push 0x8052
push eax
call esi
call sub.USER32.dll_GetForegroundWindow
cmp eax, dword [0x413970]
jne 0x409da9
mov ecx, dword [edi + 0xdc0]
push ecx
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x409da9
cmp edi, 3
mov ecx, dword [ebp - 0x2c74]
sete dl
push 0x4021f0
push ecx
mov byte [0x4201ac], dl
mov edx, dword [0x41396c]
cmp edi, 2
sete al
push 0x148
push edx
mov byte [0x4201ad], al
call fcn.0040ed90
add esp, 0x10
mov dword [0x4201a4], eax
mov eax, dword [0x413974]
xor edi, edi
push edi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov ecx, dword [0x4201a4]
push edi
push 0x3e8
push 0x3e8
push ecx
mov dword [0x4201a8], edi
call ebx
push 0x413148
call fcn.0040ee10
mov edx, dword [0x413974]
add esp, 4
push edi
push edi
push 0x1304
push edx
call esi
test eax, eax
jle 0x409cf8
mov ecx, edi
call fcn.004024a0
test eax, eax
je 0x409ce1
mov eax, dword [eax + 0xdc0]
push 0
push 1
push 0x801f
push eax
call esi
mov ecx, dword [0x413974]
push 0
push 0
push 0x1304
push ecx
inc edi
call esi
cmp edi, eax
jl 0x409cc4
push 0x413148
call fcn.0040ee20
add esp, 4
xor eax, eax
jmp 0x409d10
mov cl, byte [ebp + eax - 0x214d]
mov byte [eax + 0x4201ae], cl
inc eax
test cl, cl
jne 0x409d10
xor eax, eax
jmp 0x409d30
mov cl, byte [ebp + eax - 0x20cd]
mov byte [eax + 0x42022e], cl
inc eax
test cl, cl
jne 0x409d30
xor eax, eax
jmp 0x409d50
mov cl, byte [ebp + eax - 0x204d]
mov byte [eax + 0x4202ae], cl
inc eax
test cl, cl
jne 0x409d50
xor eax, eax
jmp 0x409d70
mov cl, byte [ebp + eax - 0x1fcd]
mov byte [eax + 0x42032e], cl
inc eax
test cl, cl
jne 0x409d70
xor eax, eax
jmp 0x409d90
mov cl, byte [ebp + eax - 0x1f4d]
mov byte [eax + 0x4203ae], cl
inc eax
test cl, cl
jne 0x409d90
mov byte [0x4201a2], 1
mov byte [0x4201a1], 0
xor ecx, ecx
call fcn.004024a0
test eax, eax
jne case.0x4093e7.32785
cmp byte [0x4201a1], al
jne case.0x4093e7.32785
cmp byte [0x4201a2], al
je 0x409e15
cmp byte [0x4201ad], al
je 0x409e15
push eax
push 0x413cb4
call fcn.00401810
push eax
push 8
push str.RitardoRiconnessionePing
push 0x420478
call fcn.004019b0
imul eax, eax, 0x3e8
mov edx, dword [0x413970]
add esp, 0x14
push eax
push 0x4d3
push edx
call ebx
jmp case.0x4093e7.32785
mov eax, dword [ebp - 0x2c74]
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
jmp case.0x4093e7.32785
mov ecx, dword [0x413974]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x4093e7.32785
mov esi, dword [ebp - 0x2c68]
mov ecx, dword [esi + 0x18]
cmp byte [ecx], 0
mov edi, dword [esi + 0x68]
mov dword [ebp - 0x2c70], edi
je 0x409e6a
lea edx, [edi + 0x715]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409e60
mov ecx, dword [esi + 0x1c]
cmp byte [ecx], 0
je 0x409e82
lea edx, [edi + 0xa17]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409e78
mov ecx, dword [esi + 0x20]
cmp byte [ecx], 0
je 0x409e9a
lea edx, [edi + 0xa97]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409e90
mov ecx, dword [esi + 0x24]
cmp byte [ecx], 0
je 0x409eb2
lea edx, [edi + 0xb17]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409ea8
mov ecx, dword [esi + 0x28]
cmp byte [ecx], 0
je 0x409eca
lea edx, [edi + 0xb97]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409ec0
mov ecx, dword [esi + 0x2c]
cmp byte [ecx], 0
je 0x409ee2
lea edx, [edi + 0xc17]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409ed8
mov ecx, dword [esi + 0x30]
cmp byte [ecx], 0
je 0x409efa
lea edx, [edi + 0xc97]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409ef0
mov ecx, dword [esi + 0x34]
cmp byte [ecx], 0
je 0x409f12
lea edx, [edi + 0xd17]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409f08
test edi, edi
je 0x40a166
cmp byte [edi + 0x715], 0
lea eax, [edi + 0x715]
je 0x40a166
xor ecx, ecx
lea edx, [ebp - 0x188]
mov dword [0x413160], ecx
mov dword [0x413164], ecx
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x409f43
mov esi, dword [sym.imp.MSVCR100.dll_strchr]
lea ebx, [ebp - 0x188]
mov edx, ebx
push 0x40
push edx
call esi
add esp, 8
test eax, eax
je 0x409f87
mov edx, ebx
mov byte [eax], 0
mov ecx, ebx
sub edi, edx
mov dl, byte [ecx]
mov byte [ecx + edi + 0x815], dl
inc ecx
test dl, dl
jne 0x409f70
mov edi, dword [ebp - 0x2c70]
lea ebx, [eax + 1]
push 0x40
push ebx
call esi
add esp, 8
test eax, eax
je 0x409fad
lea edx, [ebp - 0x58c]
mov byte [eax], 0
sub edx, ebx
mov edi, edi
mov cl, byte [ebx]
mov byte [ebx + edx], cl
inc ebx
test cl, cl
jne 0x409fa0
lea ebx, [eax + 1]
push 0x40
push ebx
call esi
add esp, 8
test eax, eax
je 0x409fd1
mov edx, edi
mov byte [eax], 0
sub edx, ebx
mov cl, byte [ebx]
mov byte [ebx + edx + 0x896], cl
inc ebx
test cl, cl
jne 0x409fc0
lea ebx, [eax + 1]
push 0x40
push ebx
call esi
add esp, 8
test eax, eax
je 0x409ff0
mov byte [eax], 0
sub edi, ebx
mov al, byte [ebx]
mov byte [ebx + edi + 0x917], al
inc ebx
test al, al
jne 0x409fe2
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x2c6c], 0
push 0x7f
lea edx, [ebp - 0x83]
push 0
push edx
mov byte [ebp - 0x84], 0
call sub.MSVCR100.dll_memset
push 0x413148
call fcn.0040ee10
mov eax, dword [0x413974]
add esp, 0x10
push 0
push 0
push 0x1304
push eax
call edi
xor esi, esi
mov dword [ebp - 0x2c78], eax
test eax, eax
jle 0x40a143
mov ecx, esi
call fcn.004024a0
test eax, eax
je 0x40a136
mov ecx, dword [ebp - 0x2c6c]
add ecx, 0x61
sub ecx, 0x61
je 0x40a0d3
dec ecx
jne 0x40a136
cmp byte [eax + 0x896], cl
lea ebx, [eax + 0x896]
je 0x40a136
cmp byte [ebp - 0x84], cl
jne 0x40a09a
lea edx, [ebp - 0x84]
mov eax, ebx
sub edx, ebx
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40a090
mov ecx, ebx
lea eax, [ebp - 0x84]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a0c2
test dl, dl
je 0x40a0be
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a0c2
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a0a2
xor eax, eax
jmp 0x40a0c7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a136
inc dword [0x413164]
jmp 0x40a136
cmp byte [eax + 0x815], 0
lea ebx, [eax + 0x815]
je 0x40a136
cmp byte [ebp - 0x84], 0
jne 0x40a0ff
lea edx, [ebp - 0x84]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40a0f5
mov ecx, ebx
lea eax, [ebp - 0x84]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a127
test dl, dl
je 0x40a123
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a127
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a107
xor eax, eax
jmp 0x40a12c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a136
inc dword [0x413160]
inc esi
cmp esi, dword [ebp - 0x2c78]
jl 0x40a045
push 0x413148
call fcn.0040ee20
mov eax, dword [ebp - 0x2c6c]
inc eax
add esp, 4
mov dword [ebp - 0x2c6c], eax
cmp eax, 2
jne 0x40a000
push 0x413148
call fcn.0040ee10
mov ecx, dword [0x413974]
add esp, 4
push 0
push 0
push 0x1304
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
xor ecx, ecx
mov dword [ebp - 0x2c78], eax
mov dword [ebp - 0x2c6c], ecx
test eax, eax
jle 0x40a355
nop
call fcn.004024a0
mov ebx, eax
test ebx, ebx
je 0x40a33c
mov esi, dword [0x413164]
xor eax, eax
cmp dword [0x413160], eax
je 0x40a20d
mov dl, byte [ebx + 0x815]
lea edi, [ebx + 0x815]
test dl, dl
je 0x40a20d
test esi, esi
je 0x40a1fa
cmp byte [ebx + 0x896], al
lea ecx, [ebx + 0x896]
je 0x40a1fa
push ecx
push edi
lea edx, [ebx + 0x514]
push str.__s____s_
push edx
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0x10
jmp 0x40a235
test dl, dl
je 0x40a20d
push edi
push str.__s_
lea eax, [ebx + 0x514]
push eax
jmp 0x40a22c
test esi, esi
je 0x40a235
cmp byte [ebx + 0x896], al
lea ecx, [ebx + 0x896]
je 0x40a235
push ecx
push str.__s_
lea ecx, [ebx + 0x514]
push ecx
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
lea edx, [ebx + 0x917]
push edx
lea eax, [eax + ebx + 0x514]
push str.__s
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
lea eax, [ebx + 0x514]
lea edx, [ebp - 0x394]
add esp, 0xc
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40a260
lea eax, [ebp - 0x394]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40a271
mov ecx, dword [0x411220]
mov edx, dword [0x411224]
mov dword [eax], ecx
mov cx, word [0x411228]
mov dword [eax + 4], edx
mov dl, byte [0x41122a]
mov word [eax + 8], cx
mov byte [eax + 0xa], dl
xor eax, eax
mov dword [ebp - 0x5a8], eax
mov dword [ebp - 0x5a4], eax
mov dword [ebp - 0x5a0], eax
mov dword [ebp - 0x59c], eax
mov dword [ebp - 0x598], eax
mov dword [ebp - 0x594], eax
mov dword [ebp - 0x590], eax
cmp byte [ebp - 0x394], al
jne 0x40a2e0
push 0x410514
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
mov edx, dword [ebp - 0x2c6c]
lea ecx, [ebp - 0x5a8]
push ecx
lea eax, [ebp - 0x394]
push edx
mov dword [ebp - 0x59c], eax
mov eax, dword [0x413974]
push 0x1306
push eax
mov dword [ebp - 0x5a8], 3
mov dword [ebp - 0x594], 0xffffffff
call dword [sym.imp.USER32.dll_SendMessageA]
cmp byte [ebx + 0x401], 0
je 0x40a33c
mov esi, ebx
call fcn.00404e10
lea edx, [ebp - 0x394]
mov ecx, ebx
call fcn.00404820
mov ecx, dword [ebp - 0x2c6c]
inc ecx
mov dword [ebp - 0x2c6c], ecx
cmp ecx, dword [ebp - 0x2c78]
jl 0x40a1a0
push 0x413148
call fcn.0040ee20
add esp, 4
call fcn.00408330
jmp case.0x4093e7.32785
mov ecx, dword [ebp - 0x2c68]
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x70]
mov dword [eax + 0x11d8], edx
mov edx, dword [ecx + 0x74]
mov dword [eax + 0x11dc], edx
cmp dword [eax + 0x11dc], 0
mov edx, dword [ecx + 0x78]
mov dword [eax + 0x11e0], edx
mov ecx, dword [ecx + 0x7c]
mov dword [eax + 0x11e4], ecx
jne case.0x40a3bd.10
cmp ecx, 1
jne 0x40a3ae
mov eax, 0x14d
jmp 0x40a3e5
lea eax, [edx - 0xa]
cmp eax, 0x14
ja case.0x40a3bd.11
movzx eax, byte [eax + 0x40ac84]
jmp dword [eax*4 + 0x40ac70]
mov eax, 0x13b
jmp 0x40a3e5
mov eax, 0x14e
jmp 0x40a3e5
mov eax, 0x147
jmp 0x40a3e5
mov eax, 0x14b
jmp 0x40a3e5
mov eax, 0x6b
mov ecx, dword [0x41396c]
push 0
push 0x10
push 0x10
movzx esi, ax
push 1
push esi
push ecx
call dword [sym.imp.USER32.dll_LoadImageA]
mov edx, dword [0x413970]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push eax
push 0
push 0x80
push edx
call edi
mov eax, dword [0x41396c]
push esi
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov ecx, dword [0x413970]
push eax
push 1
push 0x80
push ecx
call edi
call fcn.00404770
jmp case.0x4093e7.32785
push 1
call fcn.004056f0
add esp, 4
xor edx, edx
cmp dword [ebp - 0x2c68], eax
pop edi
sete dl
pop esi
pop ebx
mov eax, edx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040f020
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 0x2c68]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0xdbc]
xor ecx, ecx
cmp dword [ebp + 0x10], 1
push 0
sete cl
push 0
push edx
mov dword [eax + 0xda0], ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x4093e7.32785
mov eax, dword [ebp - 0x2c68]
mov esi, dword [eax + 0x68]
mov eax, 1
cmp dword [ebp + 0x10], eax
jne 0x40a4dc
mov ecx, dword [0x413970]
push 0x4d2
push ecx
call fcn.0040ed30
mov edx, dword [esi + 0xdbc]
add esp, 8
push 0
push 0
push edx
mov dword [esi + 0xd98], 0
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x4093e7.32785
push 0
push 0x3e8
mov dword [esi + 0xd98], eax
mov eax, dword [0x413970]
push 0x4d2
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [esi + 0xdbc]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x4093e7.32785
mov ecx, dword [ebp - 0x2c68]
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x14]
lea esi, [eax + 0xdd8]
mov cl, byte [edx]
mov byte [esi], cl
inc edx
inc esi
test cl, cl
jne 0x40a522
call fcn.00406df0
jmp case.0x4093e7.32785
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x40a54e
mov edx, dword [ebp - 0x2c68]
mov dword [0x4139a0], edx
jmp case.0x4093e7.32785
cmp eax, 1
jne case.0x4093e7.32785
mov eax, dword [ebp - 0x2c68]
mov dword [0x4139a4], eax
jmp case.0x4093e7.32785
mov eax, dword [ebp - 0x2c68]
mov esi, dword [eax + 0x68]
mov ecx, dword [eax + 4]
mov dword [esi + 0xdc0], ecx
mov edx, dword [eax + 8]
mov dword [esi + 0xdc4], edx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0xdc8], ecx
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 0xdc4]
mov dword [esi + 0xdcc], edx
mov eax, dword [eax + 0x80]
push ecx
mov dword [esi + 0xdd0], eax
call dword [sym.imp.USER32.dll_GetParent]
mov edx, dword [esi + 0xdc4]
push eax
push str.oldparent
push edx
call dword [sym.imp.USER32.dll_SetPropA]
mov eax, dword [0x413970]
mov ecx, dword [esi + 0xdc4]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetParent]
call fcn.00405730
call fcn.00403dc0
call fcn.00403e40
cmp byte [esi + 0x400], 1
jne 0x40a610
mov edx, dword [0x413970]
push 0x10000
push 0xffffffffffffffff
push 0x8fb8
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov byte [esi + 0x400], 0
jmp case.0x4093e7.32785
call fcn.00404a10
jmp case.0x4093e7.32785
push 0x413148
mov dword [ebp - 0x2c70], 0
call fcn.0040ee10
mov eax, dword [0x413974]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 4
push 0
push 0
push 0x1304
push eax
call ebx
mov edi, eax
mov eax, dword [ebp - 0x2c68]
test eax, eax
je 0x40a661
push eax
call fcn.004024f0
add esp, 4
mov esi, eax
jmp 0x40a664
mov esi, dword [ebp + 0x10]
cmp esi, 0xffffffff
jle 0x40a6df
cmp esi, edi
jg 0x40a6df
mov ecx, dword [0x413974]
push 0
push 0
push 0x130b
push ecx
call ebx
push 0
mov edi, eax
call fcn.004056f0
mov edx, dword [eax + 0xdbc]
add esp, 4
mov dword [ebp - 0x2c70], edx
cmp esi, edi
je 0x40a6df
cmp byte [eax + 0x401], 0
jne 0x40a6a9
call fcn.004053d0
mov eax, dword [0x413974]
push 0
push esi
push 0x130c
push eax
call ebx
push 0
call fcn.004056f0
add esp, 4
push 0
mov esi, eax
push 0
push 1
mov ecx, esi
call fcn.00407c00
add esp, 0xc
call fcn.00403dc0
call fcn.00403e40
push 0x413148
call fcn.0040ee20
mov eax, dword [ebp - 0x2c70]
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040f020
mov esp, ebp
pop ebp
ret 0xc
xor ecx, ecx
cmp dword [ebp + 0x10], 0x2b
push 1
sete cl
lea edi, [ecx + ecx - 1]
call fcn.004056f0
mov edx, dword [eax + 0xdbc]
push edx
call fcn.004024f0
push 0x413148
mov esi, eax
call fcn.0040ee10
mov eax, dword [0x413974]
add esp, 0xc
push 0
push 0
push 0x1304
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, esi
mov ebx, eax
call fcn.004024a0
call fcn.004053d0
test edi, edi
jle 0x40a765
lea eax, [esi + edi]
cdq
idiv ebx
mov esi, edx
jmp 0x40a76c
add esi, edi
jns 0x40a76c
lea esi, [ebx - 1]
mov ecx, esi
call fcn.004024a0
test eax, eax
je 0x40a757
mov ecx, dword [0x413974]
push 0
push esi
push 0x130c
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
call fcn.004056f0
push 0
mov esi, eax
push 0
push 1
mov ecx, esi
call fcn.00407c00
add esp, 0x10
call fcn.00403dc0
call fcn.00403e40
cmp byte [esi + 0x401], 0
jne 0x40aa27
call fcn.004052b0
jmp 0x40aa27
push 1
call fcn.004056f0
push 0x413148
mov ebx, eax
call fcn.0040ee10
mov edx, dword [0x413974]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 8
xor esi, esi
push esi
push esi
push 0x1304
push edx
call edi
test eax, eax
jle 0x40aa27
lea esp, [esp]
mov ecx, esi
call fcn.004024a0
test eax, eax
je 0x40a823
cmp eax, ebx
je 0x40a823
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax + 0xdc0]
push 0
push ecx
push 0x8059
push edx
call edi
mov eax, dword [0x413974]
push 0
push 0
push 0x1304
push eax
inc esi
call edi
cmp esi, eax
jl 0x40a800
jmp 0x40aa27
mov edx, dword [ebp + 0x10]
push edx
push eax
mov edi, ecx
call fcn.00406170
jmp 0x40aba5
sub eax, 0x87d0
je 0x40ab97
sub eax, 0x7e8
je 0x40aa63
dec eax
jne case.0x4093e7.32785
mov esi, dword [ebp - 0x2c68]
movzx eax, si
xor edi, edi
shr esi, 0x10
push 0x413148
mov dword [ebp - 0x2c80], eax
mov dword [ebp - 0x2c7c], esi
mov dword [ebp - 0x2c70], edi
mov dword [ebp - 0x2c78], edi
call fcn.0040ee10
add esp, 4
cmp esi, edi
je 0x40a8ce
push 1
call fcn.004056f0
add esp, 4
cmp dword [ebp + 0x10], 1
mov dword [ebp - 0x2c70], eax
jne 0x40a8ce
mov ecx, dword [eax + 0xdbc]
push ecx
call fcn.004024f0
add esp, 4
mov dword [ebp - 0x2c78], eax
mov edx, dword [0x413974]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
xor ebx, ebx
push ebx
push ebx
push 0x1304
push edx
mov dword [ebp - 0x2c6c], ebx
call esi
lea edi, [eax - 1]
test edi, edi
jle 0x40a97d
jmp 0x40a900
mov eax, dword [ebp - 0x2c80]
test eax, eax
je 0x40a90e
cmp edi, eax
jne 0x40a978
mov ecx, ebx
call fcn.004024a0
mov dword [ebp - 0x2c6c], eax
test eax, eax
je 0x40a978
mov eax, dword [ebp + 0x10]
cmp eax, 1
jne 0x40a94d
mov eax, dword [ebp - 0x2c6c]
cmp byte [eax + 0x401], 0
je 0x40a978
mov eax, dword [ebp - 0x2c74]
lea ecx, [ebx + 1]
movzx edx, cx
push edx
push 1
push 0x8fb8
push eax
jmp 0x40a976
cmp eax, 0xffffffff
jne 0x40a978
mov ecx, dword [ebp - 0x2c6c]
cmp byte [ecx + 0x401], 0
jne 0x40a978
mov ecx, dword [ebp - 0x2c74]
lea edx, [ebx + 1]
movzx eax, dx
push eax
push 0xffffffffffffffff
push 0x8fb8
push ecx
call esi
inc ebx
cmp ebx, edi
jl 0x40a900
cmp dword [ebp - 0x2c7c], 0
je 0x40aa27
mov eax, dword [ebp + 0x10]
cmp eax, 1
jne 0x40a9ec
cmp dword [ebp - 0x2c6c], 0
je 0x40a9a6
mov eax, dword [ebp - 0x2c6c]
call fcn.004053d0
mov edi, dword [ebp - 0x2c70]
push 0
push 0
push 1
mov ecx, edi
call fcn.00407c00
mov edx, dword [ebp - 0x2c78]
mov eax, dword [0x413974]
add esp, 0xc
push 0
push edx
push 0x130c
push eax
call esi
mov ecx, dword [edi + 0xdc0]
push 0
push 0
push 0x8053
push ecx
call esi
mov edx, dword [edi + 0xdbc]
jmp 0x40aa17
cmp eax, 0xffffffff
jne 0x40aa27
mov esi, dword [ebp - 0x2c70]
mov eax, dword [esi + 0xdd4]
push eax
call dword [sym.imp.USER32.dll_SetActiveWindow]
mov ecx, dword [esi + 0xdd4]
push ecx
call dword [sym.imp.USER32.dll_SetFocus]
mov edx, dword [esi + 0xdbc]
push 0x581
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
push 0x413148
call fcn.0040ee20
add esp, 4
mov eax, dword [ebp - 0x2c68]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 0x2c74]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040f020
mov esp, ebp
pop ebp
ret 0xc
movzx edi, cx
shr ecx, 0x10
mov ebx, ecx
lea ecx, [edi - 1]
test ecx, ecx
js 0x40aa83
call fcn.004024a0
mov esi, eax
test esi, esi
je 0x40ab82
jmp 0x40aab8
test edi, edi
jne 0x40ab7c
push 1
call fcn.004056f0
mov esi, eax
add esp, 4
test esi, esi
je 0x40ab82
mov ecx, dword [esi + 0xdbc]
push ecx
call fcn.004024f0
mov edi, eax
add esp, 4
test edi, edi
js 0x40ab82
push 0x413148
call fcn.0040ee10
mov eax, dword [ebp + 0x10]
add esp, 4
cmp eax, 1
jne 0x40ab13
cmp byte [esi + 0x401], 0
je 0x40ab4a
mov edx, dword [esi + 0xdd4]
mov ebx, dword [sym.imp.USER32.dll_IsWindowEnabled]
push edx
call ebx
test eax, eax
jne 0x40aafd
push eax
mov eax, dword [0x413970]
dec edi
push edi
push 0x8042
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0xdd4]
push ecx
call ebx
test eax, eax
je 0x40ab4a
mov eax, esi
call fcn.00408ef0
jmp 0x40ab4a
cmp eax, 0xffffffff
jne 0x40ab4a
cmp byte [esi + 0x401], 0
jne 0x40ab4a
cmp ebx, 1
jne 0x40ab38
mov edx, dword [0x413974]
push edx
push esi
mov eax, edi
call fcn.00409090
add esp, 8
push 1
push 0
push 0
push 0
mov ecx, esi
call fcn.00407910
add esp, 0x10
mov eax, dword [0x413974]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push 0x413148
call fcn.0040ee20
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040f020
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp - 0x2c7c]
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040f020
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp + 0x10]
push edx
push 0x87d0
call fcn.00405d00
mov ecx, dword [ebp - 4]
add esp, 8
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040f020
mov esp, ebp
pop ebp
ret 0xc