Function at 0x4015b0
Capabilities:
Check if file exists
Copy file
Create shortcut via ishelllink
Delete file
Delete registry value
Enumerate files on windows
Get file attributes
Move file
Query environment variable
Query or enumerate registry key
Query or enumerate registry value
Read .ini file
Read file on windows
Set current directory
Set file attributes
Set registry value

Disassembly:
mov eax, 0x12d0
call fcn.0040a750
mov eax, dword [esp + 0x12d4]
mov edx, dword [0x437518]
push ebx
push ebp
movdqu xmm1, xmmword [eax]
xor ebx, ebx
mov dword [esp + 0xc], edx
movq xmm0, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
movq qword [esp + 0x2c], xmm0
movdqa xmm0, xmm1
push esi
psrldq xmm0, 4
push edi
movd edi, xmm0
movdqa xmm0, xmm1
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x28]
psrldq xmm0, 8
mov ebp, edi
movd ecx, xmm0
mov dword [0x40e104], eax
movd eax, xmm1
mov esi, ecx
shl ebp, 0xc
shl esi, 0xc
add ebp, section..ndata
mov dword [esp + 0x44], eax
add esi, section..ndata
add eax, 0xfffffffe
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x40], esi
movdqu xmmword [esp + 0x24], xmm1
mov dword [esp + 0x2c], ecx
cmp eax, 0xc6
ja case.0x401653.65
movzx eax, byte [eax + 0x403d0c]
jmp dword [eax*4 + 0x403c08]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
push 0
push edi
call fcn.00407bd0
pop edi
pop esi
pop ebp
mov eax, 0x7fffffff
pop ebx
add esp, 0x12d0
ret 4
inc dword [0x43750c]
test edx, edx
je 0x401695
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
pop edi
pop esi
pop ebp
mov eax, 0x7fffffff
pop ebx
add esp, 0x12d0
ret 4
push edi
call fcn.00403f50
dec eax
push 0
push eax
call fcn.004013c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
push 0
push edi
call fcn.00407bd0
xor ebx, ebx
add dword [0x439628], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
push 0
call fcn.00403e10
add esp, 4
mov dword [esp + 0x20], edx
mov ecx, 1
cmp eax, ecx
cmovg ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp case.0x401653.65
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp case.0x401653.65
cmp dword [esp + 0x30], ebx
jne 0x40173d
mov eax, dword [edi*4 + 0x439620]
push 1
mov dword [edi*4 + 0x4395e0], eax
call fcn.00403e10
mov ecx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x2c]
add esp, 4
mov dword [eax*4 + 0x439620], ecx
jmp case.0x401653.65
mov eax, dword [edi*4 + 0x4395e0]
mov dword [edi*4 + 0x439620], eax
jmp case.0x401653.65
mov esi, dword [esp + 0x30]
xor eax, eax
pop edi
mov edx, dword [esi*4 + 0x439620]
test edx, edx
sete al
mov ecx, dword [esp + eax*4 + 0x24]
mov eax, dword [esp + 0x30]
and eax, edx
mov dword [esi*4 + 0x439620], eax
mov eax, ecx
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
push dword [ecx*4 + 0x439620]
push ebp
call fcn.004086e0
jmp case.0x401653.65
mov eax, dword [0x437504]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
test eax, eax
je 0x4017ab
push ecx
push eax
call esi
mov edi, dword [esp + 0x28]
mov eax, dword [0x437508]
test eax, eax
je case.0x401653.65
push edi
push eax
call esi
jmp case.0x401653.65
mov eax, 0xfffffff0
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
mov esi, eax
push esi
call fcn.00408fe0
push dword [esp + 0x2c]
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne case.0x401653.65
mov ebx, 1
jmp 0x4016cd
mov eax, 0xfffffff0
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
mov edi, eax
push edi
call fcn.00408fe0
push edi
call fcn.00408e80
mov esi, eax
test esi, esi
je 0x4018a6
push 0x5c
push esi
call fcn.004086a0
mov esi, eax
xor eax, eax
movzx ebp, word [esi]
mov word [esi], ax
test bp, bp
jne 0x401876
cmp dword [esp + 0x30], eax
je 0x401876
call fcn.00408500
test eax, eax
je 0x401876
push edi
call fcn.00407ce0
jmp 0x40187c
push edi
call fcn.00407cc0
test eax, eax
je 0x401893
cmp eax, 0xb7
jne 0x401892
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
jne 0x401893
inc ebx
mov word [esi], bp
add esi, 2
test bp, bp
jne 0x401848
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x2c], 0
push 0x40f108
je 0x4018d9
push 0xffffffffffffffe6
call fcn.00407bd0
push edi
push 0x451000
call fcn.00408dc0
push edi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x4018e0
inc ebx
mov dword [esp + 0x10], ebx
jmp 0x4016cd
push 0xfffffffffffffff5
call fcn.00407bd0
mov ebx, dword [esp + 0x10]
jmp 0x4016cd
xor eax, eax
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
push eax
call fcn.00408670
mov ecx, dword [esp + 0x30]
test eax, eax
pop edi
cmovne ecx, dword [esp + 0x28]
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x12d0
ret 4
mov eax, 0xffffffd0
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
mov edi, eax
push edi
call fcn.00408fe0
mov eax, 0xffffffdf
cdq
mov esi, eax
mov eax, dword [0x40e104]
xor esi, edx
sub esi, edx
mov ecx, esi
sar esi, 4
and ecx, 0xf
shl esi, 0xc
add esi, 0x40e108
push dword [eax + ecx*4]
push esi
call fcn.00407d70
mov ebx, eax
push ebx
call fcn.00408fe0
mov eax, 0x13
cdq
mov esi, eax
mov eax, dword [0x40e104]
xor esi, edx
sub esi, edx
mov ecx, esi
sar esi, 4
and ecx, 0xf
shl esi, 0xc
add esi, 0x40e108
push dword [eax + ecx*4]
push esi
call fcn.00407d70
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x4019d2
push 0x40f108
push 0xffffffffffffffe3
jmp 0x4016c6
cmp dword [esp + 0x30], 0
je 0x401803
push edi
call fcn.00408670
test eax, eax
je 0x401803
push ebx
push edi
call fcn.004081a0
push 0x40f108
push 0xffffffffffffffe4
jmp 0x4016c6
xor eax, eax
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
mov edi, eax
lea eax, [esp + 0x18]
push eax
push esi
push 0x800
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
jne 0x401a46
xor eax, eax
mov ebx, 1
mov word [esi], ax
jmp 0x401a6c
mov eax, dword [esp + 0x18]
cmp eax, edi
jbe 0x401a6a
cmp word [eax], bx
je 0x401a6a
push edi
call fcn.00408670
test eax, eax
je 0x401a3a
add eax, 0x2c
push eax
push dword [esp + 0x1c]
call fcn.00408dc0
xor ebx, ebx
cmp dword [esp + 0x30], 0
jne 0x4016cd
push 0x800
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
jmp 0x4016cd
or eax, 0xffffffff
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
mov esi, eax
push esi
call fcn.00408fe0
lea eax, [esp + 0x1c]
push eax
push ebp
push 0x800
push 0
push esi
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
jne case.0x401653.65
xor eax, eax
mov ebx, 1
mov word [ebp], ax
jmp 0x4016cd
mov eax, 0xffffffef
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
mov esi, eax
push esi
call fcn.00408fe0
push esi
push ebp
call fcn.00408cb0
test eax, eax
jne case.0x401653.65
lea ebx, [eax + 1]
jmp 0x4016cd
mov eax, 0x31
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
mov esi, dword [esp + 0x28]
mov ebx, eax
push ebx
mov dword [esp + 0x1c], ebx
and esi, 7
call fcn.004090f0
push ebx
test eax, eax
je 0x401b75
push 0x40e108
call fcn.00408dc0
jmp 0x401b90
push 0x451000
push 0x40e108
call fcn.00408dc0
push eax
call fcn.004085d0
push eax
call sub.KERNEL32.dll_lstrcatW
push 0x40e108
call fcn.00408fe0
mov ebp, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp esi, 3
jl 0x401bd6
push 0x40e108
call fcn.00408670
xor ecx, ecx
test eax, eax
je 0x401bc6
lea ecx, [esp + 0x34]
add eax, 0x14
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
mov ecx, eax
add esi, 0xfffffffd
or esi, 0x80000000
and esi, ecx
neg esi
sbb esi, esi
inc esi
test esi, esi
jne 0x401be4
push 0x40e108
call fcn.00408e50
xor eax, eax
cmp esi, 1
setne al
inc eax
push eax
push 0x40000000
push 0x40e108
mov dword [esp + 0x50], eax
call fcn.00408b20
mov edi, eax
cmp edi, 0xffffffff
jne 0x401dbf
push 0x40e108
call sub.KERNEL32.dll_lstrlenW
push 0xffe
mov ebx, eax
lea eax, [esp + 0x2e6]
push 0
push eax
call fcn.0040a780
add esp, 0xc
mov eax, 0x7fe
cmp ebx, 0x7fe
cmova ebx, eax
xor eax, eax
xor edi, edi
mov word [esp + 0x2e0], ax
test ebx, ebx
je 0x401c96
lea ecx, [ecx]
cmp word [edi*2 + 0x40e108], 0x5c
jne 0x401c77
lea eax, [esp + 0x2e0]
push eax
call ebp
cmp eax, 0xffffffff
jne 0x401c77
lea eax, [esp + 0x2e0]
push eax
call fcn.00407cc0
mov ax, word [edi*2 + 0x40e108]
mov word [esp + edi*2 + 0x2e0], ax
xor eax, eax
mov word [esp + edi*2 + 0x2e2], ax
inc edi
cmp edi, ebx
jb 0x401c50
push dword [esp + 0x44]
push 0x40000000
push 0x40e108
call fcn.00408b20
mov edi, eax
cmp edi, 0xffffffff
jne 0x401dbf
test esi, esi
jne 0x401da3
push section..ndata
push 0x410108
call fcn.00408dc0
push 0x40e108
push section..ndata
call fcn.00408dc0
push esi
push esi
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], esi
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x401d26
push 0x40c2f0
push section..ndata
call sub.KERNEL32.dll_lstrcatW
push dword [esp + 0x14]
push section..ndata
call sub.KERNEL32.dll_lstrcatW
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [esp + 0x3c]
mov dword [esp + 0x18], 0
push 0x40f108
call fcn.00407d70
push 0x410108
push section..ndata
call fcn.00408dc0
mov eax, dword [esp + 0x28]
sar eax, 3
push eax
push 0x40f108
call fcn.00408d30
sub eax, 4
je 0x401ba0
dec eax
je 0x401d8e
push 0x40e108
push 0xfffffffffffffffa
call fcn.00407bd0
pop edi
pop esi
pop ebp
mov eax, 0x7fffffff
pop ebx
add esp, 0x12d0
ret 4
inc dword [0x439628]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
push dword [esp + 0x18]
push 0xffffffffffffffe2
call fcn.00407bd0
cmp esi, 2
jne case.0x401653.65
lea ebx, [esi - 1]
jmp 0x4016cd
mov ebx, dword [esp + 0x18]
push ebx
push 0xffffffffffffffea
call fcn.00407bd0
inc dword [0x439654]
push 0
push 0
push edi
push dword [esp + 0x3c]
call fcn.00404390
dec dword [0x439654]
mov esi, eax
cmp dword [esp + 0x34], 0xffffffff
jne 0x401df5
cmp dword [esp + 0x38], 0xffffffff
je 0x401e04
lea eax, [esp + 0x34]
push eax
push 0
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jns 0x401ed2
cmp esi, 0xfffffffe
jne 0x401e8b
push 0xffffffffffffffe9
push 0x40e108
call fcn.00407d70
push ebx
push 0x40e108
call sub.KERNEL32.dll_lstrcatW
push 0
push 0
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x401e82
push 0x40c2f0
push 0x40e108
call sub.KERNEL32.dll_lstrcatW
push dword [esp + 0x14]
push 0x40e108
call sub.KERNEL32.dll_lstrcatW
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x401e97
push 0xffffffffffffffee
push 0x40e108
call fcn.00407d70
push 0x40c2f8
push 0x40e108
call sub.KERNEL32.dll_lstrcatW
push ebx
push 0x40e108
call sub.KERNEL32.dll_lstrcatW
push 0x200010
push 0x40e108
call fcn.00408d30
pop edi
pop esi
pop ebp
mov eax, 0x7fffffff
pop ebx
add esp, 0x12d0
ret 4
cmp dword [0x413174], 0
je case.0x401653.65
mov edx, dword [0x439594]
xor eax, eax
test edx, edx
jle case.0x401653.65
mov ebx, dword [0x439590]
xor ecx, ecx
mov ebp, dword [esp + 0x30]
jmp 0x401f00
cmp dword [ebx + ecx], 0xc9
jne 0x401f17
mov esi, dword [ebx + ecx + 0x14]
mov edi, dword [ebx + ecx + 0x18]
cmp dword [ebx + ecx + 0x10], ebp
je 0x401f24
inc eax
add ecx, 0x1c
cmp eax, edx
jl 0x401f00
jmp case.0x401653.65
test esi, esi
je case.0x401653.65
cmp edi, 0xc9
jne case.0x401653.65
push 0x40e108
call fcn.00409280
add esp, 4
cmp esi, eax
je case.0x401653.65
xor eax, eax
push 0xffe
push eax
mov word [esp + 0x2e8], ax
lea eax, [esp + 0x2ea]
push eax
call fcn.0040a780
add esp, 0xc
lea eax, [esp + 0x2e0]
push 0x40c2fc
push eax
call fcn.00408dc0
push 0x40e108
lea eax, [esp + 0x2e4]
push eax
call sub.KERNEL32.dll_lstrcatW
push 0x40c31c
lea eax, [esp + 0x2e4]
push eax
call sub.KERNEL32.dll_lstrcatW
push 0x21
lea eax, [esp + 0x2e4]
push eax
call fcn.00408d30
cmp eax, 2
jne case.0x401653.65
pop edi
pop esi
pop ebp
mov eax, 0x7fffffff
pop ebx
add esp, 0x12d0
ret 4
xor eax, eax
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
push dword [esp + 0x2c]
push eax
call fcn.004088b0
jmp case.0x401653.65
mov eax, 0x31
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
push dword [esp + 0x28]
push eax
call fcn.00408d30
test eax, eax
je 0x401803
cmp eax, dword [esp + 0x30]
jne 0x402050
mov eax, dword [esp + 0x34]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
cmp eax, dword [esp + 0x38]
jne case.0x401653.65
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
mov eax, 0xfffffff0
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
mov esi, eax
push esi
call fcn.00408fe0
push dword [esp + 0x2c]
push esi
call fcn.004088b0
jmp case.0x401653.65
mov eax, 1
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
push eax
call sub.KERNEL32.dll_lstrlenW
push eax
push ebp
call fcn.004086e0
jmp case.0x401653.65
push 2
call fcn.00403e10
push 3
mov ebx, eax
mov edi, edx
call fcn.00403e10
mov dword [esp + 0x4c], eax
add esp, 8
mov dword [esp + 0x20], edx
mov eax, 1
cdq
mov esi, eax
mov eax, dword [0x40e104]
xor esi, edx
sub esi, edx
mov ecx, esi
sar esi, 4
and ecx, 0xf
shl esi, 0xc
add esi, 0x40e108
push dword [eax + ecx*4]
push esi
call fcn.00407d70
mov esi, eax
push esi
call sub.KERNEL32.dll_lstrlenW
mov ecx, eax
xor eax, eax
test edi, edi
mov word [ebp], ax
cmove ebx, ecx
test ebx, ebx
je case.0x401653.65
mov eax, dword [esp + 0x44]
test eax, eax
jns 0x402157
add eax, ecx
js case.0x401653.65
cmp eax, ecx
cmovg eax, ecx
lea eax, [esi + eax*2]
push eax
push ebp
call fcn.00408dc0
test ebx, ebx
jns 0x402182
push ebp
call sub.KERNEL32.dll_lstrlenW
add ebx, eax
jns 0x402182
xor ebx, ebx
xor eax, eax
mov word [ebp + ebx*2], ax
jmp case.0x401653.65
cmp ebx, 0x800
jge case.0x401653.65
xor eax, eax
mov word [ebp + ebx*2], ax
jmp case.0x401653.65
mov eax, 0x20
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
mov edi, eax
mov eax, 0x31
cdq
mov esi, eax
mov eax, dword [0x40e104]
xor esi, edx
sub esi, edx
mov ecx, esi
sar esi, 4
and ecx, 0xf
shl esi, 0xc
add esi, 0x40e108
push dword [eax + ecx*4]
push esi
call fcn.00407d70
push eax
push edi
cmp dword [esp + 0x40], ebx
jne 0x402215
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40203f
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x40203f
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
mov eax, 1
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
push 0x800
mov esi, eax
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x402280
cmp dword [esp + 0x30], ebx
je 0x402297
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x402297
xor eax, eax
mov ebx, 1
mov word [ebp], ax
mov word [ebp + 0xffe], ax
jmp 0x4016cd
xor ebx, ebx
xor eax, eax
mov word [ebp + 0xffe], ax
jmp 0x4016cd
push 0
call fcn.00403e10
push 1
mov esi, eax
mov dword [esp + 0x28], edx
call fcn.00403e10
add esp, 8
mov dword [esp + 0x20], edx
cmp dword [esp + 0x18], ebx
jne 0x4022e7
cmp esi, eax
jl 0x40203f
jle 0x402204
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
cmp esi, eax
jb 0x40203f
jbe 0x402204
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12d0
ret 4
push 1
call fcn.00403e10
push 2
mov esi, eax
mov dword [esp + 0x28], edx
call fcn.00403e10
mov ecx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x3c]
add esp, 8
cmp eax, 0xd
ja case.default.0x402330
jmp dword [eax*4 + 0x403dd4]
add esi, ecx
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
sub esi, ecx
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
imul esi, ecx
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
test ecx, ecx
je 0x402381
mov eax, esi
xor ebx, ebx
cdq
idiv ecx
mov esi, eax
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
xor esi, esi
push esi
push ebp
lea ebx, [esi + 1]
call fcn.004086e0
jmp 0x4016cd
or esi, ecx
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
and esi, ecx
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
xor esi, ecx
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
xor eax, eax
test esi, esi
sete al
xor ebx, ebx
mov esi, eax
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
test esi, esi
jne 0x4023f9
test ecx, ecx
jne 0x4023f9
xor esi, esi
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
test esi, esi
je 0x4023e1
test ecx, ecx
je 0x4023e1
mov esi, 1
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
test ecx, ecx
je 0x402381
mov eax, esi
xor ebx, ebx
cdq
idiv ecx
mov esi, edx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
shl esi, cl
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
sar esi, cl
xor ebx, ebx
push esi
push ebp
call fcn.004086e0
jmp 0x4016cd
shr esi, cl
push esi
push ebp
xor ebx, ebx
call fcn.004086e0
jmp 0x4016cd
mov eax, 1
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
sar ecx, 4
and eax, 0xf
shl ecx, 0xc
add ecx, 0x40e108
push dword [esp + eax*4 + 0x28]
push ecx
call fcn.00407d70
push 2
mov esi, eax
call fcn.00403e10
push eax
push esi
push ebp
mov dword [esp + 0x30], edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp case.0x401653.65
mov eax, dword [esp + 0x30]
mov esi, dword [0x40e100]
test eax, eax
je 0x40251a
lea esp, [esp]
dec eax
test esi, esi
je 0x4024f4
mov esi, dword [esi]
test eax, eax
jne 0x4024b0
test esi, esi
je 0x4024f4
add esi, 4
push esi
push 0x40e108
call fcn.00408dc0
mov eax, dword [0x40e100]
add eax, 4
push eax
push esi
call fcn.00408dc0
mov eax, dword [0x40e100]
push 0x40e108
add eax, 4
push eax
call fcn.00408dc0
jmp case.0x401653.65
push 0x200010
push 0xffffffffffffffe8
push 0
call fcn.00407d70
push eax
call fcn.00408d30
pop edi
pop esi
pop ebp
mov eax, 0x7fffffff
pop ebx
add esp, 0x12d0
ret 4
test ecx, ecx
je 0x402543
test esi, esi
je 0x401803
lea eax, [esi + 4]
push eax
push ebp
call fcn.00408dc0
mov eax, dword [esi]
push esi
mov dword [0x40e100], eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp case.0x401653.65
push 0x1004
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push dword [esp + 0x28]
mov esi, eax
lea eax, [esi + 4]
push eax
call fcn.00407d70
mov eax, dword [0x40e100]
mov dword [esi], eax
mov dword [0x40e100], esi
jmp case.0x401653.65
push 3
call fcn.00403e10
push 4
mov ebx, eax
mov dword [esp + 0x28], edx
call fcn.00403e10
mov edi, eax
mov dword [esp + 0x28], edx
mov al, byte [esp + 0x44]
add esp, 8
test al, 1
je 0x4025c7
mov eax, 0x33
cdq
mov esi, eax
mov eax, dword [0x40e104]
xor esi, edx
sub esi, edx
mov ecx, esi
sar esi, 4
and ecx, 0xf
shl esi, 0xc
add esi, 0x40e108
push dword [eax + ecx*4]
push esi
call fcn.00407d70
mov ebx, eax
mov al, byte [esp + 0x3c]
test al, 2
je 0x4025f8
mov eax, 0x44
cdq
mov esi, eax
mov eax, dword [0x40e104]
xor esi, edx
sub esi, edx
mov ecx, esi
sar esi, 4
and ecx, 0xf
shl esi, 0xc
add esi, 0x40e108
push dword [eax + ecx*4]
push esi
call fcn.00407d70
mov edi, eax
cmp dword [esp + 0x24], 0x21
jne 0x402652
push 1
call fcn.00403e10
push 2
mov esi, eax
mov dword [esp + 0x28], edx
call fcn.00403e10
mov ecx, dword [esp + 0x44]
add esp, 8
sar ecx, 2
mov dword [esp + 0x20], edx
test ecx, ecx
je 0x402646
lea edx, [esp + 0x40]
push edx
push ecx
push 0
push edi
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
neg eax
sbb ebx, ebx
mov eax, dword [esp + 0x40]
inc ebx
mov dword [esp + 0x10], ebx
jmp 0x4026c4
push edi
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4026c0
mov ecx, dword [0x40e104]
mov eax, 1
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov esi, eax
mov eax, 0x12
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
xor ecx, ecx
cmp word [eax], cx
cmovne ecx, eax
xor eax, eax
cmp word [esi], ax
push ecx
cmovne eax, esi
push eax
push edi
push ebx
call dword [sym.imp.USER32.dll_FindWindowExW]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x28], 0
jl 0x4018e0
push eax
push ebp
call fcn.004086e0
mov ebx, dword [esp + 0x10]
jmp 0x4016cd
push 0
call fcn.00403e10
add esp, 4
mov dword [esp + 0x20], edx
push eax
call dword [sym.imp.USER32.dll_IsWindow]
mov ecx, dword [esp + 0x30]
test eax, eax
pop edi
cmovne ecx, dword [esp + 0x28]
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x12d0
ret 4
push 2
call fcn.00403e10
push 1
mov esi, eax
mov dword [esp + 0x28], edx
call fcn.00403e10
add esp, 8
mov dword [esp + 0x20], edx
push esi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
push ebp
call fcn.004086e0
jmp case.0x401653.65
mov esi, dword [0x4395a8]
push 0
add esi, ecx
call fcn.00403e10
add esp, 4
mov dword [esp + 0x20], edx
push esi
push 0xffffffffffffffeb
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
jmp case.0x401653.65
test dword [esp + 0x30], 0x100
je 0x40277c
push 1
call fcn.00403e10
add esp, 4
mov dword [esp + 0x20], edx
jmp 0x402784
push ecx
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [esp + 0x30]
mov ebx, eax
mov edi, ecx
mov esi, ecx
shr edi, 0x1e
mov ebp, ecx
mov eax, ecx
and esi, 3
shr eax, 0x1f
and ebp, 4
and edi, 1
mov dword [esp + 0x44], eax
test ecx, 0x10000
je 0x4027d5
mov ecx, dword [0x40e104]
xor eax, eax
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
jmp 0x4027da
movzx eax, word [esp + 0x28]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x54]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x30]
and eax, 0xfef0
push eax
mov eax, dword [esp + 0x64]
imul eax, edi
push eax
mov eax, dword [esp + 0x64]
imul eax, dword [esp + 0x4c]
push eax
xor eax, eax
test ebp, ebp
push esi
push dword [esp + 0x28]
cmovne eax, dword [0x437514]
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
push eax
push esi
push 0x172
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je case.0x401653.65
test esi, esi
jne case.0x401653.65
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp case.0x401653.65
push edx
call dword [sym.imp.USER32.dll_GetDC]
push 2
mov edi, eax
call fcn.00403e10
add esp, 4
mov dword [esp + 0x20], edx
mov esi, eax
push 0x48
push 0x5a
push edi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
mov dword [0x413108], eax
mov eax, dword [esp + 0x14]
push edi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push 3
call fcn.00403e10
mov cl, byte [esp + 0x3c]
add esp, 4
mov dword [0x413118], eax
mov al, cl
and al, 1
mov dword [esp + 0x20], edx
mov byte [0x41311c], al
mov al, cl
push dword [esp + 0x2c]
and al, 2
mov byte [0x41311f], 1
and cl, 4
mov byte [0x41311d], al
push 0x413124
mov byte [0x41311e], cl
call fcn.00407d70
push 0x413108
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
push ebp
call fcn.004086e0
jmp case.0x401653.65
push 0
call fcn.00403e10
push 1
mov esi, eax
mov dword [esp + 0x28], edx
call fcn.00403e10
add esp, 8
mov dword [esp + 0x20], edx
push eax
push esi
cmp dword [esp + 0x3c], ebx
jne 0x402912
call dword [sym.imp.USER32.dll_ShowWindow]
jmp case.0x401653.65
call dword [sym.imp.USER32.dll_EnableWindow]
jmp case.0x401653.65
xor eax, eax
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov ebx, eax
mov eax, 0x31
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov edi, eax
mov eax, 0x22
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov esi, eax
mov eax, 0x15
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
push 0x40f108
push 0xffffffffffffffec
call fcn.00407bd0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x70], eax
xor eax, eax
cmp word [ebx], ax
mov dword [esp + 0x64], edi
cmovne eax, ebx
mov dword [esp + 0x60], eax
xor eax, eax
cmp word [esi], ax
mov dword [esp + 0x6c], 0x451000
cmovne eax, esi
mov dword [esp + 0x68], eax
lea eax, [esp + 0x54]
push eax
call fcn.00408c30
test eax, eax
je 0x401803
test byte [esp + 0x58], 0x40
je case.0x401653.65
push dword [esp + 0x8c]
call fcn.00408540
push dword [esp + 0x8c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp case.0x401653.65
xor eax, eax
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov esi, eax
push esi
push 0xffffffffffffffeb
call fcn.00407bd0
push esi
call fcn.00408850
mov esi, eax
test esi, esi
je 0x401803
cmp dword [esp + 0x30], ebx
je 0x402ab7
push esi
call fcn.00408540
cmp dword [esp + 0x2c], ebx
jl 0x402aa9
push eax
push dword [esp + 0x44]
call fcn.004086e0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [esp + 0x10]
jmp 0x4016cd
test eax, eax
mov ecx, 1
cmovne ebx, ecx
mov dword [esp + 0x10], ebx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [esp + 0x10]
jmp 0x4016cd
mov eax, 2
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
push eax
call fcn.00408670
mov edi, eax
test edi, edi
je 0x402b0e
push dword [edi + 0x14]
push esi
call fcn.004086e0
push dword [edi + 0x18]
push ebp
call fcn.004086e0
jmp case.0x401653.65
xor eax, eax
mov word [ebp], ax
mov word [esi], ax
lea ebx, [eax + 1]
jmp 0x4016cd
mov eax, 0xffffffee
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov ebx, eax
push ebx
mov dword [esp + 0x50], ebx
call fcn.00408fe0
lea eax, [esp + 0x1c]
push eax
push ebx
push 9
call fcn.00408ae0
call eax
xor ecx, ecx
mov dword [esp + 0x44], eax
mov word [ebp], cx
mov word [esi], cx
lea ebx, [ecx + 1]
test eax, eax
je 0x4016cd
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
test edi, edi
je 0x4016cd
push 0xa
call fcn.00408ae0
push 0xb
mov esi, eax
call fcn.00408ae0
push edi
push dword [esp + 0x48]
mov dword [esp + 0x58], eax
push 0
push dword [esp + 0x58]
call esi
test eax, eax
je 0x402be5
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x1c]
push eax
push 0x40c358
push edi
call dword [esp + 0x60]
test eax, eax
je 0x402be5
mov eax, dword [esp + 0x18]
push dword [eax + 8]
push ebp
call fcn.004086e0
mov eax, dword [esp + 0x18]
push dword [eax + 0xc]
push dword [esp + 0x44]
call fcn.004086e0
xor ebx, ebx
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x4016cd
cmp dword [0x4395c0], 0
mov ebx, 1
jl 0x402d09
mov eax, 0xfffffff0
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov edi, eax
push edi
call fcn.00408fe0
mov ecx, dword [0x40e104]
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
cmp dword [esp + 0x38], 0
mov ebp, eax
je 0x402c6b
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
test esi, esi
jne 0x402c7c
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
test esi, esi
je 0x402cf8
push ebp
push esi
call fcn.004081d0
mov edi, eax
test edi, edi
je 0x402ccb
mov eax, dword [esp + 0x30]
xor ebx, ebx
test eax, eax
je 0x402cab
push 0x40f108
push eax
call fcn.00407bd0
call edi
test eax, eax
je 0x402cd3
mov ebx, 1
jmp 0x402cd3
mov eax, dword [esp + 0x14]
push section..data
push 0x40e100
push section..ndata
push 0x800
push eax
call edi
add esp, 0x14
jmp 0x402cd3
push ebp
push 0xfffffffffffffff7
call fcn.00407bd0
cmp dword [esp + 0x34], 0
jne 0x4016cd
push esi
call fcn.00405820
test eax, eax
je 0x4016cd
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x4016cd
push 0x40f108
push 0xfffffffffffffff6
call fcn.00407bd0
jmp 0x4016cd
push 0x40f108
push 0xffffffffffffffe7
call fcn.00407bd0
jmp 0x4016cd
mov eax, 0xfffffff0
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
push eax
mov dword [esp + 0x20], eax
call fcn.00408fe0
mov ecx, dword [0x40e104]
mov eax, 0xffffffdf
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov esi, eax
push esi
mov dword [esp + 0x48], esi
call fcn.00408fe0
mov ecx, dword [0x40e104]
mov eax, 2
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov dword [esp + 0x50], eax
mov eax, 0xffffffcd
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov ebx, eax
push ebx
call fcn.00408fe0
mov ecx, dword [0x40e104]
mov eax, 0x45
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x14], eax
mov eax, ebp
and eax, 0xfff
mov dword [esp + 0x40], eax
mov eax, ebp
mov edi, ebp
and eax, 0x8000
sar edi, 0xc
sar ebp, 0x10
and edi, 7
push esi
mov dword [esp + 0x50], eax
and ebp, 0xffff
call fcn.004090f0
test eax, eax
jne 0x402e66
mov ecx, dword [0x40e104]
mov eax, 0x21
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
lea eax, [esp + 0x10]
push eax
push 0x40cc74
push 1
push 0
push 0x40cc94
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x402f65
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x18]
push edx
push 0x40cc84
push eax
mov ecx, dword [eax]
mov eax, dword [ecx]
call eax
mov esi, eax
test esi, esi
js 0x402f49
mov eax, dword [esp + 0x10]
push dword [esp + 0x44]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x50]
call eax
cmp dword [esp + 0x4c], 0
mov esi, eax
jne 0x402ed0
mov eax, dword [esp + 0x10]
push 0x451000
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x24]
call eax
test edi, edi
je 0x402ee1
mov eax, dword [esp + 0x10]
push edi
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x3c]
call eax
mov eax, dword [esp + 0x10]
push ebp
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x34]
call eax
cmp word [ebx], 0
je 0x402f05
mov eax, dword [esp + 0x10]
push dword [esp + 0x40]
push ebx
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x44]
call eax
mov eax, dword [esp + 0x10]
push dword [esp + 0x50]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x2c]
call eax
mov eax, dword [esp + 0x10]
push dword [esp + 0x14]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x1c]
call eax
test esi, esi
js 0x402f3d
mov eax, dword [esp + 0x18]
push 1
push dword [esp + 0x20]
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x18]
call eax
mov esi, eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
call eax
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
call eax
test esi, esi
js 0x402f65
push 0x40f108
push 0xfffffffffffffff4
jmp 0x4016c6
push 0x40f108
push 0xfffffffffffffff0
mov ebx, 1
call fcn.00407bd0
jmp 0x4016cd
xor eax, eax
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov esi, eax
mov eax, 0x11
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov edi, eax
mov eax, 0x23
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
push esi
mov ebx, eax
call fcn.00408670
test eax, eax
je 0x403058
mov eax, dword [esp + 0x14]
push esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 2
call sub.KERNEL32.dll_lstrlenW
xor ecx, ecx
push edi
mov word [esi + eax*2 + 2], cx
call sub.KERNEL32.dll_lstrlenW
xor ecx, ecx
push ebx
push ecx
mov word [edi + eax*2 + 2], cx
mov ax, word [esp + 0x38]
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x76], ebx
mov word [esp + 0x6c], ax
call fcn.00407bd0
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
test eax, eax
je case.0x401653.65
push 0
push 0xfffffffffffffff9
call fcn.00407bd0
mov ebx, 1
jmp 0x4016cd
cmp edi, 0xbadf00d
jne 0x4024f4
inc dword [0x439634]
jmp case.0x401653.65
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x18], ebx
test edi, edi
je 0x4030b5
xor eax, eax
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov ecx, dword [esp + 0x2c]
mov ebx, eax
test ecx, ecx
je 0x4030e4
mov eax, 0x11
cdq
xor eax, edx
sub eax, edx
mov edx, dword [0x40e104]
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [edx + ecx*4]
push eax
call fcn.00407d70
mov ebp, eax
cmp dword [esp + 0x38], 0
je 0x403118
mov eax, 0x22
cdq
xor eax, edx
sub eax, edx
mov edx, dword [0x40e104]
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [edx + ecx*4]
push eax
call fcn.00407d70
mov dword [esp + 0x18], eax
mov eax, 0xffffffcd
cdq
xor eax, edx
sub eax, edx
mov edx, dword [0x40e104]
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [edx + ecx*4]
push eax
call fcn.00407d70
mov esi, eax
push esi
call fcn.00408fe0
push esi
push dword [esp + 0x1c]
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
test eax, eax
jne case.0x401653.65
lea ebx, [eax + 1]
jmp 0x4016cd
mov eax, 1
mov dword [esp + 0x1c], 0xa
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov ebx, eax
mov eax, 0x12
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov edi, eax
mov eax, 0xffffffdd
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
mov esi, eax
push esi
call fcn.00408fe0
push esi
push 0x7ff
push ebp
lea eax, [esp + 0x28]
push eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp], 0xa
jmp 0x401ace
cmp dword [esp + 0x38], ebx
jne 0x403261
push 2
call fcn.00403ee0
mov esi, eax
test esi, esi
je 0x401803
mov ecx, dword [0x40e104]
mov eax, 0x33
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push esi
mov edi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x403298
mov eax, 0x22
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov ecx, dword [esp + 0x38]
sar ecx, 1
push ecx
push eax
push dword [esp + 0x24]
call fcn.00403e80
mov edi, eax
test edi, edi
je case.0x401653.65
mov ebx, 1
jmp 0x4016cd
mov esi, dword [esp + 0x38]
mov eax, 2
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov ecx, dword [0x40e104]
mov ebp, eax
mov eax, 0x11
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
push 2
push eax
push edi
mov ebx, 1
call fcn.00403e40
mov edi, eax
test edi, edi
je 0x4016cd
xor eax, eax
cmp esi, ebx
jne 0x403357
mov ecx, dword [0x40e104]
mov eax, 0x23
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
push 0x410108
call sub.KERNEL32.dll_lstrlenW
lea eax, [eax*2 + 2]
jmp 0x40338d
cmp esi, 4
jne 0x403373
push 3
call fcn.00403e10
mov dword [0x410108], eax
add esp, 4
mov dword [esp + 0x20], edx
mov eax, esi
jmp 0x40338d
cmp esi, 3
jne 0x40338d
push 0x3000
push 0x410108
push 0
push dword [esp + 0x40]
call fcn.00404390
push eax
push 0x410108
push dword [esp + 0x20]
push 0
push ebp
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
neg eax
push edi
sbb eax, eax
and ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4016cd
push 0x20019
call fcn.00403ee0
mov ecx, dword [0x40e104]
mov esi, eax
mov eax, 0x33
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
xor ecx, ecx
mov word [ebp], cx
test esi, esi
je 0x401803
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0x1000
push ecx
push ebp
lea ecx, [esp + 0x4c]
push ecx
push 0
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x403461
mov eax, dword [esp + 0x44]
cmp eax, 4
je 0x403443
cmp eax, 1
je 0x40342a
cmp eax, 2
jne 0x403461
mov ebx, dword [esp + 0x38]
xor eax, eax
push esi
mov word [ebp + 0xffe], ax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4016cd
push dword [ebp]
xor ebx, ebx
cmp dword [esp + 0x3c], ebx
push ebp
sete bl
call fcn.004086e0
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4016cd
xor eax, eax
push esi
mov word [ebp], ax
lea ebx, [eax + 1]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4016cd
push 0x20019
call fcn.00403ee0
push 3
mov esi, eax
call fcn.00403e10
xor ecx, ecx
mov dword [esp + 0x24], edx
add esp, 4
mov word [ebp], cx
test esi, esi
je 0x401803
mov dword [esp + 0x1c], 0x7ff
cmp dword [esp + 0x38], ecx
je 0x4034bc
push 0x7ff
push ebp
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
jmp 0x4034e0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x2c]
push ecx
push ebp
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
mov ecx, 1
cmovne ebx, ecx
mov dword [esp + 0x10], ebx
xor eax, eax
push esi
mov word [ebp + 0xffe], ax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [esp + 0x10]
jmp 0x4016cd
push ebp
call fcn.00408f00
test eax, eax
je case.0x401653.65
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp case.0x401653.65
mov eax, 0xffffffed
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov esi, eax
push esi
call fcn.00408fe0
push dword [esp + 0x30]
push dword [esp + 0x30]
push esi
call fcn.00408b20
cmp eax, 0xffffffff
jne 0x4020d6
xor eax, eax
mov word [ebp], ax
lea ebx, [eax + 1]
jmp 0x4016cd
mov eax, dword [esp + 0x44]
xor ebx, ebx
mov ecx, dword [esp + 0x30]
cmp eax, 0x38
mov dword [esp + 0x1c], ecx
sete bl
test ecx, ecx
je 0x40359e
push 1
call fcn.00403e10
add esp, 4
mov dword [esp + 0x48], edx
mov esi, ebx
mov word [0x40f108], ax
neg esi
sbb esi, esi
add esi, 2
jmp 0x403623
cmp eax, 0x38
jne 0x4035f5
mov eax, 0x21
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
push 0
push 0
push 0x800
push 0x40f108
push 0xffffffffffffffff
push 0x410108
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0x40f108
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
jmp 0x403623
mov eax, 0x11
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
push eax
call sub.KERNEL32.dll_lstrlenW
mov esi, eax
add esi, esi
cmp word [ebp], 0
je 0x401803
push ebp
call fcn.00408f00
or ebx, dword [esp + 0x1c]
mov edi, eax
jne 0x403651
cmp dword [esp + 0x34], ebx
je 0x403651
push edi
push edi
call fcn.00408460
test eax, eax
js 0x401803
push esi
push 0x40f108
push edi
call fcn.00408c50
test eax, eax
jne case.0x401653.65
lea ebx, [eax + 1]
jmp 0x4016cd
mov edi, 2
mov dword [esp + 0x18], ebx
push edi
call fcn.00403e10
add esp, 4
mov dword [esp + 0x20], edx
cmp eax, 1
jl case.0x401653.65
mov ecx, 0x7ff
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x44], eax
cmp word [ebp], bx
je 0x4037be
xor edx, edx
push ebp
mov dword [esp + 0x50], edx
call fcn.00408f00
cmp dword [esp + 0x44], 0
mov ebx, eax
jle 0x4037be
mov ecx, dword [esp + 0x34]
xor ebp, ebp
cmp dword [esp + 0x24], 0x39
jne 0x4037d8
push 0
lea eax, [esp + 0x54]
push eax
mov eax, 2
sub eax, ecx
push eax
lea eax, [esp + 0x1c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4037be
mov edi, dword [esp + 0x50]
test edi, edi
je 0x4037be
cmp dword [esp + 0x34], 0
movzx eax, byte [esp + 0x10]
mov dword [esp + 0x14], eax
jne 0x40382e
push 1
lea eax, [esp + 0x18]
push eax
push edi
lea eax, [esp + 0x1c]
push eax
push 8
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x4037fc
mov esi, edi
neg esi
jmp 0x403740
dec dword [esp + 0x50]
mov eax, 0xfffd
mov dword [esp + 0x14], eax
je 0x40377f
push 1
push 0
inc esi
dec edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 1
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x58]
lea eax, [esp + 0x1c]
push eax
push 8
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x403740
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
test ecx, ecx
jne 0x40382e
mov edx, dword [esp + 0x4c]
cmp dx, 0xd
je 0x403802
cmp dx, 0xa
je 0x403802
mov word [esi + ebp*2], ax
inc ebp
movzx edx, ax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x4c], edx
test ax, ax
je 0x4037be
cmp ebp, dword [esp + 0x44]
jl 0x4036c3
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov word [esi + eax*2], cx
test eax, eax
jne case.0x401653.65
lea ebx, [ecx + 1]
jmp 0x4016cd
test ecx, ecx
jne 0x4037eb
test ebp, ebp
jne 0x4037eb
push ebp
push ebx
call fcn.00408460
test eax, eax
js 0x4037be
push 2
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.00408b50
test eax, eax
je 0x4037be
mov eax, dword [esp + 0x14]
jmp 0x403783
cmp dx, ax
je 0x40381e
cmp ax, 0xd
je 0x403813
cmp ax, 0xa
jne 0x40381e
mov word [esi + ebp*2], ax
inc ebp
mov dword [esp + 0x18], ebp
jmp 0x4037be
push 1
push 0
neg edi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x4037be
movzx eax, ax
push eax
push esi
call fcn.004086e0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x12d0
ret 4
cmp word [ebp], bx
je case.0x401653.65
push 2
call fcn.00403e10
add esp, 4
mov dword [esp + 0x20], edx
push dword [esp + 0x34]
push 0
push eax
push ebp
call fcn.00408f00
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp dword [esp + 0x2c], ebx
jl case.0x401653.65
push eax
push esi
call fcn.004086e0
jmp case.0x401653.65
push ebp
call fcn.00408f00
test eax, eax
je case.0x401653.65
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp case.0x401653.65
push esi
call fcn.00408f00
test eax, eax
je 0x401ad4
lea ecx, [esp + 0x90]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x401ad4
lea eax, [esp + 0xbc]
push eax
push ebp
call fcn.00408dc0
jmp case.0x401653.65
mov eax, 2
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
lea ecx, [esp + 0x90]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
jne 0x403924
xor eax, eax
mov word [esi], ax
mov word [ebp], ax
lea ebx, [eax + 1]
jmp 0x4016cd
push eax
push esi
call fcn.004086e0
lea eax, [esp + 0xbc]
push eax
push ebp
call fcn.00408dc0
jmp case.0x401653.65
mov eax, 0xfffffff0
mov ebx, 0xfffffd66
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
sar eax, 4
and ecx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [esp + ecx*4 + 0x28]
push eax
call fcn.00407d70
mov ebp, eax
push ebp
call fcn.00408fe0
push ebp
call fcn.004090f0
test eax, eax
jne 0x4039a8
mov ecx, dword [0x40e104]
mov eax, 0xffffffed
cdq
xor eax, edx
sub eax, edx
mov edx, eax
sar eax, 4
and edx, 0xf
shl eax, 0xc
add eax, 0x40e108
push dword [ecx + edx*4]
push eax
call fcn.00407d70
push eax
call fcn.00408fe0
push ebp
call fcn.00408e50
push 2
push 0x40000000
push ebp
call fcn.00408b20
mov esi, eax
mov dword [esp + 0x1c], esi
cmp esi, 0xffffffff
je 0x403a7b
mov edi, dword [0x43955c]
push edi
push 0x40
mov dword [esp + 0x54], edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
je 0x403a6f
push 0
call fcn.00404050
push edi
push ebx
call fcn.00403f80
push dword [esp + 0x30]
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
mov dword [esp + 0x44], edi
test edi, edi
je 0x403a4b
push dword [esp + 0x30]
push edi
push 0
push dword [esp + 0x38]
call fcn.00404390
cmp byte [edi], 0
je 0x403a3d
mov esi, dword [edi]
mov eax, dword [edi + 4]
add edi, 8
push esi
push edi
add eax, ebx
push eax
call fcn.00408820
add edi, esi
cmp byte [edi], 0
jne 0x403a20
mov esi, dword [esp + 0x1c]
push dword [esp + 0x44]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalFree]
call edi
jmp 0x403a51
mov edi, dword [sym.imp.KERNEL32.dll_GlobalFree]
push dword [esp + 0x4c]
push ebx
push esi
call fcn.00408c50
push ebx
call edi
push 0
push 0
push esi
push 0xffffffffffffffff
call fcn.00404390
mov ebx, eax
jmp 0x403a74
mov ebx, 0xfffffd66
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0xfffffff3
test ebx, ebx
jns 0x403aa3
push ebp
mov esi, 0xffffffef
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x40f108
push esi
lea ebx, [esi + 0x12]
call fcn.00407bd0
jmp 0x4016cd
push 0x40f108
push esi
xor ebx, ebx
call fcn.00407bd0
jmp 0x4016cd
push 0
call fcn.00403e10
mov ebx, eax
mov dword [esp + 0x24], edx
add esp, 4
cmp ebx, dword [0x43958c]
jae 0x401803
mov ecx, dword [esp + 0x30]
imul edi, ebx, 0x1018
add edi, dword [0x439588]
test ecx, ecx
js 0x403afd
mov eax, dword [edi + ecx*4]
jne 0x40387d
lea eax, [edi + 0x18]
push eax
push esi
call fcn.00408dc0
jmp case.0x401653.65
or eax, 0xffffffff
sub eax, ecx
mov dword [esp + 0x30], eax
je 0x403b1e
push 1
call fcn.00403e10
mov ecx, eax
mov dword [esp + 0x24], edx
add esp, 4
mov dword [esp + 0x2c], ecx
jmp 0x403b36
push dword [esp + 0x38]
lea eax, [edi + 0x18]
push eax
call fcn.00407d70
or dword [edi + 8], 0x100
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [edi + eax*4], ecx
cmp dword [esp + 0x34], 0
je case.0x401653.65
push ebx
call fcn.00401240
jmp case.0x401653.65
push 0
call fcn.00403e10
mov edi, eax
mov dword [esp + 0x24], edx
add esp, 4
cmp edi, 0x20
jae 0x401803
cmp dword [esp + 0x34], ebx
je 0x403b9f
cmp dword [esp + 0x30], ebx
je 0x403b8c
push edi
call fcn.004012b0
push 0
push 0
call fcn.00401300
jmp case.0x401653.65
push 0
call fcn.004011b0
push eax
push esi
call fcn.004086e0
jmp case.0x401653.65
mov eax, dword [0x439564]
cmp dword [esp + 0x30], ebx
je 0x403bba
mov ecx, dword [esp + 0x2c]
mov dword [eax + edi*4 + 0x94], ecx
jmp case.0x401653.65
push dword [eax + edi*4 + 0x94]
push esi
call fcn.00407d70
jmp case.0x401653.65
mov eax, dword [0x428238]
push 0
and eax, edi
push eax
push 0xb
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [esp + 0x28], ebx
je case.0x401653.65
mov eax, dword [esp + 0x14]
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x401653.65
push edi
call fcn.00403fa0
jmp case.0x401653.65