Function at 0x4016ac
Capabilities:
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:
push ebp
mov ecx, 7
mov ebp, esp
push edi
push esi
push ebx
lea edi, [ebp - 0x284]
sub esp, 0x2bc
mov esi, dword [ebp + 8]
mov eax, dword [0x469de8]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2a0], eax
mov edi, dword [ebp - 0x27c]
mov esi, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x280]
mov eax, edi
shl eax, 0xe
add eax, dword [0x40c914]
mov ebx, ecx
shl ebx, 0xe
add ebx, dword [0x40c914]
mov dword [ebp - 0x29c], eax
lea eax, [ebp - 0x280]
mov dword [0x41405c], eax
lea eax, [esi - 2]
cmp eax, 0x43
ja case.0x401718.66
jmp dword [eax*4 + 0x40c008]
mov dword [esp + 4], 0
mov dword [esp], ecx
jmp 0x401d1c
inc dword [0x471e00]
cmp dword [ebp - 0x2a0], 0
mov ecx, 0x7fffffff
je case.0x401718.2
mov dword [esp], 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
push eax
mov ecx, 0x7fffffff
jmp case.0x401718.2
mov dword [esp], ecx
call fcn.0040166b
push esi
dec eax
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00403b07
mov ecx, eax
push edi
push edi
jmp case.0x401718.2
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.00407350
jmp 0x402683
xor eax, eax
call fcn.00401400
mov edx, 1
test eax, eax
cmovle eax, edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x403a83
mov eax, dword [ebp - 0x2a0]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x403a83
cmp dword [ebp - 0x278], 0
jne 0x4017f9
mov eax, dword [ecx*4 + 0x469d20]
mov dword [ebp - 0x29c], ecx
mov dword [ecx*4 + 0x469ce0], eax
mov eax, 1
call fcn.00401400
mov ecx, dword [ebp - 0x29c]
jmp 0x401800
mov eax, dword [ecx*4 + 0x469ce0]
mov dword [ecx*4 + 0x469d20], eax
jmp case.0x401718.66
mov edx, dword [ebp - 0x278]
xor ecx, ecx
mov eax, dword [edx*4 + 0x469d20]
test eax, eax
sete cl
and eax, dword [ebp - 0x274]
mov ecx, dword [ebp + ecx*4 - 0x280]
mov dword [edx*4 + 0x469d20], eax
jmp case.0x401718.2
mov eax, dword [edi*4 + 0x469d20]
jmp 0x403256
mov eax, dword [0x471e04]
test eax, eax
je 0x40185d
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
push ebx
mov eax, dword [0x471e08]
test eax, eax
je case.0x401718.66
mov edx, dword [ebp - 0x280]
mov dword [esp], eax
mov dword [esp + 4], edx
jmp 0x402675
mov dword [esp], 0xfffffff0
call fcn.00401435
mov edx, dword [ebp - 0x27c]
push ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x401b4e
mov dword [esp], 0xfffffff0
call fcn.00401435
push edi
mov ebx, eax
xor edi, edi
mov dword [esp], eax
call fcn.00407cf8
push edx
test eax, eax
je 0x40194f
mov dword [esp + 4], 0x5c
mov dword [esp], eax
call fcn.00407c52
push esi
push esi
mov esi, eax
mov ax, word [eax]
mov word [esi], 0
test ax, ax
mov word [ebp - 0x29c], ax
jne 0x40190c
cmp dword [ebp - 0x278], 0
je 0x40190c
call fcn.00408fc2
test eax, eax
je 0x40190c
mov dword [esp], ebx
call fcn.00407a44
test eax, eax
push ecx
je 0x40194a
jmp 0x401919
mov dword [esp], ebx
call fcn.00407adf
test eax, eax
push edx
je 0x401936
cmp eax, 0xb7
je 0x401923
inc edi
jmp 0x401936
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0x10
push ecx
cmp eax, 1
adc edi, 0
mov ecx, dword [ebp - 0x29c]
lea eax, [esi + 2]
mov word [esi], cx
test cx, cx
jmp 0x4018bd
mov word [esi], 0
cmp dword [ebp - 0x27c], 0
je 0x401992
mov dword [esp], 0xffffffe6
call fcn.0040168d
mov eax, dword [0x40c914]
push esi
mov dword [esp + 4], ebx
add eax, 0x58000
mov dword [esp], eax
call fcn.004083c8
push eax
push eax
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp eax, 1
push edx
adc edi, 0
jmp 0x403adf
mov dword [esp], 0xfffffff5
jmp 0x40388b
mov dword [esp], 0
call fcn.00401435
push ecx
mov dword [esp], eax
call fcn.00408b57
jmp 0x4023d3
mov dword [esp], 0xffffffd0
call fcn.00401435
push edx
mov ebx, eax
mov dword [esp], 0xffffffdf
call fcn.00401435
push ecx
mov esi, eax
mov dword [esp], 0x13
call fcn.00401435
push edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
push edx
push edx
je 0x401a02
mov dword [esp], 0xffffffe3
jmp 0x402caf
cmp dword [ebp - 0x278], 0
je 0x403af4
mov dword [esp], ebx
call fcn.00408b57
test eax, eax
push edi
je 0x403af4
mov dword [esp], ebx
mov dword [esp + 4], esi
call fcn.00408b12
push ebx
push ebx
mov dword [esp], 0xffffffe4
jmp 0x402caf
mov dword [esp], 0
call fcn.00401435
mov ebx, eax
push ecx
lea eax, [ebp - 0x268]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 4], 0x2000
mov dword [esp], ebx
mov dword [esp + 8], eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
sub esp, 0x10
test eax, eax
je 0x401aad
mov eax, dword [ebp - 0x268]
xor edi, edi
cmp ebx, eax
jae 0x401abd
cmp word [eax], 0
je 0x401abd
mov dword [esp], ebx
call fcn.00408b57
test eax, eax
push edx
je 0x401aad
add eax, 0x2c
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x268]
mov dword [esp], eax
call fcn.004083c8
push eax
push eax
jmp 0x401abd
mov eax, dword [ebp - 0x29c]
mov edi, 1
mov word [eax], 0
cmp dword [ebp - 0x278], 0
jne 0x403adf
mov eax, dword [ebp - 0x29c]
mov dword [esp + 8], 0x2000
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
sub esp, 0xc
jmp 0x403adf
mov dword [esp], 0xffffffff
xor edi, edi
call fcn.00401435
lea edx, [ebp - 0x268]
push esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x2000
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_SearchPathW]
sub esp, 0x18
test eax, eax
jmp 0x402e85
mov dword [esp], 0xffffffef
call fcn.00401435
push ecx
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00407f15
push edx
push edx
jmp 0x402e18
mov dword [esp], 0x31
call fcn.00401435
push ebx
mov ebx, dword [ebp - 0x280]
mov esi, eax
mov dword [esp], eax
call fcn.00407cbf
and ebx, 7
test eax, eax
push edi
je 0x401b8c
mov dword [esp + 4], esi
mov dword [esp], 0x414060
call fcn.004083c8
jmp 0x401bbd
mov eax, dword [0x40c914]
mov dword [esp], 0x414060
add eax, 0x58000
mov dword [esp + 4], eax
call fcn.004083c8
push edx
push edx
mov dword [esp], eax
call fcn.00408404
push ecx
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004083fa
push edi
push edi
mov dword [esp], 0x414060
call fcn.00408499
cmp ebx, 2
push eax
jle 0x401c0f
mov dword [esp], 0x414060
call fcn.00408b57
mov edx, eax
xor eax, eax
push ecx
test edx, edx
je 0x401bfe
lea eax, [ebp - 0x274]
add edx, 0x14
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
push edx
push edx
sub ebx, 3
or ebx, 0x80000000
test ebx, eax
sete bl
movzx ebx, bl
test ebx, ebx
jne 0x401c27
mov dword [esp], 0x414060
call fcn.00407e1a
mov eax, 2
push edi
jmp 0x401c30
xor eax, eax
cmp ebx, 1
setne al
inc eax
mov dword [esp + 8], eax
mov dword [esp + 4], 0x40000000
mov dword [esp], 0x414060
call fcn.00407eb9
sub esp, 0xc
cmp eax, 0xffffffff
mov edi, eax
jne 0x401d26
test ebx, ebx
je 0x401c7c
mov dword [esp + 4], esi
mov dword [esp], 0xffffffe2
call fcn.00407350
push ecx
push ecx
cmp ebx, 2
sete al
movzx eax, al
mov edi, eax
jmp 0x403adf
mov eax, dword [0x40c914]
mov dword [esp], 0x41c060
mov dword [esp + 4], eax
call fcn.004083c8
push eax
push eax
mov eax, dword [0x40c914]
mov dword [esp + 4], 0x414060
mov dword [esp], eax
call fcn.004083c8
push eax
push eax
mov eax, dword [ebp - 0x26c]
mov dword [esp], 0x418060
mov dword [esp + 4], eax
call fcn.0040857c
push eax
push eax
mov eax, dword [0x40c914]
mov dword [esp + 4], 0x41c060
mov dword [esp], eax
call fcn.004083c8
push eax
push eax
mov eax, dword [ebp - 0x280]
mov dword [esp], 0x418060
sar eax, 3
mov dword [esp + 4], eax
call fcn.00407be4
cmp eax, 4
push edx
push edx
je 0x401c13
cmp eax, 5
jne 0x401d0d
inc dword [0x469d28]
jmp 0x403ae5
mov dword [esp + 4], 0x414060
mov dword [esp], 0xfffffffa
call fcn.00407350
jmp 0x4021b5
mov dword [esp + 4], esi
mov dword [esp], 0xffffffea
call fcn.00407350
push eax
push eax
mov eax, dword [ebp - 0x278]
inc dword [0x469d54]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00403da1
dec dword [0x469d54]
sub esp, 0x10
cmp dword [ebp - 0x274], 0xffffffff
mov ebx, eax
jne 0x401d7d
cmp dword [ebp - 0x270], 0xffffffff
je 0x401d9f
lea eax, [ebp - 0x274]
mov dword [esp + 8], 0
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_SetFileTime]
sub esp, 0x10
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
push eax
jns case.0x401718.66
cmp ebx, 0xfffffffe
jne 0x401dde
mov dword [esp + 4], 0xffffffe9
mov dword [esp], 0x414060
call fcn.0040857c
push edi
push edi
mov dword [esp + 4], esi
mov dword [esp], 0x414060
call fcn.004083fa
jmp 0x401df2
mov dword [esp + 4], 0xffffffee
mov dword [esp], 0x414060
call fcn.0040857c
push ebx
push ebx
mov dword [esp + 4], 0x200010
mov dword [esp], 0x414060
jmp 0x4021b0
mov dword [esp], 0
jmp 0x401e64
mov dword [esp], 0x31
call fcn.00401435
push edx
mov edx, dword [ebp - 0x280]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00407be4
test eax, eax
push ecx
push ecx
je 0x403af4
cmp eax, dword [ebp - 0x278]
je 0x402013
cmp eax, dword [ebp - 0x270]
jne case.0x401718.66
mov ecx, dword [ebp - 0x26c]
jmp case.0x401718.2
mov dword [esp], 0xfffffff0
call fcn.00401435
mov edx, dword [ebp - 0x27c]
push edi
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00408c51
jmp 0x402683
mov dword [esp], 1
call fcn.00401435
push esi
mov dword [esp], eax
call fcn.004083f0
jmp 0x40264c
mov eax, 2
call fcn.00401400
mov esi, eax
mov eax, 3
mov edi, edx
call fcn.00401400
mov dword [esp], 1
mov dword [ebp - 0x29c], eax
call fcn.00401435
push edx
mov dword [ebp - 0x2a0], eax
mov dword [esp], eax
call fcn.004083f0
test edi, edi
push ecx
mov word [ebx], 0
cmove esi, eax
test esi, esi
je case.0x401718.66
mov edi, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x2a0]
test edi, edi
jns 0x401eff
add edi, eax
js case.0x401718.66
cmp eax, edi
mov dword [esp], ebx
cmovg eax, edi
add eax, eax
add edx, eax
mov dword [esp + 4], edx
call fcn.004083c8
test esi, esi
push eax
push eax
jns 0x401f27
mov dword [esp], ebx
call fcn.004083f0
add esi, eax
push edi
js 0x401f35
cmp esi, 0x1fff
jg case.0x401718.66
jmp 0x401f37
xor esi, esi
mov word [ebx + esi*2], 0
jmp case.0x401718.66
mov dword [esp], 0x20
call fcn.00401435
push ecx
mov ebx, eax
mov dword [esp], 0x31
call fcn.00401435
cmp dword [ebp - 0x270], 0
push esi
mov dword [esp + 4], eax
mov dword [esp], ebx
jne 0x401f76
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x401f7c
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
push edx
push edx
jne 0x402013
jmp 0x4023e3
mov dword [esp], 1
call fcn.00401435
push edi
mov esi, eax
mov dword [esp + 8], 0x2000
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
sub esp, 0xc
test eax, eax
jne 0x401fc2
mov word [ebx], 0
mov edi, 1
jmp 0x401fe4
cmp dword [ebp - 0x278], 0
jne 0x401fcf
xor edi, edi
jmp 0x401fe4
mov dword [esp], esi
mov dword [esp + 4], ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
push esi
push esi
je 0x401fb6
jmp 0x401fcb
mov word [ebx + 0x3ffe], 0
jmp 0x403adf
mov esi, dword [ebp - 0x26c]
xor eax, eax
call fcn.00401400
mov ebx, eax
mov eax, 1
call fcn.00401400
test esi, esi
jne 0x40202f
cmp ebx, eax
jge 0x40201e
mov ecx, dword [ebp - 0x274]
jmp case.0x401718.2
jle 0x4023e3
mov ecx, dword [ebp - 0x270]
jmp case.0x401718.2
cmp ebx, eax
jb 0x402013
ja 0x402024
jmp 0x4023e3
mov eax, 1
xor edi, edi
call fcn.00401400
mov dword [ebp - 0x29c], eax
mov esi, eax
mov eax, 2
call fcn.00401400
cmp dword [ebp - 0x274], 0xd
mov ecx, eax
ja case.default.0x40206d
mov eax, dword [ebp - 0x274]
jmp dword [eax*4 + 0x40c118]
mov esi, dword [ebp - 0x29c]
add esi, ecx
jmp 0x40212d
mov esi, dword [ebp - 0x29c]
sub esi, ecx
jmp 0x40212d
mov esi, dword [ebp - 0x29c]
imul esi, ecx
jmp 0x40212d
test ecx, ecx
je 0x402131
mov eax, dword [ebp - 0x29c]
cdq
idiv ecx
jmp 0x4020e7
mov esi, dword [ebp - 0x29c]
or esi, ecx
jmp 0x40212d
mov esi, dword [ebp - 0x29c]
and esi, ecx
jmp 0x40212d
mov esi, dword [ebp - 0x29c]
xor esi, ecx
jmp 0x40212d
cmp dword [ebp - 0x29c], 0
sete al
jmp 0x4020e4
mov eax, dword [ebp - 0x29c]
or eax, ecx
setne al
movzx eax, al
mov esi, eax
jmp 0x40212d
cmp dword [ebp - 0x29c], 0
setne al
xor edx, edx
test ecx, ecx
setne dl
and edx, eax
jmp 0x40210d
test ecx, ecx
je 0x402131
mov eax, dword [ebp - 0x29c]
cdq
idiv ecx
mov esi, edx
jmp 0x40212d
mov esi, dword [ebp - 0x29c]
shl esi, cl
jmp 0x40212d
mov esi, dword [ebp - 0x29c]
sar esi, cl
jmp 0x40212d
mov esi, dword [ebp - 0x29c]
shr esi, cl
xor edi, edi
jmp case.default.0x40206d
xor esi, esi
mov edi, 1
mov dword [esp + 4], esi
jmp 0x4023b4
mov dword [esp], 1
call fcn.00401435
push ecx
mov esi, eax
mov eax, 2
call fcn.00401400
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], ebx
call dword [sym.imp.USER32.dll_wsprintfW]
jmp case.0x401718.66
mov eax, dword [ebp - 0x278]
mov esi, dword [0x428060]
test eax, eax
je 0x4021fc
dec eax
test esi, esi
je 0x40218f
test eax, eax
mov esi, dword [esi]
jne 0x402180
test esi, esi
jne 0x4021bc
mov dword [esp + 4], 0xffffffe8
mov dword [esp], 0
call fcn.0040857c
push edx
push edx
mov dword [esp + 4], 0x200010
mov dword [esp], eax
call fcn.00407be4
push eax
push eax
jmp 0x401755
add esi, 4
mov dword [esp], 0x414060
mov dword [esp + 4], esi
call fcn.004083c8
push eax
push eax
mov eax, dword [0x428060]
mov dword [esp], esi
add eax, 4
mov dword [esp + 4], eax
call fcn.004083c8
push eax
push eax
mov eax, dword [0x428060]
mov dword [esp + 4], 0x414060
add eax, 4
jmp 0x4038cf
test edi, edi
je 0x40222e
test esi, esi
je 0x403af4
lea eax, [esi + 4]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004083c8
push edi
push edi
mov eax, dword [esi]
mov dword [esp], esi
mov dword [0x428060], eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x403a83
mov dword [esp + 4], 0x4004
mov dword [esp], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
mov eax, dword [ebp - 0x280]
push ecx
push ecx
mov dword [esp + 4], eax
lea eax, [ebx + 4]
mov dword [esp], eax
call fcn.0040857c
mov eax, dword [0x428060]
push esi
push esi
mov dword [ebx], eax
mov dword [0x428060], ebx
jmp case.0x401718.66
mov eax, 3
call fcn.00401400
mov esi, eax
mov eax, 4
call fcn.00401400
test byte [ebp - 0x26c], 1
mov edi, eax
je 0x4022a0
mov dword [esp], 0x33
call fcn.00401435
push edx
mov esi, eax
test byte [ebp - 0x26c], 2
je 0x4022b8
mov dword [esp], 0x44
call fcn.00401435
push edi
mov edi, eax
cmp dword [ebp - 0x284], 0x21
jne 0x402347
mov eax, 1
call fcn.00401400
mov dword [ebp - 0x29c], eax
mov eax, 2
call fcn.00401400
mov ecx, dword [ebp - 0x26c]
sar ecx, 2
je 0x40232a
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
lea edx, [ebp - 0x268]
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], esi
mov dword [esp], eax
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
sub esp, 0x1c
test eax, eax
sete al
movzx eax, al
mov edi, eax
jmp 0x40239d
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp], eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x402392
mov dword [esp], 1
call fcn.00401435
push edx
mov dword [ebp - 0x29c], eax
mov dword [esp], 0x12
call fcn.00401435
push ecx
xor ecx, ecx
cmp word [eax], 0
mov edx, dword [ebp - 0x29c]
cmove eax, ecx
cmp word [edx], 0
mov dword [esp + 4], edi
mov dword [esp + 0xc], eax
mov dword [esp], esi
cmove edx, ecx
mov dword [esp + 8], edx
call dword [sym.imp.USER32.dll_FindWindowExW]
sub esp, 0x10
mov dword [ebp - 0x268], eax
xor edi, edi
cmp dword [ebp - 0x280], 0
js 0x403adf
mov eax, dword [ebp - 0x268]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004082ed
push eax
push eax
jmp 0x403adf
xor eax, eax
call fcn.00401400
mov dword [esp], eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
push edi
je 0x4023e3
mov ecx, dword [ebp - 0x27c]
jmp case.0x401718.2
mov ecx, dword [ebp - 0x278]
jmp case.0x401718.2
mov eax, 2
call fcn.00401400
mov esi, eax
mov eax, 1
call fcn.00401400
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push esi
push esi
jmp 0x403256
add edi, dword [0x469da8]
xor eax, eax
call fcn.00401400
mov dword [esp + 4], 0xffffffeb
mov dword [esp], eax
mov dword [esp + 8], edi
call dword [sym.imp.USER32.dll_SetWindowLongW]
jmp 0x403ada
test byte [ebp - 0x273], 1
je 0x402454
mov eax, 2
call fcn.00401400
jmp 0x40246f
mov eax, dword [ebp - 0x278]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push ecx
push ecx
mov esi, eax
mov eax, dword [ebp - 0x274]
mov ecx, eax
mov edi, eax
and ecx, 3
shr edi, 0x1e
mov dword [ebp - 0x29c], ecx
mov ecx, eax
and edi, 1
and ecx, 4
mov dword [ebp - 0x2a4], ecx
mov ecx, eax
shr ecx, 0x1f
test eax, 0x10000
mov dword [ebp - 0x2a8], ecx
je 0x4024b6
mov dword [esp], 0x11
call fcn.00401435
push edx
jmp 0x4024bd
movzx eax, word [ebp - 0x27c]
mov dword [ebp - 0x2a0], eax
lea eax, [ebp - 0x268]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebp - 0x2a8]
push eax
imul ecx, dword [ebp - 0x260]
push eax
mov edx, dword [ebp - 0x274]
mov eax, 0
imul edi, dword [ebp - 0x25c]
and edx, 0xfef0
cmp dword [ebp - 0x2a4], 0
cmovne eax, dword [0x469dec]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp - 0x29c]
mov dword [esp + 0x10], edi
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x2a0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [sym.imp.USER32.dll_LoadImageW]
sub esp, 0x18
mov edi, eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 4], 0x172
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [sym.imp.USER32.dll_SendMessageW]
sub esp, 0x10
test eax, eax
je 0x402572
cmp dword [ebp - 0x29c], 0
jne 0x402572
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push eax
cmp dword [ebp - 0x280], 0
js case.0x401718.66
mov dword [esp + 4], edi
jmp 0x40325a
mov eax, dword [ebp - 0x2a0]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_GetDC]
push edi
mov esi, eax
mov dword [esp + 4], 0x5a
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push edx
push edx
mov edi, eax
mov eax, 2
call fcn.00401400
mov dword [esp + 8], 0x48
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
sub esp, 0xc
mov dword [section..bss], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push ecx
push ecx
mov eax, 3
call fcn.00401400
mov dword [0x414010], eax
mov eax, dword [ebp - 0x270]
mov dword [esp], 0x41401c
mov byte [0x414017], 1
mov dl, al
and edx, 1
mov byte [0x414014], dl
mov dl, al
and eax, 4
mov byte [0x414016], al
mov eax, dword [ebp - 0x27c]
and edx, 2
mov byte [0x414015], dl
mov dword [esp + 4], eax
call fcn.0040857c
push esi
push esi
mov dword [esp], section..bss
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push esi
jmp 0x403256
xor eax, eax
call fcn.00401400
mov ebx, eax
mov eax, 1
call fcn.00401400
cmp dword [ebp - 0x274], 0
mov dword [esp + 4], eax
mov dword [esp], ebx
jne 0x40267d
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x402683
call dword [sym.imp.USER32.dll_EnableWindow]
push ecx
push ecx
jmp case.0x401718.66
mov dword [esp], 0
call fcn.00401435
push edx
mov edi, eax
mov dword [esp], 0x31
call fcn.00401435
push ecx
mov esi, eax
mov dword [esp], 0x22
call fcn.00401435
push ebx
mov ebx, eax
mov dword [esp], 0x15
call fcn.00401435
push eax
mov dword [esp], 0xffffffec
call fcn.0040168d
push eax
mov eax, dword [ebp - 0x270]
mov edx, edi
mov dword [ebp - 0x264], eax
mov eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x24c], eax
xor eax, eax
cmp word [edi], 0
mov dword [ebp - 0x258], esi
mov edi, 1
cmove edx, eax
mov dword [ebp - 0x25c], edx
cmp word [ebx], 0
cmovne eax, ebx
mov dword [ebp - 0x254], eax
mov eax, dword [0x40c914]
add eax, 0x58000
mov dword [ebp - 0x250], eax
lea eax, [ebp - 0x268]
mov dword [esp], eax
call fcn.00407b8f
test eax, eax
push edx
je 0x403adf
xor edi, edi
test byte [ebp - 0x264], 0x40
je 0x403adf
mov eax, dword [ebp - 0x230]
mov dword [esp], eax
call fcn.0040907f
push eax
mov eax, dword [ebp - 0x230]
mov dword [esp], eax
jmp 0x4027e2
mov dword [esp], 0
call fcn.00401435
push ecx
mov ebx, eax
mov dword [esp + 4], eax
mov dword [esp], 0xffffffeb
call fcn.00407350
push esi
push esi
mov dword [esp], ebx
call fcn.00407b0d
test eax, eax
push edi
mov ebx, eax
je 0x403af4
xor edi, edi
cmp dword [ebp - 0x278], 0
je 0x4027df
mov dword [esp], eax
call fcn.0040907f
cmp dword [ebp - 0x27c], 0
push edx
js 0x4027d5
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.004082ed
push esi
push esi
jmp 0x4027df
test eax, eax
setne al
movzx eax, al
mov edi, eax
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x402a72
mov dword [esp], 2
call fcn.00401435
push edx
mov dword [esp], eax
call fcn.00408b57
test eax, eax
push ecx
mov esi, eax
je 0x402828
mov eax, dword [eax + 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.004082ed
push edi
push edi
mov eax, dword [esi + 0x18]
jmp 0x403256
mov word [ebx], 0
jmp 0x403ae9
mov dword [esp], 0xffffffee
call fcn.00401435
push edi
mov dword [ebp - 0x2a0], eax
mov dword [esp], 0xa
call fcn.00408f70
push edx
lea edx, [ebp - 0x28c]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x2a0]
mov dword [esp], edx
call eax
mov edi, eax
mov eax, dword [ebp - 0x29c]
push ecx
test edi, edi
push ecx
mov word [ebx], 0
mov word [eax], 0
je 0x403af4
mov dword [esp + 4], edi
mov dword [esp], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
push esi
push esi
mov esi, eax
je 0x403af4
mov dword [esp], 0xb
call fcn.00408f70
push edx
mov dword [ebp - 0x2a4], eax
mov dword [esp], 0xc
call fcn.00408f70
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp - 0x2a0]
push ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [ebp - 0x2a4]
sub esp, 0x10
test eax, eax
jne 0x4028f3
mov edi, 1
jmp 0x402955
lea eax, [ebp - 0x268]
mov dword [esp + 4], 0x40c000
mov dword [esp], esi
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x288]
mov dword [esp + 8], eax
call dword [ebp - 0x2a8]
sub esp, 0x10
test eax, eax
je 0x4028ec
mov eax, dword [ebp - 0x288]
mov eax, dword [eax + 8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004082ed
mov eax, dword [ebp - 0x288]
push edi
push edi
xor edi, edi
mov eax, dword [eax + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.004082ed
push eax
push eax
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x402a72
cmp dword [0x469d58], 0
js 0x402a84
mov dword [esp], 0xfffffff0
call fcn.00401435
push ebx
mov edi, eax
mov dword [esp], 1
call fcn.00401435
cmp dword [ebp - 0x270], 0
push esi
mov esi, eax
jne 0x4029bf
mov dword [esp + 8], 8
mov dword [esp + 4], 0
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
sub esp, 0xc
test eax, eax
mov ebx, eax
je 0x402a78
jmp 0x4029cf
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
push ecx
mov ebx, eax
je 0x402997
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00409037
test eax, eax
push edx
mov edi, eax
push edx
je 0x402a34
mov eax, dword [ebp - 0x278]
test eax, eax
je 0x402a04
mov dword [esp], eax
call fcn.0040168d
push eax
call edi
test eax, eax
setne al
movzx eax, al
mov edi, eax
jmp 0x402a4b
mov eax, dword [0x40c914]
mov dword [esp + 0x10], 0x40b000
mov dword [esp + 0xc], 0x428060
mov dword [esp + 4], 0x2000
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp], eax
call edi
xor edi, edi
jmp 0x402a4b
mov dword [esp + 4], esi
mov dword [esp], 0xfffffff7
call fcn.00407350
push edi
push edi
mov edi, 1
cmp dword [ebp - 0x274], 0
jne 0x403adf
mov dword [esp], ebx
call fcn.00404c3f
test eax, eax
push esi
je 0x403adf
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push ecx
jmp 0x403adf
mov dword [esp], 0xfffffff6
jmp 0x402b48
mov dword [esp], 0xffffffe7
jmp 0x402b48
mov dword [esp], 0xfffffff0
call fcn.00401435
push esi
mov dword [ebp - 0x2a0], eax
mov dword [esp], 0xffffffdf
call fcn.00401435
push edi
mov esi, eax
mov dword [esp], 2
call fcn.00401435
push edx
mov dword [ebp - 0x2a4], eax
mov dword [esp], 0xffffffcd
call fcn.00401435
push ecx
mov dword [ebp - 0x29c], eax
mov dword [esp], 0x45
call fcn.00401435
push ebx
mov dword [ebp - 0x2a8], eax
mov edi, dword [ebp - 0x270]
mov dword [esp], esi
call fcn.00407cbf
test eax, eax
push edx
jne 0x402b0b
mov dword [esp], 0x21
call fcn.00401435
push ebx
lea eax, [ebp - 0x288]
mov dword [esp + 0xc], 0x412594
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], 0x40d804
mov dword [esp + 0x10], eax
call dword [sym.imp.ole32.dll_CoCreateInstance]
sub esp, 0x14
test eax, eax
jns 0x402b53
mov dword [esp], 0xfffffff0
call fcn.0040168d
push ecx
jmp 0x403af4
mov eax, dword [ebp - 0x288]
lea ecx, [ebp - 0x268]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x4119f4
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
test eax, eax
mov ebx, eax
js 0x402c91
mov eax, dword [ebp - 0x288]
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x50]
test edi, 0x8000
push edx
mov ebx, eax
push edx
jne 0x402bbd
mov eax, dword [ebp - 0x288]
mov ecx, dword [0x40c914]
mov edx, dword [eax]
add ecx, 0x58000
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [edx + 0x24]
push eax
push eax
mov eax, edi
sar eax, 0xc
and eax, 7
je 0x402bdb
mov edx, dword [ebp - 0x288]
mov ecx, dword [edx]
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [ecx + 0x3c]
push eax
push eax
mov eax, dword [ebp - 0x288]
mov ecx, edi
shr ecx, 0x10
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x34]
push eax
push eax
mov eax, dword [ebp - 0x29c]
cmp word [eax], 0
je 0x402c25
mov eax, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x29c]
and edi, 0xfff
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x44]
sub esp, 0xc
mov eax, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x2a4]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x2c]
mov eax, dword [ebp - 0x288]
push edi
mov ecx, dword [ebp - 0x2a8]
push edi
mov edx, dword [eax]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [edx + 0x1c]
test ebx, ebx
push eax
push eax
js 0x402c82
mov eax, dword [ebp - 0x268]
mov ecx, dword [ebp - 0x2a0]
mov edx, dword [eax]
mov dword [esp + 8], 1
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x18]
sub esp, 0xc
mov ebx, eax
mov eax, dword [ebp - 0x268]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
push esi
mov eax, dword [ebp - 0x288]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
test ebx, ebx
push ecx
js 0x402b41
mov dword [esp], 0xfffffff4
call fcn.0040168d
jmp 0x403a83
mov dword [esp], 0
call fcn.00401435
push edi
mov ebx, eax
mov dword [esp], 0x11
call fcn.00401435
push edx
mov esi, eax
mov dword [esp], 0x23
call fcn.00401435
push ecx
mov edi, eax
mov dword [esp], ebx
call fcn.00408b57
test eax, eax
push edx
je 0x402d78
mov eax, dword [ebp - 0x2a0]
mov dword [esp], ebx
mov dword [ebp - 0x264], 2
mov dword [ebp - 0x268], eax
call fcn.004083f0
push edx
mov word [ebx + eax*2 + 2], 0
mov dword [esp], esi
call fcn.004083f0
push ecx
mov word [esi + eax*2 + 2], 0
mov eax, dword [ebp - 0x278]
mov dword [ebp - 0x260], ebx
mov dword [esp + 4], edi
mov dword [esp], 0
mov dword [ebp - 0x25c], esi
mov dword [ebp - 0x24e], edi
xor edi, edi
mov word [ebp - 0x258], ax
call fcn.00407350
lea eax, [ebp - 0x268]
push ebx
push ebx
mov dword [esp], eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
test eax, eax
push esi
je 0x403adf
mov dword [esp + 4], 0
mov dword [esp], 0xfffffff9
call fcn.00407350
push ecx
push ecx
jmp 0x403af4
cmp ecx, 0xbadf00d
jne 0x40218f
inc dword [0x469d34]
jmp case.0x401718.66
xor esi, esi
test ecx, ecx
je 0x402dbf
mov dword [esp], 0
call fcn.00401435
push edx
mov esi, eax
xor edi, edi
cmp dword [ebp - 0x27c], 0
je 0x402dd9
mov dword [esp], 0x11
call fcn.00401435
push edi
mov edi, eax
xor ebx, ebx
cmp dword [ebp - 0x270], 0
je 0x402df3
mov dword [esp], 0x22
call fcn.00401435
push ebx
mov ebx, eax
mov dword [esp], 0xffffffcd
call fcn.00401435
push ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
sub esp, 0x10
test eax, eax
jmp 0x401c6f
mov eax, dword [0x40c004]
mov dword [esp], 1
mov dword [ebp - 0x268], eax
call fcn.00401435
push ecx
mov esi, eax
mov dword [esp], 0x12
call fcn.00401435
push edi
mov edi, eax
mov dword [esp], 0xffffffdd
call fcn.00401435
push edx
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x268]
mov dword [esp + 4], edi
mov dword [esp + 0x10], 0x1fff
mov dword [esp + 0xc], ebx
xor edi, edi
mov dword [esp + 8], eax
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
sub esp, 0x18
cmp word [ebx], 0xa
jne 0x403adf
jmp 0x40368d
cmp dword [ebp - 0x270], 0
jne 0x402eda
mov dword [esp], 2
call fcn.00401609
test eax, eax
push edx
mov ebx, eax
je 0x403af4
mov dword [esp], 0x33
call fcn.00401435
push ecx
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push esi
push esi
mov esi, eax
mov dword [esp], ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edi
jmp 0x402f53
mov dword [esp], 0x22
call fcn.00401435
mov ebx, eax
mov eax, dword [ebp - 0x270]
push edx
sar eax, 1
mov dword [ebp - 0x268], eax
cmp word [ebx], 0
je 0x403af4
or eax, 0x100020
test edi, edi
mov dword [ebp - 0x268], eax
js 0x402f1c
add edi, dword [0x469d24]
sub edi, 0x7fffffff
lea eax, [ebp - 0x268]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004080fa
test eax, eax
push esi
push esi
je 0x403af4
mov edx, dword [ebp - 0x268]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [esp + 8], edx
call fcn.0040148b
sub esp, 0xc
mov esi, eax
test esi, esi
setne al
jmp 0x401c72
mov dword [esp], 2
mov dword [ebp - 0x2a0], ecx
mov esi, dword [ebp - 0x270]
mov edi, dword [ebp - 0x26c]
call fcn.00401435
push ecx
mov dword [ebp - 0x29c], eax
mov dword [esp], 0x11
call fcn.00401435
mov ecx, dword [ebp - 0x2a0]
push ebx
test ecx, ecx
js 0x402fa5
add ecx, dword [0x469d24]
sub ecx, 0x7fffffff
lea edx, [ebp - 0x268]
mov dword [esp + 8], 0x100022
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call fcn.004081ce
sub esp, 0x10
test eax, eax
jne 0x403af4
mov ebx, dword [ebp - 0x268]
test ebx, ebx
je 0x403af4
cmp esi, 1
jne 0x403001
mov dword [esp], 0x23
call fcn.00401435
push esi
mov dword [esp], 0x41c060
call fcn.004083f0
lea eax, [eax + eax + 2]
push edx
jmp 0x40304c
cmp esi, 4
jne 0x40301c
mov eax, 3
call fcn.00401400
mov dword [0x41c060], eax
mov eax, 4
jmp 0x40304c
xor eax, eax
cmp esi, 3
jne 0x40304c
mov eax, dword [ebp - 0x274]
mov dword [esp + 0xc], 0xc000
mov dword [esp + 8], 0x41c060
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00403da1
sub esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], 0x41c060
mov dword [esp + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
sub esp, 0x18
test eax, eax
setne al
mov dword [esp], ebx
movzx eax, al
mov edi, eax
jmp 0x4031f7
mov dword [esp], 0x20019
call fcn.00401609
push edx
mov esi, eax
mov dword [esp], 0x33
call fcn.00401435
test esi, esi
push ecx
mov word [ebx], 0
je 0x403af4
lea edx, [ebp - 0x288]
mov dword [ebp - 0x288], 0x4000
mov dword [esp + 0x10], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp + 0x14], edx
lea edx, [ebp - 0x268]
mov dword [esp], esi
mov dword [esp + 0xc], edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
sub esp, 0x18
test eax, eax
jne 0x403108
mov eax, dword [ebp - 0x268]
cmp eax, 4
je 0x403117
cmp eax, 1
je 0x403117
cmp eax, 2
je 0x40313f
mov word [ebx], 0
mov edi, 1
jmp 0x4031f4
cmp eax, 4
jne 0x40313f
xor eax, eax
cmp dword [ebp - 0x270], 0
sete al
mov edi, eax
mov eax, dword [ebx]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004082ed
push eax
push eax
jmp 0x4031f4
mov edi, dword [ebp - 0x270]
jmp 0x4031eb
mov dword [esp], 0x20019
call fcn.00401609
push esi
mov esi, eax
mov eax, 3
call fcn.00401400
test esi, esi
mov word [ebx], 0
je 0x403af4
cmp dword [ebp - 0x270], 0
mov dword [ebp - 0x268], 0x1fff
je 0x4031a3
mov dword [esp + 0xc], 0x1fff
mov dword [esp + 8], ebx
xor edi, edi
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
sub esp, 0x10
jmp 0x4031eb
lea edx, [ebp - 0x268]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
sub esp, 0x20
test eax, eax
setne al
movzx eax, al
mov edi, eax
mov word [ebx + 0x3ffe], 0
mov dword [esp], esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x402a72
mov dword [esp], ebx
call fcn.00408312
test eax, eax
push ecx
je case.0x401718.66
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x403a83
mov dword [esp], 0xffffffed
call fcn.00401435
push edx
mov edx, dword [ebp - 0x278]
mov dword [esp], eax
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x27c]
mov dword [esp + 4], edx
call fcn.00407eb9
sub esp, 0xc
cmp eax, 0xffffffff
je 0x40368d
mov dword [esp + 4], eax
mov dword [esp], ebx
jmp 0x4039a7
mov eax, dword [ebp - 0x278]
test eax, eax
mov dword [ebp - 0x29c], eax
je 0x40328f
mov eax, 1
call fcn.00401400
mov word [0x418060], ax
xor eax, eax
cmp esi, 0x38
setne al
mov edi, eax
inc edi
jmp 0x4032e8
cmp esi, 0x38
jne 0x4032cf
mov dword [esp], 0x21
call fcn.00401435
push ecx
mov dword [esp + 8], 0x2000
mov dword [esp + 4], 0x418060
mov dword [esp], 0x41c060
call fcn.0040844c
mov dword [esp], 0x418060
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push edi
mov edi, eax
jmp 0x4032e8
mov dword [esp], 0x11
call fcn.00401435
push edi
mov dword [esp], eax
call fcn.004083f0
lea edi, [eax + eax]
push edx
cmp word [ebx], 0
je 0x403af4
mov dword [esp], ebx
call fcn.00408312
mov edx, dword [ebp - 0x29c]
mov ebx, eax
xor eax, eax
cmp esi, 0x38
push ecx
sete al
or edx, eax
je 0x40332b
mov dword [esp + 8], edi
mov dword [esp + 4], 0x418060
mov dword [esp], ebx
call fcn.00407fcc
sub esp, 0xc
jmp 0x402e18
cmp dword [ebp - 0x274], 0
je 0x40330f
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.00408012
test eax, eax
push edx
push edx
jns 0x40330f
jmp 0x403af4
mov eax, 2
call fcn.00401400
test eax, eax
mov dword [ebp - 0x2a8], eax
jle case.0x401718.66
xor esi, esi
cmp word [ebx], 0
je 0x4035a8
mov dword [esp], ebx
call fcn.00408312
mov word [ebp - 0x2a0], 0
push edi
mov edi, eax
mov dword [ebp - 0x2a4], 2
cmp dword [ebp - 0x284], 0x39
jne 0x403490
lea eax, [ebp - 0x268]
lea ebx, [ebp - 0x288]
mov dword [esp + 0x10], 0
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov eax, 2
sub eax, dword [ebp - 0x274]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub esp, 0x14
test eax, eax
je 0x4035a8
mov eax, dword [ebp - 0x268]
test eax, eax
je 0x4035a8
mov dword [ebp - 0x2a4], eax
cmp dword [ebp - 0x274], 0
movzx eax, byte [ebp - 0x288]
mov word [ebp - 0x28c], ax
jne 0x4034dd
lea eax, [ebp - 0x28c]
mov dword [esp + 0x14], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], 8
mov dword [esp], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x268]
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
sub esp, 0x18
test eax, eax
jne 0x4034dd
dec dword [ebp - 0x268]
mov word [ebp - 0x28c], 0xfffd
je 0x4034dd
dec dword [ebp - 0x2a4]
mov dword [esp + 0xc], 1
mov eax, dword [ebp - 0x2a4]
mov dword [esp + 8], 0
mov dword [esp], edi
neg eax
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub esp, 0x10
jmp 0x403408
mov eax, esi
or eax, dword [ebp - 0x274]
je 0x4034c0
lea eax, [ebp - 0x28c]
mov dword [esp + 8], 2
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00407f86
sub esp, 0xc
test eax, eax
jne 0x4034dd
jmp 0x4035a8
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.00408012
test eax, eax
push ebx
push ebx
jns 0x40349a
xor esi, esi
jmp 0x4035a8
cmp dword [ebp - 0x274], 0
je 0x403506
movzx eax, word [ebp - 0x28c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.004082ed
push ecx
push ecx
jmp 0x403ae5
cmp word [ebp - 0x2a0], 0xd
mov eax, dword [ebp - 0x28c]
je 0x403520
cmp word [ebp - 0x2a0], 0xa
jne 0x40356c
cmp ax, word [ebp - 0x2a0]
je 0x403535
cmp ax, 0xd
je 0x40355f
cmp ax, 0xa
je 0x40355f
mov eax, dword [ebp - 0x2a4]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp], edi
neg eax
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub esp, 0x10
jmp 0x4035a8
mov edx, dword [ebp - 0x29c]
mov word [edx + esi*2], ax
inc esi
jmp 0x4035a8
mov edx, dword [ebp - 0x29c]
inc esi
mov word [edx + esi*2 - 2], ax
mov eax, dword [ebp - 0x28c]
test ax, ax
mov word [ebp - 0x2a0], ax
je 0x4035a8
cmp dword [ebp - 0x2a8], 0x1fff
mov eax, 0x1fff
cmovle eax, dword [ebp - 0x2a8]
cmp eax, esi
jg 0x40338d
mov eax, dword [ebp - 0x29c]
test esi, esi
mov word [eax + esi*2], 0
jmp 0x401c6f
cmp word [ebx], 0
je case.0x401718.66
mov eax, 2
mov esi, dword [ebp - 0x274]
call fcn.00401400
mov dword [esp], ebx
mov edi, eax
call fcn.00408312
push edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub esp, 0x10
cmp dword [ebp - 0x27c], 0
jns 0x40399a
jmp case.0x401718.66
mov dword [esp], ebx
call fcn.00408312
test eax, eax
push edi
je case.0x401718.66
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x403a83
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.00408312
test eax, eax
push esi
je 0x40368d
lea edx, [ebp - 0x268]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
push ecx
push ecx
je 0x40368d
jmp 0x4036ab
mov dword [esp], 2
call fcn.00401435
lea edx, [ebp - 0x268]
push edi
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
push edx
push edx
jne 0x403697
mov eax, dword [ebp - 0x29c]
mov word [eax], 0
mov word [ebx], 0
jmp 0x403af4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.004082ed
push esi
push esi
lea eax, [ebp - 0x23c]
mov dword [esp], ebx
mov dword [esp + 4], eax
jmp 0x4038d2
mov dword [esp], 0xfffffff0
call fcn.00401435
push edx
mov esi, eax
mov dword [esp], eax
call fcn.00407cbf
test eax, eax
push ecx
jne 0x4036e6
mov dword [esp], 0xffffffed
call fcn.00401435
push eax
mov dword [esp], esi
call fcn.00407e1a
push edi
mov dword [esp + 8], 2
mov dword [esp + 4], 0x40000000
mov dword [esp], esi
call fcn.00407eb9
sub esp, 0xc
mov dword [ebp - 0x29c], eax
inc eax
jne 0x40372c
mov dword [esp], esi
mov edi, 1
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, 0xffffffef
push esi
jmp 0x403888
mov eax, dword [0x469dcc]
mov dword [esp], 0x40
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x2a0], eax
mov dword [esp + 4], eax
call edi
test eax, eax
push ebx
mov edx, 0xfffffd66
push ebx
mov ebx, eax
je 0x40385d
mov dword [esp], 0
call fcn.00403d6f
push eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00403d47
mov eax, dword [ebp - 0x278]
push edx
push edx
mov dword [esp + 4], eax
mov dword [esp], 0x40
call edi
test eax, eax
push ecx
mov edi, eax
push ecx
je 0x403809
mov eax, dword [ebp - 0x278]
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x27c]
mov dword [esp], eax
call fcn.00403da1
mov eax, edi
sub esp, 0x10
cmp byte [eax], 0
je 0x4037ff
mov ecx, dword [eax]
lea edx, [eax + 8]
mov dword [esp + 4], edx
mov dword [ebp - 0x2a4], edx
mov dword [esp + 8], ecx
mov dword [ebp - 0x2a8], ecx
mov ecx, dword [eax + 4]
add ecx, ebx
mov dword [esp], ecx
call fcn.00407dfb
mov edx, dword [ebp - 0x2a4]
mov ecx, dword [ebp - 0x2a8]
sub esp, 0xc
lea eax, [edx + ecx]
jmp 0x4037c0
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.00407fcc
sub esp, 0xc
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0xffffffff
call fcn.00403da1
sub esp, 0x10
mov edx, eax
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x2a0], edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x2a0]
push eax
test edx, edx
js 0x403713
mov eax, 0xfffffff3
xor edi, edi
mov dword [esp], eax
call fcn.0040168d
jmp 0x402a72
xor eax, eax
call fcn.00401400
cmp eax, dword [0x469d8c]
mov esi, eax
jae 0x403af4
imul ebx, eax, 0x4018
mov eax, dword [ebp - 0x278]
add ebx, dword [0x469d88]
test eax, eax
js 0x4038e4
jne 0x4038dc
mov eax, dword [ebp - 0x29c]
add ebx, 0x18
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.004083c8
jmp 0x402683
mov eax, dword [ebx + eax*4]
jmp 0x40399a
not eax
test eax, eax
mov dword [ebp - 0x278], eax
je 0x403902
mov eax, 1
call fcn.00401400
mov dword [ebp - 0x27c], eax
jmp 0x403920
mov eax, dword [ebp - 0x270]
mov dword [esp + 4], eax
lea eax, [ebx + 0x18]
mov dword [esp], eax
call fcn.0040857c
push eax
push eax
or dword [ebx + 8], 0x100
mov eax, dword [ebp - 0x278]
mov edx, dword [ebp - 0x27c]
mov dword [ebx + eax*4], edx
cmp dword [ebp - 0x274], 0
je case.0x401718.66
mov dword [esp], esi
call fcn.0040121c
jmp 0x403a83
xor eax, eax
call fcn.00401400
cmp eax, 0x1f
ja 0x403af4
cmp dword [ebp - 0x274], 0
je 0x4039b1
cmp dword [ebp - 0x278], 0
je 0x40398d
mov dword [esp], eax
call fcn.00401332
push eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00401282
jmp 0x402683
mov dword [esp], 0
call fcn.0040137c
push edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.004082ed
jmp 0x402683
cmp dword [ebp - 0x278], 0
mov edx, dword [0x469d60]
lea eax, [eax + 0x24]
je 0x4039d2
mov ecx, dword [ebp - 0x27c]
mov dword [edx + eax*4 + 4], ecx
jmp case.0x401718.66
mov eax, dword [edx + eax*4 + 4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.0040857c
jmp 0x402683
mov dword [esp], 5
call fcn.00408f70
push ebx
mov ebx, eax
mov dword [esp], 0x22
call fcn.00401435
test ebx, ebx
push esi
je 0x403ae9
lea esi, [ebp - 0x268]
mov dword [esp], eax
mov dword [esp + 4], esi
call dword [sym.imp.ole32.dll_IIDFromString]
test eax, eax
push ecx
push ecx
js 0x403ae9
lea eax, [ebp - 0x288]
mov dword [esp + 8], 0
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x274]
mov dword [esp + 4], eax
call ebx
sub esp, 0x10
test eax, eax
js 0x403ae9
mov eax, dword [ebp - 0x288]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call fcn.004083c8
mov eax, dword [ebp - 0x288]
push edx
push edx
mov dword [esp], eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
push eax
jmp case.0x401718.66
and ecx, dword [0x440160]
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0xb
mov dword [esp], eax
mov dword [esp + 8], ecx
call dword [sym.imp.USER32.dll_SendMessageW]
sub esp, 0x10
cmp dword [ebp - 0x280], 0
je case.0x401718.66
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.USER32.dll_InvalidateRect]
sub esp, 0xc
xor edi, edi
add dword [0x469d28], edi
xor ecx, ecx
jmp case.0x401718.2
mov eax, dword [ebp - 0x29c]
mov word [eax], 0
mov edi, 1
jmp 0x403adf
lea esp, [ebp - 0xc]
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret 4