Function at 0x408ec0
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2c78
call fcn.0040e6e0
mov eax, dword [0x4130f0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 0x2c70], eax
mov eax, dword [ebp + 0xc]
mov esi, ecx
push edi
mov dword [ebp - 0x2c74], esi
cmp eax, 0x83eb
ja 0x40a30f
cmp eax, 0x83e8
jae 0x40a2fe
add eax, 0xffff7ffc
cmp eax, 0x54
ja case.0x408f19.32785
movzx ecx, byte [eax + 0x40a5b0]
jmp dword [ecx*4 + 0x40a554]
push 0x420430
call fcn.0040e410
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 4
cmp dword [0x413168], 1
jne 0x408f4b
push str.MDI_Abilitato
push 0
push 0x180
push esi
call ebx
mov dword [ebp - 0x2c6c], 0
mov edi, 0x421008
lea ebx, [ebx]
mov eax, dword [edi]
test eax, eax
je 0x4090fe
cmp byte [eax + 0x404], 0
je 0x4090fe
mov edx, dword [edi - 4]
mov dword [ebp - 0x2c68], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [ebp - 0x2c68], eax
mov eax, str._Corrente
je 0x408f98
mov eax, 0x4104e4
mov ecx, dword [edi]
mov edx, dword [ebp - 0x2c68]
add ecx, 0x404
push ecx
push edx
push eax
mov eax, dword [ebp - 0x2c6c]
inc eax
push eax
lea ecx, [ebp - 0x58c]
push str.Istanza:__d_PID_s:__d_EXE:__s
push ecx
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0x18
lea edx, [ebp - 0x58c]
push edx
push 0
push 0x180
push esi
call ebx
mov eax, dword [edi]
add eax, 4
push eax
lea ecx, [ebp - 0x58c]
push str._____INI:__s
push ecx
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
lea edx, [ebp - 0x58c]
push edx
push 0
push 0x180
push esi
call ebx
mov ecx, dword [0x411330]
mov eax, dword [str._____PWD:]
mov dx, word [0x411334]
mov dword [ebp - 0x588], ecx
lea ecx, [ebp - 0x582]
mov dword [ebp - 0x58c], eax
mov al, byte [0x411336]
push ecx
push 0x3f7
mov word [ebp - 0x584], dx
mov byte [ebp - 0x582], al
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea edx, [ebp - 0x58c]
push edx
push 0
push 0x180
push esi
call ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [edi - 4], eax
jne 0x4090fe
mov eax, dword [0x413974]
push 0
push 0
push 0x1304
push eax
call ebx
push 0x413148
mov dword [ebp - 0x2c68], eax
call fcn.0040e410
xor esi, esi
add esp, 4
cmp dword [ebp - 0x2c68], esi
jle 0x4090eb
mov ecx, esi
call fcn.00402740
test eax, eax
je 0x4090e2
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 - 0x2c74]
add esp, 0x18
lea edx, [ebp - 0x58c]
push edx
push 0
push 0x180
push eax
call ebx
inc esi
cmp esi, dword [ebp - 0x2c68]
jl 0x409093
push 0x413148
call fcn.0040e420
mov esi, dword [ebp - 0x2c74]
add esp, 4
inc dword [ebp - 0x2c6c]
add edi, 0xc
cmp edi, 0x421614
jl 0x408f60
push 0x420430
jmp 0x40a3c6
test esi, esi
je case.0x408f19.32785
mov esi, dword [ebp - 0x2c74]
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 eax, dword [esi]
test eax, eax
je 0x409150
push eax
call edi
add esp, 4
mov dword [esi], eax
add esi, 4
cmp esi, 0x42018c
jl 0x409142
lea ecx, [ebp - 0x2c68]
push ecx
push 4
push 0x413130
push 0x407ba0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x42018c], eax
jmp case.0x408f19.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.0040e620
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 dword [0x41ff6c], eax
mov ecx, dword [esi + 0x3c]
push 0
push ecx
call fcn.00408cc0
mov dl, byte [esi + 0x38]
mov byte [eax + 0x400], dl
mov dword [esi], 0
jmp 0x40a53c
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
call fcn.00402be0
mov esi, eax
add esp, 4
test esi, esi
je case.0x408f19.32785
mov ecx, dword [ebp - 0x2c70]
push 0
push 0x410b04
push esi
push ecx
call fcn.0040e1e0
push esi
call dword [sym.imp.MSVCR100.dll_free]
add esp, 0x14
push 0
xor cl, cl
call fcn.00407ea0
call fcn.004028f0
test eax, eax
je case.0x408f19.32785
mov edx, dword [ebp - 0x2c70]
push 0
push 0x410b04
push str.Errore_in_aggiornamento_MxDesk:_nuovo_eseguibile_non_presente
push edx
call fcn.0040e1e0
add esp, 0x10
jmp case.0x408f19.32785
push 0x2c
lea eax, [ebp - 0x5d4]
push 0
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ebx, [ebp - 0x59c]
mov dword [ebp - 0x5d4], 0x2c
call fcn.00403580
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.00407d60
jmp 0x40a3cb
mov ecx, dword [ebp + 0x10]
mov dword [0x413168], ecx
call fcn.00408840
push 1
call fcn.00407d60
jmp 0x40a3cb
mov ecx, dword [0x413974]
mov eax, 5
call fcn.00403fd0
mov ecx, dword [0x413970]
xor eax, eax
cmp dword [0x41ee28], eax
sete al
lea eax, [eax + eax + 3]
call fcn.00403fd0
cmp byte [0x42046e], 0
je case.0x408f19.32785
mov edi, dword [0x413970]
call fcn.00404350
mov byte [0x42046e], 0
jmp case.0x408f19.32785
cmp dword [ebp + 0x10], 0x8011
jb case.0x408f19.32785
cmp dword [ebp + 0x10], 0x8017
ja case.0x408f19.32785
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x2c74]
add esi, 0x40
push edx
call fcn.00402600
jmp 0x40a3cb
test esi, esi
je 0x40992c
mov ebx, dword [esi + 0x68]
mov eax, dword [ebx + 0xdc4]
push str.oldparent
push eax
call dword [sym.imp.USER32.dll_GetPropA]
mov ecx, dword [ebx + 0xdc4]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetParent]
mov edx, dword [ebx + 0xdc4]
push str.oldparent
push edx
call dword [sym.imp.USER32.dll_RemovePropA]
push 0x413148
call fcn.0040e410
mov ecx, dword [0x413974]
add esp, 4
xor eax, eax
call fcn.00403fd0
mov eax, dword [ebx + 0xdc0]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x8052
push eax
call esi
mov ecx, dword [0x413974]
push 0
push 0
push 0x1304
push ecx
call esi
mov edi, eax
xor esi, esi
test edi, edi
jle 0x40941d
jmp 0x409400
mov ecx, esi
call fcn.00402740
test eax, eax
je 0x40940f
cmp eax, ebx
jne 0x409416
inc esi
cmp esi, edi
jl 0x409400
jmp 0x40941d
mov esi, eax
call fcn.004040e0
xor esi, esi
mov dword [ebp - 0x2c6c], esi
test edi, edi
jle 0x4094a2
lea esp, [esp]
mov ecx, esi
call fcn.00402740
cmp ebx, eax
je 0x409448
inc esi
cmp esi, edi
jl 0x409430
mov dword [ebp - 0x2c6c], esi
jmp 0x4094a2
cmp dword [0x41fd58], 0
mov dword [ebp - 0x2c6c], esi
je 0x40948d
mov eax, dword [0x41fd5c]
test eax, eax
je 0x40948d
mov edx, dword [ebx + 0xdc0]
push edx
push 0x10
push 0x87d3
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x40948d
push eax
mov eax, dword [0x413970]
push 2
push 0x87d0
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x413974]
push 0
push esi
push 0x1308
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [0x413974]
push 0
push 0
push 0x1304
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
dec eax
mov dword [0x41ff68], eax
cmp esi, edi
jne 0x4094d0
push 0x4104e4
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
mov eax, dword [0x413974]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x130c
push eax
call esi
xor ecx, ecx
call fcn.00402740
mov dword [ebp - 0x2c68], eax
test eax, eax
jne 0x409550
cmp dword [0x420474], eax
je 0x409510
mov ecx, dword [0x413974]
push eax
push eax
push 0x8009
push ecx
call esi
push 2
push 0x83e8
xor edi, edi
call fcn.00405cc0
mov edx, dword [0x41fd5c]
add esp, 8
push edx
mov dword [0x4139a0], edi
call dword [sym.imp.USER32.dll_IsWindow]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x409581
mov eax, dword [0x41fd5c]
push edi
push 9
push 0x87d3
push eax
call esi
jmp 0x409581
mov ecx, dword [0x413974]
mov eax, 5
call fcn.00403fd0
mov esi, dword [ebp - 0x2c68]
push 0
push 0
push 1
mov ecx, esi
call fcn.00407730
add esp, 0xc
call fcn.00404060
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 ecx, dword [ebx + 0xdac]
mov dword [edi], ecx
mov edx, dword [ebx + 0xda4]
push 0x2690
mov dword [edi + 4], edx
mov eax, dword [ebx + 0xda8]
lea ecx, [ebp - 0x2c64]
push ebx
push ecx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ebx
call sub.MSVCR100.dll_memcpy
add esp, 0x10
cmp dword [ebp - 0x2c68], 0
je 0x4095f7
lea edx, [ebp - 0x2c78]
push edx
push 0
push edi
push fcn.00403410
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call fcn.00403520
add esp, 4
jmp 0x4095fd
mov dword [0x420468], edi
push 0x413148
call fcn.0040e420
mov eax, dword [ebx + 0xdbc]
mov edi, dword [sym.imp.USER32.dll_DestroyWindow]
add esp, 4
push eax
call edi
mov ecx, dword [ebp - 0x2c6c]
push ecx
call fcn.00406820
add esp, 4
cmp byte [ebx + 0x401], 0
je 0x40963a
mov edx, dword [ebx + 0xdd4]
push edx
call edi
mov eax, dword [0x413974]
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp byte [0x4201a0], 0
mov ebx, dword [sym.imp.USER32.dll_SetTimer]
je 0x4098b0
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x4098b0
call fcn.00403370
test al, al
jne 0x4098b0
cmp byte [0x4201a1], al
jne 0x4098b0
cmp byte [0x4201a2], al
jne 0x4098b0
push 0
mov byte [0x4201a1], 1
call dword [sym.imp.USER32.dll_ReplyMessage]
cmp edi, 3
je 0x40973e
push 0
call fcn.00405240
add esp, 4
test eax, eax
je 0x4096c5
mov ecx, dword [eax + 0xdc0]
push 0
push 0
push 0x8052
push ecx
call esi
mov edx, dword [ebp - 0x2c70]
push 0x15
push 0x410b04
push str.Errore_nella_connessione_con_il_server._n_nPremi:_n_Riprova__per_eseguire_la_riconnessione_n_Annulla__per_chiudere_la_connessione.
push edx
call fcn.0040e1e0
add esp, 0x10
cmp eax, 4
je 0x40973b
mov eax, dword [0x413970]
push 1
push eax
call fcn.0040e370
push 0
call fcn.00405240
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4098a9
mov ecx, dword [edi + 0xdc0]
push 0
push 1
push 0x8052
push ecx
call esi
call sub.USER32.dll_GetForegroundWindow
cmp eax, dword [0x413970]
jne 0x4098a9
mov edx, dword [edi + 0xdc0]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x4098a9
cmp edi, 3
mov edx, dword [ebp - 0x2c70]
sete al
push 0x4021f0
push edx
mov byte [0x4201ac], al
mov eax, dword [0x41396c]
cmp edi, 2
sete cl
push 0x148
push eax
mov byte [0x4201ad], cl
call fcn.0040e390
mov ecx, dword [0x413974]
add esp, 0x10
xor edi, edi
push edi
push ecx
mov dword [0x4201a4], eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov edx, dword [0x4201a4]
push edi
push 0x3e8
push 0x3e8
push edx
mov dword [0x4201a8], edi
call ebx
push 0x413148
call fcn.0040e410
mov eax, dword [0x413974]
add esp, 4
push edi
push edi
push 0x1304
push eax
call esi
test eax, eax
jle 0x4097f4
mov ecx, edi
call fcn.00402740
test eax, eax
je 0x4097dd
mov ecx, dword [eax + 0xdc0]
push 0
push 1
push 0x801f
push ecx
call esi
mov edx, dword [0x413974]
push 0
push 0
push 0x1304
push edx
inc edi
call esi
cmp edi, eax
jl 0x4097c0
push 0x413148
call fcn.0040e420
add esp, 4
xor eax, eax
jmp 0x409810
mov cl, byte [ebp + eax - 0x214d]
mov byte [eax + 0x4201ae], cl
inc eax
test cl, cl
jne 0x409810
xor eax, eax
jmp 0x409830
mov cl, byte [ebp + eax - 0x20cd]
mov byte [eax + 0x42022e], cl
inc eax
test cl, cl
jne 0x409830
xor eax, eax
jmp 0x409850
mov cl, byte [ebp + eax - 0x204d]
mov byte [eax + 0x4202ae], cl
inc eax
test cl, cl
jne 0x409850
xor eax, eax
jmp 0x409870
mov cl, byte [ebp + eax - 0x1fcd]
mov byte [eax + 0x42032e], cl
inc eax
test cl, cl
jne 0x409870
xor eax, eax
jmp 0x409890
mov cl, byte [ebp + eax - 0x1f4d]
mov byte [eax + 0x4203ae], cl
inc eax
test cl, cl
jne 0x409890
mov byte [0x4201a2], 1
mov byte [0x4201a1], 0
xor ecx, ecx
call fcn.00402740
test eax, eax
jne case.0x408f19.32785
cmp byte [0x4201a1], al
jne case.0x408f19.32785
cmp byte [0x4201a2], al
je 0x409914
cmp byte [0x4201ad], al
je 0x409914
push eax
push 0x413cb4
call fcn.00401810
push eax
push 8
push str.RitardoRiconnessionePing
push 0x420478
call fcn.004019b0
imul eax, eax, 0x3e8
add esp, 0x14
push eax
mov eax, dword [0x413970]
push 0x4d3
push eax
call ebx
jmp case.0x408f19.32785
mov ecx, dword [ebp - 0x2c70]
push 0
push 0
push 0x10
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
jmp case.0x408f19.32785
mov edx, dword [0x413974]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x408f19.32785
mov ecx, dword [esi + 0x18]
cmp byte [ecx], 0
mov ebx, dword [esi + 0x68]
je 0x40995d
lea edx, [ebx + 0x715]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409953
mov ecx, dword [esi + 0x1c]
cmp byte [ecx], 0
je 0x40997a
lea edx, [ebx + 0xa17]
jmp 0x409970
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409970
mov ecx, dword [esi + 0x20]
cmp byte [ecx], 0
je 0x409992
lea edx, [ebx + 0xa97]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409988
mov ecx, dword [esi + 0x24]
cmp byte [ecx], 0
je 0x4099aa
lea edx, [ebx + 0xb17]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4099a0
mov ecx, dword [esi + 0x28]
cmp byte [ecx], 0
je 0x4099c2
lea edx, [ebx + 0xb97]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4099b8
mov ecx, dword [esi + 0x2c]
cmp byte [ecx], 0
je 0x4099da
lea edx, [ebx + 0xc17]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4099d0
mov ecx, dword [esi + 0x30]
cmp byte [ecx], 0
je 0x4099f2
lea edx, [ebx + 0xc97]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4099e8
mov esi, dword [esi + 0x34]
cmp byte [esi], 0
je 0x409a0c
mov ecx, esi
lea edx, [ebx + 0xd17]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x409a02
xor ecx, ecx
cmp ebx, ecx
je 0x409c62
cmp byte [ebx + 0x715], cl
lea eax, [ebx + 0x715]
je 0x409c62
lea edx, [ebp - 0x188]
mov dword [0x413160], ecx
mov dword [0x413164], ecx
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x409a40
mov edi, dword [sym.imp.MSVCR100.dll_strchr]
lea esi, [ebp - 0x188]
mov eax, esi
push 0x40
push eax
call edi
add esp, 8
test eax, eax
je 0x409a80
mov edx, ebx
sub edx, esi
mov ecx, esi
mov byte [eax], 0
lea esi, [edx + 0x815]
mov dl, byte [ecx]
mov byte [ecx + esi], dl
inc ecx
test dl, dl
jne 0x409a73
lea esi, [eax + 1]
push 0x40
push esi
call edi
add esp, 8
test eax, eax
je 0x409aa4
lea edx, [ebp - 0x58c]
mov byte [eax], 0
sub edx, esi
mov cl, byte [esi]
mov byte [esi + edx], cl
inc esi
test cl, cl
jne 0x409a97
lea esi, [eax + 1]
push 0x40
push esi
call edi
add esp, 8
test eax, eax
je 0x409ad1
mov edx, ebx
mov byte [eax], 0
sub edx, esi
jmp 0x409ac0
mov cl, byte [esi]
mov byte [esi + edx + 0x896], cl
inc esi
test cl, cl
jne 0x409ac0
lea esi, [eax + 1]
push 0x40
push esi
call edi
add esp, 8
test eax, eax
je 0x409af0
mov byte [eax], 0
sub ebx, esi
mov al, byte [esi]
mov byte [esi + ebx + 0x917], al
inc esi
test al, al
jne 0x409ae2
mov dword [ebp - 0x2c6c], 0
lea ebx, [ebx]
push 0x7f
lea edx, [ebp - 0x83]
push 0
push edx
mov byte [ebp - 0x84], 0
call sub.MSVCR100.dll_memset
push 0x413148
call fcn.0040e410
mov eax, dword [0x413974]
add esp, 0x10
push 0
push 0
push 0x1304
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, eax
xor edi, edi
test ebx, ebx
jle 0x409c3f
mov ecx, edi
call fcn.00402740
test eax, eax
je 0x409c36
mov ecx, dword [ebp - 0x2c6c]
add ecx, 0x61
sub ecx, 0x61
je 0x409bd3
dec ecx
jne 0x409c36
cmp byte [eax + 0x896], cl
lea esi, [eax + 0x896]
je 0x409c36
cmp byte [ebp - 0x84], cl
jne 0x409b9a
lea edx, [ebp - 0x84]
mov eax, esi
sub edx, esi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x409b90
mov ecx, esi
lea eax, [ebp - 0x84]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409bc2
test dl, dl
je 0x409bbe
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409bc2
add eax, 2
add ecx, 2
test dl, dl
jne 0x409ba2
xor eax, eax
jmp 0x409bc7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x409c36
inc dword [0x413164]
jmp 0x409c36
cmp byte [eax + 0x815], 0
lea esi, [eax + 0x815]
je 0x409c36
cmp byte [ebp - 0x84], 0
jne 0x409bff
lea edx, [ebp - 0x84]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x409bf5
mov ecx, esi
lea eax, [ebp - 0x84]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409c27
test dl, dl
je 0x409c23
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409c27
add eax, 2
add ecx, 2
test dl, dl
jne 0x409c07
xor eax, eax
jmp 0x409c2c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x409c36
inc dword [0x413160]
inc edi
cmp edi, ebx
jl 0x409b45
push 0x413148
call fcn.0040e420
mov eax, dword [ebp - 0x2c6c]
inc eax
add esp, 4
mov dword [ebp - 0x2c6c], eax
cmp eax, 2
jne 0x409b00
push 0x413148
call fcn.0040e410
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 - 0x2c68], eax
mov dword [ebp - 0x2c6c], ecx
test eax, eax
jle 0x409e55
jmp 0x409ca0
call fcn.00402740
mov ebx, eax
test ebx, ebx
je 0x409e3c
mov edi, dword [0x413164]
xor eax, eax
cmp dword [0x413160], eax
je 0x409d0d
mov dl, byte [ebx + 0x815]
lea esi, [ebx + 0x815]
test dl, dl
je 0x409d0d
test edi, edi
je 0x409cfa
cmp byte [ebx + 0x896], al
lea ecx, [ebx + 0x896]
je 0x409cfa
push ecx
push esi
lea edx, [ebx + 0x514]
push str.__s____s_
push edx
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0x10
jmp 0x409d35
test dl, dl
je 0x409d0d
push esi
push str.__s_
lea eax, [ebx + 0x514]
push eax
jmp 0x409d2c
test edi, edi
je 0x409d35
cmp byte [ebx + 0x896], al
lea ecx, [ebx + 0x896]
je 0x409d35
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 0x409d60
lea eax, [ebp - 0x394]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409d71
mov ecx, dword [0x4111f0]
mov edx, dword [0x4111f4]
mov dword [eax], ecx
mov cx, word [0x4111f8]
mov dword [eax + 4], edx
mov dl, byte [0x4111fa]
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 0x409de0
push 0x4104e4
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 0x409e3c
mov esi, ebx
call fcn.004050b0
lea edx, [ebp - 0x394]
mov ecx, ebx
call fcn.00404ac0
mov ecx, dword [ebp - 0x2c6c]
inc ecx
mov dword [ebp - 0x2c6c], ecx
cmp ecx, dword [ebp - 0x2c68]
jl 0x409ca0
push 0x413148
call fcn.0040e420
add esp, 4
call fcn.00407e60
jmp case.0x408f19.32785
mov ecx, dword [esi + 0x70]
mov eax, dword [esi + 0x68]
mov dword [eax + 0x11d8], ecx
mov edx, dword [esi + 0x74]
mov dword [eax + 0x11dc], edx
mov ecx, dword [esi + 0x78]
mov dword [eax + 0x11e0], ecx
mov esi, dword [esi + 0x7c]
mov dword [eax + 0x11e4], esi
test edx, edx
jne case.0x409eb2.10
cmp esi, 1
jne 0x409ea3
mov eax, 0x14d
jmp 0x409eda
lea eax, [ecx - 0xa]
cmp eax, 0x14
ja case.0x409eb2.11
movzx edx, byte [eax + 0x40a61c]
jmp dword [edx*4 + 0x40a608]
mov eax, 0x13b
jmp 0x409eda
mov eax, 0x14e
jmp 0x409eda
mov eax, 0x147
jmp 0x409eda
mov eax, 0x14b
jmp 0x409eda
mov eax, 0x6b
push 0
push 0x10
push 0x10
movzx esi, ax
mov eax, dword [0x41396c]
push 1
push esi
push eax
call dword [sym.imp.USER32.dll_LoadImageA]
mov ecx, dword [0x413970]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push eax
push 0
push 0x80
push ecx
call ebx
mov edx, dword [0x41396c]
push esi
push edx
call dword [sym.imp.USER32.dll_LoadIconA]
push eax
mov eax, dword [0x413970]
push 1
push 0x80
push eax
call ebx
call fcn.00404a10
jmp case.0x408f19.32785
push 1
call fcn.00405240
add esp, 4
xor ecx, ecx
cmp esi, eax
sete cl
pop edi
pop esi
pop ebx
mov eax, ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040e620
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [esi + 0x68]
mov eax, dword [esi + 0xdbc]
xor edx, edx
cmp dword [ebp + 0x10], 1
push 0
sete dl
push 0
push eax
mov dword [esi + 0xda0], edx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x408f19.32785
mov esi, dword [esi + 0x68]
mov eax, 1
cmp dword [ebp + 0x10], eax
jne 0x409fc0
mov ecx, dword [0x413970]
push 0x4d2
push ecx
call fcn.0040e330
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.0x408f19.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.0x408f19.32785
mov eax, dword [esi + 0x68]
mov esi, dword [esi + 0x14]
lea edx, [eax + 0xdd8]
mov cl, byte [esi]
mov byte [edx], cl
inc esi
inc edx
test cl, cl
jne 0x40a000
call fcn.00406910
jmp case.0x408f19.32785
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x40a026
mov dword [0x4139a0], esi
jmp case.0x408f19.32785
cmp eax, 1
jne case.0x408f19.32785
mov dword [0x4139a4], esi
jmp case.0x408f19.32785
mov eax, dword [ebp - 0x2c74]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0x68]
mov dword [esi + 0xdc0], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0xdc4], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0xdc8], edx
mov ecx, dword [eax + 0x10]
mov dword [esi + 0xdcc], ecx
mov edx, dword [eax + 0x80]
mov eax, dword [esi + 0xdc4]
push eax
mov dword [esi + 0xdd0], edx
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [esi + 0xdc4]
push eax
push str.oldparent
push ecx
call dword [sym.imp.USER32.dll_SetPropA]
mov edx, dword [0x413970]
mov eax, dword [esi + 0xdc4]
push edx
push eax
call dword [sym.imp.USER32.dll_SetParent]
call fcn.00405280
call fcn.00404060
call fcn.004040e0
cmp byte [esi + 0x400], 1
jne case.0x408f19.32785
mov ecx, dword [0x413970]
push 0x10000
push 0xffffffffffffffff
push 0x8fb8
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov byte [esi + 0x400], 0
jmp case.0x408f19.32785
push 0x413148
mov dword [ebp - 0x2c68], 0
call fcn.0040e410
mov edx, dword [0x413974]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 4
push 0
push 0
push 0x1304
push edx
call ebx
mov edi, eax
test esi, esi
je 0x40a12a
push esi
call fcn.00402790
add esp, 4
mov esi, eax
jmp 0x40a12d
mov esi, dword [ebp + 0x10]
cmp esi, 0xffffffff
jle 0x40a1a8
cmp esi, edi
jg 0x40a1a8
mov eax, dword [0x413974]
push 0
push 0
push 0x130b
push eax
call ebx
push 0
mov edi, eax
call fcn.00405240
mov ecx, dword [eax + 0xdbc]
add esp, 4
mov dword [ebp - 0x2c68], ecx
cmp esi, edi
je 0x40a1a8
cmp byte [eax + 0x401], 0
jne 0x40a171
call fcn.004051d0
mov edx, dword [0x413974]
push 0
push esi
push 0x130c
push edx
call ebx
push 0
call fcn.00405240
add esp, 4
push 0
mov esi, eax
push 0
push 1
mov ecx, esi
call fcn.00407730
add esp, 0xc
call fcn.00404060
call fcn.004040e0
push 0x413148
call fcn.0040e420
mov eax, dword [ebp - 0x2c68]
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040e620
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [0x413974]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
xor ebx, ebx
cmp dword [ebp + 0x10], 0x2b
push 0
sete bl
push 0
push 0x130b
push eax
lea ebx, [ebx + ebx - 1]
call edi
push 0x413148
mov esi, eax
call fcn.0040e410
mov ecx, dword [0x413974]
add esp, 4
push 0
push 0
push 0x1304
push ecx
call edi
mov ecx, esi
mov edi, eax
call fcn.00402740
call fcn.004051d0
test ebx, ebx
jle 0x40a22f
lea eax, [esi + ebx]
cdq
idiv edi
mov esi, edx
jmp 0x40a236
add esi, ebx
jns 0x40a236
lea esi, [edi - 1]
mov ecx, esi
call fcn.00402740
test eax, eax
je 0x40a221
mov edx, dword [0x413974]
push 0
push esi
push 0x130c
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
call fcn.00405240
push 0
mov esi, eax
push 0
push 1
mov ecx, esi
call fcn.00407730
call fcn.00404060
call fcn.004040e0
push 0x413148
call fcn.0040e420
add esp, 0x14
jmp case.0x408f19.32785
push 1
call fcn.00405240
push 0x413148
mov edi, eax
call fcn.0040e410
mov eax, dword [0x413974]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 8
xor esi, esi
push esi
push esi
push 0x1304
push eax
call ebx
test eax, eax
jle 0x40a3c1
lea ecx, [ecx]
mov ecx, esi
call fcn.00402740
test eax, eax
je 0x40a2e3
cmp eax, edi
je 0x40a2e3
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax + 0xdc0]
push 0
push ecx
push 0x8059
push edx
call ebx
mov eax, dword [0x413974]
push 0
push 0
push 0x1304
push eax
inc esi
call ebx
cmp esi, eax
jl 0x40a2c0
jmp 0x40a3c1
mov ecx, dword [ebp + 0x10]
push ecx
push eax
mov edi, esi
call fcn.00405cc0
jmp 0x40a53c
sub eax, 0x87d0
je 0x40a52e
sub eax, 0x7e8
je 0x40a3fd
dec eax
jne case.0x408f19.32785
movzx edx, si
push 0x413148
mov dword [ebp - 0x2c68], edx
call fcn.0040e410
mov eax, dword [0x413974]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 4
push 0
push 0
push 0x1304
push eax
call edi
lea ebx, [eax - 1]
xor esi, esi
test ebx, ebx
jle 0x40a3c1
mov eax, dword [ebp - 0x2c68]
test eax, eax
je 0x40a370
cmp ebx, eax
jne 0x40a3bc
mov ecx, esi
call fcn.00402740
test eax, eax
je 0x40a3bc
mov ecx, dword [ebp + 0x10]
cmp ecx, 1
jne 0x40a397
cmp byte [eax + 0x401], 0
je 0x40a3bc
lea ecx, [esi + 1]
movzx edx, cx
push edx
push 1
jmp 0x40a3ae
cmp ecx, 0xffffffff
jne 0x40a3bc
cmp byte [eax + 0x401], 0
jne 0x40a3bc
lea ecx, [esi + 1]
movzx edx, cx
push edx
push 0xffffffffffffffff
mov eax, dword [ebp - 0x2c70]
push 0x8fb8
push eax
call edi
inc esi
cmp esi, ebx
jl 0x40a362
push 0x413148
call fcn.0040e420
add esp, 4
mov ecx, dword [ebp - 0x2c74]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0x2c70]
push edx
push eax
push ecx
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040e620
mov esp, ebp
pop ebp
ret 0xc
movzx ebx, si
lea ecx, [ebx - 1]
shr esi, 0x10
test ecx, ecx
js 0x40a41b
call fcn.00402740
mov edi, eax
test edi, edi
je 0x40a519
jmp 0x40a450
test ebx, ebx
jne 0x40a513
push 1
call fcn.00405240
mov edi, eax
add esp, 4
test edi, edi
je 0x40a519
mov edx, dword [edi + 0xdbc]
push edx
call fcn.00402790
mov ebx, eax
add esp, 4
test ebx, ebx
js 0x40a519
push 0x413148
call fcn.0040e410
mov eax, dword [ebp + 0x10]
add esp, 4
cmp eax, 1
jne 0x40a4ac
cmp byte [edi + 0x401], 0
je 0x40a4e0
mov eax, dword [edi + 0xdd4]
mov esi, dword [sym.imp.USER32.dll_IsWindowEnabled]
push eax
call esi
test eax, eax
jne 0x40a496
mov ecx, dword [0x413970]
push eax
dec ebx
push ebx
push 0x8042
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [edi + 0xdd4]
push edx
call esi
test eax, eax
je 0x40a4e0
mov eax, edi
call fcn.00408a20
jmp 0x40a4e0
cmp eax, 0xffffffff
jne 0x40a4e0
cmp byte [edi + 0x401], 0
jne 0x40a4e0
cmp esi, 1
jne 0x40a4ce
mov eax, dword [0x413974]
push eax
push edi
call fcn.00408bb0
add esp, 8
push 1
push 0
push 0
push 0
mov ecx, edi
call fcn.00407430
add esp, 0x10
mov ecx, dword [0x413974]
push 1
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
push 0x413148
call fcn.0040e420
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040e620
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebp - 0x2c78]
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040e620
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp + 0x10]
push edx
push 0x87d0
call fcn.00405850
mov ecx, dword [ebp - 4]
add esp, 8
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040e620
mov esp, ebp
pop ebp
ret 0xc