Function at 0x4033b0
Capabilities:
Get graphical window text
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff7fc
xor eax, eax
push ebx
push esi
push edi
lea edi, [ebp - 0x12c]
mov esi, dword [ebp + 8]
mov dword [ebp - 0xc], eax
jmp 0x404476
push 0x104
push 0
push edi
call fcn.00403080
add esp, 8
push eax
lea edx, [ebp - 0x334]
push edx
call fcn.00406a44
add esp, 0xc
push 0x104
push 1
push edi
call fcn.00403080
add esp, 8
push eax
lea ecx, [ebp - 0x438]
push ecx
call fcn.00406a44
add esp, 0xc
cmp byte [ebp - 0x334], 0x7b
jne 0x403431
push edi
call fcn.00402d84
pop ecx
test eax, eax
je 0x404476
cmp byte [edi], 0x7d
jne 0x403418
jmp 0x404476
push 0x40e527
lea eax, [ebp - 0x334]
push eax
call fcn.004069fc
add esp, 8
test eax, eax
je 0x403456
cmp dword [0x40e1dc], 0
je 0x4034f8
mov dword [0x40e1dc], 1
cmp dword [0x40e22c], 0
je 0x403483
mov edx, dword [0x40e22c]
push edx
mov ecx, dword [0x4108b4]
push ecx
call sub.USER32.dll_KillTimer
xor eax, eax
mov dword [0x40e22c], eax
cmp dword [0x40e230], 0
je 0x4034a0
mov edx, dword [0x40e230]
push edx
call sub.GDI32.dll_DeleteObject
xor ecx, ecx
mov dword [0x40e230], ecx
push 0xffffffffffffffeb
push esi
call sub.USER32.dll_GetWindowLongA
push eax
call fcn.0040bfb8
pop ecx
mov eax, dword [0x40e218]
push eax
call fcn.0040bfb8
pop ecx
push 0
push esi
call sub.USER32.dll_EndDialog
xor esi, esi
mov eax, dword [0x4108b4]
push eax
call sub.USER32.dll_DestroyWindow
mov dword [ebp - 0x28], 0x410ff4
xor ebx, ebx
jmp 0x4034eb
mov eax, dword [ebp - 0x28]
mov edx, dword [eax]
push edx
call sub.GDI32.dll_DeleteObject
inc ebx
add dword [ebp - 0x28], 4
cmp ebx, dword [0x40e228]
jl 0x4034db
jmp 0x404476
push 0x40e52c
lea ecx, [ebp - 0x334]
push ecx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403578
cmp dword [0x40e22c], 0
je 0x403533
mov eax, dword [0x40e22c]
push eax
mov edx, dword [0x4108b4]
push edx
call sub.USER32.dll_KillTimer
xor ecx, ecx
mov dword [0x40e22c], ecx
cmp dword [0x40e230], 0
je 0x40354f
mov eax, dword [0x40e230]
push eax
call sub.GDI32.dll_DeleteObject
xor edx, edx
mov dword [0x40e230], edx
push 0xffffffffffffffeb
push esi
call sub.USER32.dll_GetWindowLongA
push eax
call fcn.0040bfb8
pop ecx
push esi
call sub.USER32.dll_GetParent
mov dword [0x4108bc], eax
push 0
push esi
call sub.USER32.dll_EndDialog
xor esi, esi
jmp 0x404476
push 0x40e536
lea eax, [ebp - 0x334]
push eax
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403656
cmp dword [0x40e22c], 0
je 0x4035b7
mov edx, dword [0x40e22c]
push edx
mov ecx, dword [0x4108b4]
push ecx
call sub.USER32.dll_KillTimer
xor eax, eax
mov dword [0x40e22c], eax
cmp dword [0x40e230], 0
je 0x4035d4
mov edx, dword [0x40e230]
push edx
call sub.GDI32.dll_DeleteObject
xor ecx, ecx
mov dword [0x40e230], ecx
push 1
lea eax, [ebp - 0x438]
push eax
call fcn.00406968
pop ecx
inc eax
push eax
call fcn.0040b984
add esp, 8
mov ebx, eax
xor eax, eax
or ecx, 0xffffffff
push esi
push edi
lea edi, [ebp - 0x438]
mov esi, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push ebx
push sym.SFX.exe_DlgProc
test esi, esi
je 0x403630
push esi
call sub.USER32.dll_IsWindow
test eax, eax
je 0x403630
mov eax, esi
jmp 0x403635
mov eax, dword [0x4108b4]
push eax
push ebx
mov edx, dword [0x4108ac]
push edx
call sub.USER32.dll_DialogBoxParamA
inc eax
jne 0x404476
push ebx
call fcn.0040bfb8
pop ecx
jmp 0x404476
push 0x40e53d
lea ecx, [ebp - 0x334]
push ecx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403795
cmp byte [ebp - 0x438], 0x24
jne 0x404476
lea eax, [ebp - 0x437]
push eax
call fcn.0040b7fc
pop ecx
push eax
push esi
call sub.USER32.dll_GetDlgItem
mov edx, dword [0x412ff4]
mov dword [edx*4 + 0x411ff4], eax
push 2
push edi
call fcn.00403080
add esp, 8
push eax
call fcn.0040b7fc
pop ecx
xor ebx, ebx
mov bl, al
push 3
push edi
call fcn.00403080
add esp, 8
push eax
call fcn.0040b7fc
pop ecx
and eax, 0xff
movzx edx, ax
shl edx, 8
or ebx, edx
push 4
push edi
call fcn.00403080
add esp, 8
push eax
call fcn.0040b7fc
pop ecx
xor ecx, ecx
mov cl, al
mov eax, dword [0x412ff4]
shl ecx, 0x10
or ebx, ecx
mov dword [eax*4 + 0x4127f4], ebx
push 5
push edi
call fcn.00403080
add esp, 8
push eax
call fcn.0040b7fc
pop ecx
mov edx, dword [0x412ff4]
mov dword [edx*4 + 0x412bf4], eax
cmp dword [0x40e22c], 0
je 0x403736
mov ecx, dword [0x40e22c]
push ecx
mov eax, dword [0x4108b4]
push eax
call sub.USER32.dll_KillTimer
cmp dword [0x40e230], 0
je 0x40374b
mov edx, dword [0x40e230]
push edx
call sub.GDI32.dll_DeleteObject
push 4
call sub.USER32.dll_GetSysColor
mov ebx, eax
mov eax, dword [0x412ff4]
mov dword [eax*4 + 0x4123f4], ebx
push ebx
mov edx, dword [0x412ff4]
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x40e230], eax
inc dword [0x412ff4]
push 0
push 0xc8
mov ecx, dword [0x40e22c]
push ecx
mov eax, dword [0x4108b4]
push eax
call sub.USER32.dll_SetTimer
jmp 0x404476
push 0x40e545
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x40393c
cmp byte [ebp - 0x438], 0x24
jne 0x404476
lea ecx, [ebp - 0x437]
push ecx
call fcn.0040b7fc
pop ecx
mov dword [ebp - 0x10], eax
push 2
push edi
call fcn.00403080
add esp, 8
push esi
push edi
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
lea esi, [ebp - 0x5a0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push 3
push edi
call fcn.00403080
add esp, 8
push eax
call fcn.0040b7fc
pop ecx
mov dword [ebp - 0x1c], eax
push 4
push edi
call fcn.00403080
add esp, 8
push esi
push edi
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
lea esi, [ebp - 0x604]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x604]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push eax
call fcn.0040b71c
pop ecx
mov ebx, 1
push 0x46
lea eax, [ebp - 0x604]
push eax
call fcn.00406914
add esp, 8
test eax, eax
jne 0x403873
dec ebx
mov dword [ebp - 0x20], ebx
push 0x49
lea edx, [ebp - 0x604]
push edx
call fcn.00406914
add esp, 8
test eax, eax
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov ebx, 0x320
push 0x42
lea eax, [ebp - 0x604]
push eax
call fcn.00406914
add esp, 8
test eax, eax
jne 0x4038b2
add ebx, 0xfffffe70
push 0x4c
lea edx, [ebp - 0x604]
push edx
call fcn.00406914
add esp, 8
test eax, eax
je 0x4038cc
mov ebx, 0xc8
lea eax, [ebp - 0x5a0]
push eax
mov edx, dword [ebp - 0x20]
push edx
push 1
push 0
push 0
push 0
push 0
push 0
mov ecx, dword [ebp - 0x24]
push ecx
push ebx
push 0
push 0
push 0
mov eax, dword [ebp - 0x1c]
neg eax
push eax
call sub.GDI32.dll_CreateFontA
mov ebx, eax
test ebx, ebx
je 0x404476
mov edx, dword [0x40e228]
mov dword [edx*4 + 0x410ff4], ebx
inc dword [0x40e228]
push 1
push ebx
push 0x30
cmp dword [ebp - 0x10], 0
jne 0x403925
mov ecx, esi
jmp 0x403931
mov eax, dword [ebp - 0x10]
push eax
push esi
call sub.USER32.dll_GetDlgItem
mov ecx, eax
push ecx
call sub.USER32.dll_SendMessageA
jmp 0x404476
push 0x40e54d
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403ab7
cmp byte [ebp - 0x438], 0x24
jne 0x404476
lea eax, [ebp - 0x437]
push eax
call fcn.0040b7fc
pop ecx
mov dword [ebp - 0x10], eax
push 2
push edi
call fcn.00403080
add esp, 8
push esi
push edi
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
lea esi, [ebp - 0x438]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push 0x2c
push edi
call fcn.00406914
add esp, 8
test eax, eax
je 0x4039e0
lea eax, [ebp - 0x438]
push eax
cmp dword [ebp - 0x10], 0
jne 0x4039c9
mov edx, esi
jmp 0x4039d5
mov ecx, dword [ebp - 0x10]
push ecx
push esi
call sub.USER32.dll_GetDlgItem
mov edx, eax
push edx
call sub.USER32.dll_SetWindowTextA
jmp 0x404476
push edi
call fcn.00402d84
pop ecx
test eax, eax
je 0x403a88
cmp byte [edi], 0x7b
jne 0x403a88
push 0x10000
call fcn.0040c0c0
pop ecx
mov dword [ebp - 8], eax
test eax, eax
je 0x403a88
mov ecx, dword [ebp - 8]
mov byte [ecx], 0
jmp 0x403a78
mov eax, dword [ebp - 8]
cmp byte [eax], 0
je 0x403a2b
push 0x40e555
mov edx, dword [ebp - 8]
push edx
call fcn.004068d8
add esp, 8
push 0x22
push edi
call fcn.00406af4
add esp, 8
mov ebx, eax
test eax, eax
je 0x403a4f
push edi
call fcn.00406968
mov edx, ebx
dec eax
sub edx, edi
pop ecx
cmp eax, edx
jne 0x403a4f
mov byte [ebx], 0
push 0x22
push edi
call fcn.00406914
add esp, 8
mov ebx, eax
test eax, eax
je 0x403a78
lea edx, [ebx + 1]
push edx
call fcn.00402db0
pop ecx
inc ebx
push ebx
mov eax, dword [ebp - 8]
push eax
call fcn.004068d8
add esp, 8
push edi
call fcn.00402d84
pop ecx
test eax, eax
je 0x403a88
cmp byte [edi], 0x7d
jne 0x403a12
mov edx, dword [ebp - 8]
push edx
cmp dword [ebp - 0x10], 0
jne 0x403a96
mov ecx, esi
jmp 0x403aa2
mov eax, dword [ebp - 0x10]
push eax
push esi
call sub.USER32.dll_GetDlgItem
mov ecx, eax
push ecx
call sub.USER32.dll_SetWindowTextA
mov edx, dword [ebp - 8]
push edx
call fcn.0040bfb8
pop ecx
jmp 0x404476
push 0x40e558
lea eax, [ebp - 0x334]
push eax
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403b3c
lea edx, [ebp - 0x230]
push edx
call fcn.00402d84
pop ecx
test eax, eax
je 0x404476
cmp byte [ebp - 0x230], 0x7b
jne 0x404476
lea ecx, [ebp - 0x438]
push ecx
call fcn.00401188
pop ecx
mov dword [ebp - 0xc], eax
test eax, eax
je 0x403b11
push esi
call fcn.004033b0
pop ecx
jmp 0x404476
mov ebx, 1
jmp 0x403b24
mov al, byte [edi]
cmp al, 0x7b
jne 0x403b1f
inc ebx
cmp al, 0x7d
jne 0x403b24
dec ebx
test ebx, ebx
je 0x404476
push edi
call fcn.00402d84
pop ecx
test eax, eax
jne 0x403b18
jmp 0x404476
push 0x40e560
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403bc4
lea ecx, [ebp - 0x230]
push ecx
call fcn.00402d84
pop ecx
test eax, eax
je 0x404476
cmp byte [ebp - 0x230], 0x7b
jne 0x404476
lea eax, [ebp - 0x438]
push eax
push esi
call fcn.00404494
add esp, 8
mov dword [ebp - 0xc], eax
test eax, eax
je 0x403b99
push esi
call fcn.004033b0
pop ecx
jmp 0x404476
mov ebx, 1
jmp 0x403bac
mov al, byte [edi]
cmp al, 0x7b
jne 0x403ba7
inc ebx
cmp al, 0x7d
jne 0x403bac
dec ebx
test ebx, ebx
je 0x404476
push edi
call fcn.00402d84
pop ecx
test eax, eax
jne 0x403ba0
jmp 0x404476
push 0x40e563
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403c3b
lea ecx, [ebp - 0x230]
push ecx
call fcn.00402d84
pop ecx
test eax, eax
je 0x404476
cmp byte [ebp - 0x230], 0x7b
jne 0x404476
cmp dword [ebp - 0xc], 0
jne 0x403c10
push esi
call fcn.004033b0
pop ecx
jmp 0x404476
mov ebx, 1
jmp 0x403c23
mov al, byte [edi]
cmp al, 0x7b
jne 0x403c1e
inc ebx
cmp al, 0x7d
jne 0x403c23
dec ebx
test ebx, ebx
je 0x404476
push edi
call fcn.00402d84
pop ecx
test eax, eax
jne 0x403c17
jmp 0x404476
push 0x40e568
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403c65
lea ecx, [ebp - 0x438]
push ecx
call fcn.00408e88
pop ecx
jmp 0x404476
push 0x40e56f
lea eax, [ebp - 0x334]
push eax
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403d02
push esi
push edi
mov esi, 0x40e57b
lea edi, [ebp - 0x53c]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
lea edx, [ebp - 0x438]
push edx
lea ecx, [ebp - 0x53c]
push ecx
call fcn.004068d8
add esp, 8
push 0x40e589
lea eax, [ebp - 0x53c]
push eax
call fcn.004068d8
add esp, 8
push 0
push 0x1388
push 0x4050
push 0
push 0
mov edx, dword [0x40e1d4]
push edx
lea ecx, [ebp - 0x53c]
push ecx
call fcn.00406968
pop ecx
inc eax
push eax
lea eax, [ebp - 0x53c]
push eax
call sub.USER32.dll_DdeClientTransaction
push eax
call sub.USER32.dll_DdeFreeDataHandle
jmp 0x404476
push 0x40e58c
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403d9f
push esi
push edi
mov esi, 0x40e598
lea edi, [ebp - 0x53c]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
lea edx, [ebp - 0x438]
push edx
lea ecx, [ebp - 0x53c]
push ecx
call fcn.004068d8
add esp, 8
push 0x40e5a6
lea eax, [ebp - 0x53c]
push eax
call fcn.004068d8
add esp, 8
push 0
push 0x1388
push 0x4050
push 0
push 0
mov edx, dword [0x40e1d4]
push edx
lea ecx, [ebp - 0x53c]
push ecx
call fcn.00406968
pop ecx
inc eax
push eax
lea eax, [ebp - 0x53c]
push eax
call sub.USER32.dll_DdeClientTransaction
push eax
call sub.USER32.dll_DdeFreeDataHandle
jmp 0x404476
push 0x40e5a9
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403f2e
lea ecx, [ebp - 0x438]
push ecx
call fcn.00401808
pop ecx
push 2
push edi
call fcn.00403080
add esp, 8
push esi
push edi
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
lea esi, [ebp - 0x53c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x53c], 0
pop edi
pop esi
je 0x403eb2
push 0x40e5b1
lea eax, [ebp - 0x438]
push eax
call fcn.004068d8
add esp, 8
lea edx, [ebp - 0x53c]
push edx
lea ecx, [ebp - 0x438]
push ecx
call fcn.004068d8
add esp, 8
push 3
push edi
call fcn.00403080
add esp, 8
push esi
push edi
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
lea esi, [ebp - 0x53c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x53c], 0
pop edi
pop esi
je 0x403eb2
push 0x104
lea eax, [ebp - 0x53c]
push eax
lea edx, [ebp - 0x53c]
push edx
call sub.KERNEL32.dll_GetShortPathNameA
push 0x40e5b3
lea ecx, [ebp - 0x438]
push ecx
call fcn.004068d8
add esp, 8
lea eax, [ebp - 0x53c]
push eax
lea edx, [ebp - 0x438]
push edx
call fcn.004068d8
add esp, 8
push esi
push edi
lea edi, [ebp - 0x53c]
mov esi, 0x40e5b5
mov eax, edi
lea edx, [ebp - 0x438]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
push edx
lea ecx, [ebp - 0x53c]
push ecx
call fcn.004068d8
add esp, 8
push 0x40e5bf
lea eax, [ebp - 0x53c]
push eax
call fcn.004068d8
add esp, 8
push 0
push 0x1388
push 0x4050
push 0
push 0
mov edx, dword [0x40e1d4]
push edx
lea ecx, [ebp - 0x53c]
push ecx
call fcn.00406968
pop ecx
inc eax
push eax
lea eax, [ebp - 0x53c]
push eax
call sub.USER32.dll_DdeClientTransaction
push eax
call sub.USER32.dll_DdeFreeDataHandle
jmp 0x404476
push 0x40e5c2
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403f7d
push 2
push edi
call fcn.00403080
add esp, 8
push eax
call fcn.00406968
pop ecx
push eax
push 2
push edi
call fcn.00403080
add esp, 8
lea ecx, [ebp - 0x438]
push eax
push 1
push ecx
push 0x80000000
call sub.ADVAPI32.dll_RegSetValueA
jmp 0x404476
push 0x40e5c9
lea eax, [ebp - 0x334]
push eax
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x403fe5
cmp dword [0x40e220], 0
jne 0x403fe5
cmp byte [ebp - 0x438], 0x24
jne 0x403fc2
lea edx, [ebp - 0x437]
push edx
call fcn.0040b7fc
pop ecx
push eax
push esi
call sub.USER32.dll_GetDlgItem
mov dword [0x4108b8], eax
jmp 0x403fca
xor ecx, ecx
mov dword [0x4108b8], ecx
mov dword [0x40e220], 1
call fcn.00402558
xor eax, eax
mov dword [0x40e220], eax
jmp 0x404476
push 0x40e5d1
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x404025
cmp byte [ebp - 0x438], 0
jne 0x404013
push 2
call fcn.004020e4
pop ecx
jmp 0x404476
lea ecx, [ebp - 0x438]
push ecx
call fcn.00402038
pop ecx
jmp 0x404476
push 0x40e5d6
lea eax, [ebp - 0x334]
push eax
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x404065
cmp byte [ebp - 0x438], 0
jne 0x404053
push 0
call fcn.0040243c
pop ecx
jmp 0x404476
lea edx, [ebp - 0x438]
push edx
call fcn.0040243c
pop ecx
jmp 0x404476
push 0x40e5de
lea ecx, [ebp - 0x334]
push ecx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x404093
push 0
lea eax, [ebp - 0x438]
push eax
call fcn.00404608
add esp, 8
jmp 0x404476
push 0x40e5e3
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x4040c1
push 1
lea ecx, [ebp - 0x438]
push ecx
call fcn.00404608
add esp, 8
jmp 0x404476
push 0x40e5e9
lea eax, [ebp - 0x334]
push eax
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x40417c
cmp byte [ebp - 0x438], 0x24
je 0x404114
push esi
push edi
xor eax, eax
lea edi, [ebp - 0x438]
or ecx, 0xffffffff
mov esi, 0x410bf0
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x40413a
push 0x410bf0
push 0x104
push 0xd
lea eax, [ebp - 0x437]
push eax
call fcn.0040b7fc
pop ecx
push eax
push esi
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_SendMessageA
push 0x410bf0
call fcn.00406968
pop ecx
mov ebx, eax
test ebx, ebx
jle 0x404476
mov al, byte [ebx + 0x410bef]
cmp al, 0x5c
je 0x404476
cmp al, 0x3a
je 0x404476
push 0x40e5f1
push 0x410bf0
call fcn.004068d8
add esp, 8
jmp 0x404476
push 0x40e5f3
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x404209
cmp byte [ebp - 0x438], 0x24
je 0x4041cc
push esi
push edi
xor eax, eax
lea edi, [ebp - 0x438]
or ecx, 0xffffffff
lea esi, [ebp - 0x804]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x4041f4
lea eax, [ebp - 0x804]
push eax
push 0x200
push 0xd
lea edx, [ebp - 0x437]
push edx
call fcn.0040b7fc
pop ecx
push eax
push esi
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_SendMessageA
lea ecx, [ebp - 0x804]
push ecx
push esi
call fcn.004049c8
add esp, 8
jmp 0x404476
push 0x40e5fe
lea eax, [ebp - 0x334]
push eax
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x404286
cmp byte [ebp - 0x438], 0x24
je 0x40425b
push esi
push edi
xor eax, eax
lea edi, [ebp - 0x438]
or ecx, 0xffffffff
mov esi, 0x410f1c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x404476
push 0x410f1c
push 0x80
push 0xd
lea eax, [ebp - 0x437]
push eax
call fcn.0040b7fc
pop ecx
push eax
push esi
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_SendMessageA
jmp 0x404476
push 0x40e60a
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x404303
cmp byte [ebp - 0x438], 0x24
je 0x4042d8
push esi
push edi
xor eax, eax
lea edi, [ebp - 0x438]
or ecx, 0xffffffff
mov esi, 0x410d14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x404476
push 0x410d14
push 0x104
push 0xd
lea eax, [ebp - 0x437]
push eax
call fcn.0040b7fc
pop ecx
push eax
push esi
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_SendMessageA
jmp 0x404476
push 0x40e615
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x40438d
lea ecx, [ebp - 0x438]
push ecx
call fcn.0040b7fc
pop ecx
xor ebx, ebx
mov bl, al
push 2
push edi
call fcn.00403080
add esp, 8
push eax
call fcn.0040b7fc
pop ecx
and eax, 0xff
movzx edx, ax
shl edx, 8
or ebx, edx
push 3
push edi
call fcn.00403080
add esp, 8
push eax
call fcn.0040b7fc
pop ecx
xor ecx, ecx
mov cl, al
shl ecx, 0x10
or ebx, ecx
mov dword [0x40e224], ebx
mov eax, dword [0x4108b0]
push eax
call sub.GDI32.dll_DeleteObject
mov edx, dword [0x40e224]
push edx
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x4108b0], eax
jmp 0x404476
push 0x40e61d
lea ecx, [ebp - 0x334]
push ecx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x4043c6
push 1
lea eax, [ebp - 0x437]
push eax
call fcn.0040b7fc
pop ecx
push eax
push esi
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_EnableWindow
jmp 0x404476
push 0x40e624
lea edx, [ebp - 0x334]
push edx
call fcn.004069fc
add esp, 8
test eax, eax
jne 0x4043fc
push 0
lea ecx, [ebp - 0x437]
push ecx
call fcn.0040b7fc
pop ecx
push eax
push esi
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_EnableWindow
jmp 0x404476
push 0x3d
push edi
call fcn.00406914
add esp, 8
mov ebx, eax
test eax, eax
je 0x404476
mov byte [ebx], 0
lea eax, [ebx - 1]
jmp 0x404419
mov byte [eax], 0
dec eax
movsx edx, byte [eax]
test byte [edx + 0x40f54d], 1
je 0x404429
cmp eax, edi
ja 0x404415
inc ebx
jmp 0x40442d
inc ebx
mov al, byte [ebx]
movsx edx, al
test byte [edx + 0x40f54d], 1
je 0x40443f
test al, al
jne 0x40442c
cmp byte [edi], 0x24
jne 0x404462
push ebx
push esi
call fcn.00404494
add esp, 8
push eax
lea ecx, [edi + 1]
push ecx
call fcn.0040b7fc
pop ecx
push eax
push esi
call sub.USER32.dll_CheckDlgButton
jmp 0x404476
push ebx
push esi
call fcn.00404494
add esp, 8
push eax
push edi
call fcn.00404538
add esp, 8
push edi
call fcn.00402d84
pop ecx
test eax, eax
je 0x40448a
cmp byte [edi], 0x7d
jne 0x4033cf
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret