Function at 0x44fae6
Capabilities:
Get common file path
Get disk information
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
push ebx
push esi
push edi
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0xf8]
push 4
mov byte [ebp - 0x25], dl
call fcn.00401e5e
mov dword [ebp - 0x14], 0x22ba3946
xor eax, eax
mov dword [ebp - 0x34], 0x3a6c9cd4
mov dword [ebp - 0x34], 0x71658a6
mov dword [ebp - 0x34], 0x402ad92
mov dword [ebp - 8], eax
jmp 0x44fb37
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xf8]
mov dword [ecx + edx*4], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x44fb28
push 3
pop edi
push 1
mov dword [ebp - 0x14], eax
pop esi
jmp 0x44fc1c
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], 0xe77e815f
mov dword [ebp - 0x1c], 0xfffffff6
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x44fb73
push 0x293
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
mov dword [ebp - 8], eax
cmp dword [ebp - 8], edi
jg 0x44fc19
mov dword [ebp - 0x1c], 0xffffffff
lea ecx, [ebp - 0x104]
push 4
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x44fbab
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x94], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x44fb9a
mov dword [ebp - 0xc], eax
jmp 0x44fbc8
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x104]
mov dword [ecx + edx*4], 0x5189d9e6
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x44fbb5
mov dword [ebp - 0x1c], eax
xor ebx, ebx
mov dword [ebp - 0x18], esi
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x104]
setl bl
sub ecx, dword [eax]
sub ecx, ebx
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x104]
call fcn.00401f30
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jle 0x44fb7f
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x44fb4b
lea ecx, [ebp - 0xf8]
call fcn.00401f30
xor eax, eax
mov dword [ebp - 0xc], 0x5d6c05ba
push 2
mov dword [ebp - 8], eax
pop edx
jmp 0x44fc4e
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0xd4], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jl 0x44fc41
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], edx
jl 0x44fd08
mov ebx, 0x197e7c14
mov dword [ebp - 8], 0xeede0b40
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x34], 0xb43d2717
mov dword [ebp - 0x24], 0xee491ba6
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x18], 0xc8210466
mov dword [ebp - 8], edx
cmp dword [ebp - 8], edi
jl 0x44fcfc
mov dword [ebp - 0x2c], 0x7d7c1188
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x24], 0x1c5a3d7f
mov ecx, dword [ebp - 0x18]
inc dword [ebp - 0x18]
test ecx, ecx
jne 0x44fcc4
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
xor edx, edx
test ecx, ecx
mov ecx, 0xef3b0639
setle dl
cmp ecx, edx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x40]
imul ecx, dword [ebp - 0xc]
cmp dword [ebp - 0x2c], ecx
jle 0x44fcec
mov ecx, esi
cmp dword [ebp - 0xc], eax
jne 0x44fcee
mov ecx, eax
mov dword [ebp - 0x24], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jge 0x44fca6
push 2
pop edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jge 0x44fc64
mov dword [ebp - 0xc], eax
jmp 0x44fd28
mov ecx, dword [ebp - 0xc]
cmp dword [ebp + ecx*4 - 0xd4], eax
jne 0x44fd2d
mov ecx, dword [ebp - 0xc]
cmp dword [ebp + ecx*4 - 0xd4], eax
jne 0x44fd2d
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jle 0x44fd0d
mov dword [ebp - 0x18], 0x1fad
mov dword [ebp - 8], eax
jmp 0x44fd47
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x38], 0x8ec0ae97
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x44fd39
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0x1b
jle 0x44fe4e
mov dword [ebp - 8], 0x6cce57bf
mov dword [ebp - 8], 0xa
jmp 0x44fe1f
mov dword [ebp - 0xc], 0xfffffffa
mov dword [ebp - 0xc], 0x14
cmp dword [ebp - 0xc], 0xb
jl 0x44fe1c
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x38], eax
jne 0x44fd99
cmp dword [ebp - 0x18], eax
jne 0x44fd99
mov esi, eax
mov ecx, dword [ebp - 0x38]
xor edx, edx
cmp esi, ecx
mov ecx, dword [ebp - 0xc]
sete dl
xor ebx, ebx
sub edx, ecx
mov ecx, dword [ebp - 0x18]
cmp ecx, edx
mov ecx, dword [ebp - 0x38]
setg bl
xor edx, edx
sub ebx, ecx
mov ecx, dword [ebp - 0xc]
cmp ecx, ebx
setge dl
xor ecx, ecx
cmp edx, 0xfffffff9
setne cl
add ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0xc], ecx
mov byte [ebp - 0xd], al
jl 0x44fde7
cmp byte [ebp - 0xd], 0
je 0x44fdf9
push 0x18d5
call dword [sym.imp.USER32.dll_GetSysColor]
jmp 0x44fdf7
cmp byte [ebp - 0xd], 0
je 0x44fdf9
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
xor eax, eax
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x44fe0c
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
xor eax, eax
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xb
push 1
pop esi
jge 0x44fd8a
dec dword [ebp - 8]
cmp dword [ebp - 8], 7
jle 0x44fd72
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x44fe3e
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_TranslateMDISysAccel]
xor eax, eax
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x1b
jg 0x44fd5f
push 2
pop edx
mov ebx, dword [0x46e51c]
mov dword [ebp - 0xc], 0xe387fb0b
mov dword [ebp - 0x34], ebx
mov dword [ebp - 8], eax
jmp 0x44fe74
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0xcc], 8
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jl 0x44fe63
mov dword [ebp - 0xc], eax
jmp 0x44fe8f
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0xcc], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jl 0x44fe7e
push 3
mov dword [ebp - 0xc], eax
pop edi
cmp dword [ebp - 0xc], edi
jg 0x44ff23
push edi
lea ecx, [ebp - 0x110]
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 8], eax
jmp 0x44fec8
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + edx*4], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x44feb9
mov ecx, dword [ebp - 0xc8]
mov esi, dword [ebp - 0x110]
xor ecx, ecx
cmp dword [esi + 8], 0x87642760
setne cl
xor edx, edx
cmp ecx, 0xffffffff
setg dl
xor ecx, ecx
cmp edx, 0xcee3
setle cl
sub ecx, dword [esi]
jne 0x44ff06
cmp dword [esi + 8], eax
jne 0x44ff06
xor esi, esi
inc esi
jmp 0x44ff0b
xor esi, esi
inc esi
mov eax, esi
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x110]
call fcn.00401f30
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jle 0x44fea3
xor eax, eax
cmp byte [ebp - 0x25], 0
mov edi, dword [ebp + 8]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
je 0x4500cd
cmp ebx, esi
jne 0x4500cd
push 3
lea ecx, [ebp - 0xa4]
call fcn.00401e5e
mov dword [ebp - 0xc], esi
xor eax, eax
mov dword [ebp - 0x14], 0x576c3a0b
mov dword [ebp - 0x18], esi
mov dword [ebp - 8], eax
jmp 0x44ff77
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xa4]
mov dword [ecx + edx*4], 0xc204
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x44ff64
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], eax
jl 0x44ffb5
mov dword [ebp - 8], esi
mov dword [ebp - 8], eax
jmp 0x44ff9b
mov dword [ebp - 0x14], 4
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jle 0x44ff91
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xa4]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x14], ecx
dec dword [ebp - 0xc]
jns 0x44ff89
mov edx, dword [ebp - 0xa4]
cmp dword [edx + 8], eax
je 0x450000
xor ecx, ecx
cmp dword [edx], 0x3c576436
mov edx, 0xb719d872
sete cl
cmp edx, ecx
mov ecx, dword [ebp - 0x14]
sbb esi, esi
add esi, 7
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setne dl
xor ecx, ecx
cmp edx, 0xfb1a
setle cl
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], eax
je 0x450000
xor eax, eax
lea esi, [eax + 1]
jmp 0x450002
mov esi, eax
mov edx, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
add edx, 0xa22e
cmp eax, edx
setge cl
mov dword [ebp - 0xc], ecx
xor ecx, ecx
mov eax, dword [ebp - 0xc]
cmp eax, esi
mov eax, dword [ebp - 0x18]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0xa4]
lea ecx, [ebp - 0xa4]
setne dl
add edx, dword [eax + 4]
mov dword [ebp - 0x18], edx
call fcn.00401f30
push 4
pop esi
xor eax, eax
mov dword [ebp - 0xc], 0xffffffff
mov dword [edi + 8], esi
mov dword [ebp - 8], eax
jmp 0x450068
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x150], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x450057
cmp dword [ebp - 0xc], 0x5baf43b7
jl 0x4500ac
mov dword [ebp - 0xc], 8
jmp 0x4500a4
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 8], eax
jmp 0x45009c
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x150], 0xbf8f0aa6
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x45008b
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x1b
jge 0x45007f
jmp 0x4500c4
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], al
je 0x4500c4
push eax
push 0x1f4
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
xor eax, eax
mov dword [edi + 0xc], 0x46e51c
jmp 0x4500d0
push 4
pop esi
cmp dword [ebp - 0x30], ebx
jge 0x450bc6
push dword [ebp + 8]
movdqa xmm0, xmmword [0xa5dbc0]
lea ecx, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x140]
mov dword [ebp - 0x84], eax
push ecx
xor ebx, ebx
mov dword [ebp - 0x80], eax
inc ebx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x84]
push eax
movdqu xmmword [ebp - 0x140], xmm0
call fcn.00401f92
mov dword [ebp - 0x18], 0xcdea
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0xc], 0x260389a9
push esi
call fcn.00401e5e
mov dword [ebp - 0x1c], 0x4b58fe4d
mov dword [ebp - 8], 0
jmp 0x450155
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xe0]
mov dword [eax + ecx*4], 0xabff5ecc
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x450142
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x84]
xor eax, eax
cmp dword [esi + 0xc], 0xfffffff8
setne al
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
dec eax
neg eax
sbb eax, eax
xor edx, edx
neg eax
imul ecx, eax, 0xfaa2
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 0x84]
setle dl
mov eax, dword [eax + 8]
sub eax, edx
add dword [esi + 0xc], eax
mov eax, dword [ebp - 0xe0]
mov ecx, dword [esi + 0xc]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0xe0]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], 0
call fcn.00401f30
lea ecx, [ebp - 0x84]
call fcn.00401f30
push 2
pop esi
mov edi, 0x46e520
lea ecx, [ebp - 0x90]
push esi
mov dword [ebp - 0x1c], edi
call fcn.00401e5e
mov dword [ebp - 0xc], 0x5b7cefa9
xor eax, eax
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x18], 0xe74a6e8f
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0xc], eax
jmp 0x450218
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x90]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x450209
mov dword [ebp - 0xc], eax
jmp 0x450233
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0xc4], 0xfffffffb
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x450222
mov ecx, dword [ebp - 0x90]
xor edx, edx
cmp dword [ecx], eax
sete dl
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], eax
je 0x4502ed
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx]
dec ecx
cmp ecx, 0xbde283bc
jne 0x450269
mov ecx, eax
cmp dword [ebp - 0xc], eax
je 0x45026b
mov ecx, ebx
mov dword [ebp - 0x18], ecx
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x90]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [esi + 4]
setl dl
imul ecx, edx, 0xa6e4
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [esi + 4]
jle 0x450299
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov ecx, dword [ebp - 0xc]
cmp ecx, 0x4b9a733e
setle dl
xor ecx, ecx
xor ebx, ebx
inc ecx
cmp edx, ecx
mov ecx, dword [ebp - 0x90]
setl bl
sub ebx, dword [ecx]
neg ebx
sbb ebx, ebx
inc ebx
mov dword [ebp - 0xc], ebx
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc4]
sub edx, dword [esi + 4]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0xffffffff
setne cl
xor ebx, ebx
inc ebx
mov dword [ebp - 0xc4], ecx
cmp ecx, 0xfffffffa
jge 0x4502ed
mov eax, ebx
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x24], eax
call fcn.00401f30
cmp dword [ebp - 0x30], 0
jle 0x45075e
push ebx
lea ecx, [ebp - 0x60]
call fcn.00401e5e
mov dword [ebp - 8], 0xfffffffa
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xc], 0xbfad241d
mov dword [ebp - 0x18], 0x4810
mov dword [ebp - 8], eax
jmp 0x450340
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x60]
mov dword [ecx + edx*4], 0xd3df75dc
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x450330
mov dword [ebp - 8], eax
cmp dword [ebp - 8], eax
jg 0x4505b5
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x40], 0x7fd5d1af
mov dword [ebp - 0x24], 0x6201886a
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jl 0x450566
push ebx
lea ecx, [ebp - 0xbc]
call fcn.00401e5e
push 3
pop esi
mov dword [ebp - 0x2c], 0xffffffff
lea ecx, [ebp - 0x78]
push esi
call fcn.00401e5e
xor eax, eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 0xc], eax
jmp 0x4503b5
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx + edx*4], 0xa11c1574
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x4503a2
mov dword [ebp - 0xc], eax
jmp 0x4503cf
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x78]
mov dword [ecx + edx*4], 0xfffffffb
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x4503bf
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], eax
mov dword [ebp - 0xc], eax
xor ebx, ebx
mov dword [ebp - 0x54], 0xfffffffc
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + edx*4], eax
setne bl
cmp ebx, dword [ecx + esi*4]
je 0x4504d3
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + edx*4], 0xfff80008
jne 0x45041e
cmp dword [ebp - 0x14], eax
je 0x45041e
xor edi, edi
inc edi
mov ecx, edi
jmp 0x450423
xor edi, edi
mov ecx, eax
inc edi
mov esi, dword [ebp - 0x14]
xor edx, edx
add ecx, ecx
cmp ecx, 0x31cf6a12
mov ecx, 0xbaa6f4ed
setge dl
cmp ecx, edx
sbb edx, edx
neg edx
sub edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x60]
neg edx
sbb edx, edx
inc edx
add edx, dword [ecx + esi*4]
mov ecx, dword [ebp - 0x2c]
cmp edi, edx
sbb edx, edx
inc edx
sub edx, ecx
je 0x45045f
mov esi, edi
cmp dword [ebp - 0xc], eax
jne 0x450461
mov esi, eax
mov edx, dword [ebp - 0x14]
xor ebx, ebx
mov ecx, dword [ebp - 0x60]
cmp esi, dword [ecx + edx*4]
mov ecx, dword [ebp - 0xc]
setge bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [ebp - 0xbc]
setl dl
xor ebx, ebx
sub edx, dword [ecx]
mov ecx, dword [ebp - 0x3c]
cmp edx, ecx
mov ecx, dword [ebp - 0x2c]
setl bl
xor edx, edx
cmp ebx, ecx
setne dl
test edx, edx
jne 0x45049c
mov ecx, dword [ebp - 0xc]
xor ebx, ebx
inc ebx
mov edx, ebx
cmp dword [ebp - 0x14], eax
jne 0x4504a8
mov edx, eax
mov ecx, dword [ebp - 0x78]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
dec esi
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp ecx, esi
setne dl
neg edx
jne 0x4504cf
mov ecx, dword [ebp - 0x60]
cmp dword [ecx], eax
je 0x4504d3
mov edx, ebx
jmp 0x4504d8
xor ebx, ebx
mov edx, eax
inc ebx
mov ecx, dword [ebp - 8]
sub edx, ecx
mov dword [ebp - 0xc], edx
dec dword [ebp - 0x18]
mov ecx, dword [ebp - 0xbc]
dec dword [ecx]
jns 0x4503dc
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
dec eax
add ecx, eax
imul ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setle dl
sub edx, 0xcc8f
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x78]
setne cl
xor edx, edx
add ecx, dword [eax + 4]
mov eax, dword [ebp - 0x40]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setne dl
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x78]
setne cl
mov dword [eax], ecx
lea ecx, [ebp - 0x78]
call fcn.00401f30
lea ecx, [ebp - 0xbc]
call fcn.00401f30
dec dword [ebp - 0x14]
jns 0x450379
xor eax, eax
mov edx, dword [ebp - 0x24]
xor ebx, ebx
mov ecx, dword [ebp - 0x40]
cmp ecx, edx
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x60]
setne bl
mov dword [ebp - 0x40], ebx
xor ebx, ebx
push 1
cmp dword [ecx], edx
mov edx, dword [ebp - 0x24]
setl bl
xor ecx, ecx
cmp dword [ebp - 0x40], ebx
pop ebx
setl cl
sub edx, ecx
neg edx
sbb edx, edx
add edx, 2
cmp edx, 0xe03a8461
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x20], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], eax
jle 0x450351
mov edi, dword [ebp - 0x1c]
lea ecx, [ebp - 0x60]
call fcn.00401f30
mov eax, dword [edi]
lea ecx, [ebp - 0xec]
push 3
mov dword [ebp - 0x3c], eax
call fcn.00401e5e
mov dword [ebp - 8], 0xe2236432
mov dword [ebp - 0x20], 0x58bd4dfb
mov dword [ebp - 8], 0
jmp 0x4505f9
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xec]
mov dword [eax + ecx*4], 0xb9b55bb2
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x4505e6
mov dword [ebp - 8], 0
jmp 0x450631
mov dword [ebp - 0x24], 0x7a73d2d6
xor edx, edx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
cmp eax, ecx
setl dl
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xec]
mov dword [eax + edx*4], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jle 0x450608
lea ecx, [ebp - 0xec]
call fcn.00401f30
mov dword [ebp - 8], 9
xor edx, edx
mov dword [ebp - 0x18], 0xfffffff6
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x20], 7
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], 0x2aa6
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, dword [ebp - 8]
jne 0x450684
cmp dword [ebp - 0x18], eax
jne 0x450687
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 8]
sub edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, ecx
mov ecx, dword [ebp - 8]
setl bl
xor edx, edx
cmp ebx, ecx
setne dl
mov dword [ebp - 0x20], edx
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x4506c4
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
xor eax, eax
push dword [ebp + 8]
movdqa xmm0, xmmword [0xa5dbe0]
lea ecx, [ebp - 0x120]
mov ebx, dword [edi + 4]
add edi, 8
push ecx
lea ecx, [ebp - 0x130]
mov dword [ebp - 0xb0], eax
push ecx
push eax
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xac], eax
movdqu xmmword [ebp - 0x130], xmm0
mov dword [ebp - 0xa8], eax
call fcn.00401f92
mov esi, dword [ebp - 0xb0]
and dword [esi + 8], 0
mov byte [ebp - 0xd], 0
cmp byte [ebp - 0xd], 0
je 0x450731
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
inc dword [esi + 8]
cmp dword [esi + 8], 0x1c
jle 0x450713
lea ecx, [ebp - 0xb0]
call fcn.00401f30
test ebx, ebx
jne 0x45074c
add edi, 8
add edi, dword [ebp - 0x3c]
dec dword [ebp - 0x30]
push 1
mov dword [ebp - 0x1c], edi
pop ebx
jne 0x450305
mov dword [ebp - 0x14], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x1c], 0xdaa237f4
mov dword [ebp - 0x20], 0xfffffff7
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x54], 0x9235
mov dword [ebp - 8], ecx
jmp 0x450795
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x164], 0x131d
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x450784
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, eax
setle dl
cmp ebx, edx
sbb eax, eax
xor edx, edx
neg eax
cmp eax, 0xcee3
setne dl
cmp edx, 0xfffffffc
je 0x4507d0
mov eax, ebx
cmp dword [ebp - 0x14], ecx
jne 0x4507d2
mov eax, ecx
xor edx, edx
cmp eax, 0x58efa97f
mov eax, dword [ebp - 0x14]
setle dl
xor ebx, ebx
cmp edx, eax
push 2
setge bl
xor edx, edx
add ebx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp ebx, eax
mov eax, dword [ebp - 0x14]
setl dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setg bl
xor edx, edx
cmp ebx, eax
setge dl
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0xd2ae857b
mov eax, dword [ebp - 0x14]
sbb edx, edx
xor ebx, ebx
neg edx
cmp edx, eax
mov eax, 0xffff
setle bl
cmp eax, ebx
pop ebx
sbb esi, esi
neg esi
sub esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, eax
setle dl
imul edx, edx, 0x9ab8
inc edx
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0x387f
setle al
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], ecx
jmp 0x45087b
mov byte [ebp - 0xd], cl
cmp byte [ebp - 0xd], 0
je 0x450878
push ecx
push 0x22b9
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor ecx, ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x450861
mov esi, dword [edi]
push 6
pop eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 0xfffffff9
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], esi
mov dword [ebp - 8], ecx
jmp 0x4508a7
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x158], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x45089a
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], ecx
je 0x4508d3
xor eax, eax
lea edx, [eax + 1]
jmp 0x4508d5
mov edx, ecx
xor eax, eax
cmp edx, 0x5fba2522
sete al
xor edx, edx
test eax, eax
setle dl
sub edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setle bl
xor edx, edx
cmp ebx, eax
setge dl
xor ebx, ebx
cmp edx, 0x1230
mov edx, 0xb6930509
setg bl
xor eax, eax
cmp ebx, 0x91cb
setge al
imul eax, eax, 0xfe04
cmp edx, eax
sbb eax, eax
xor ebx, ebx
inc eax
inc ebx
imul eax, dword [ebp - 0x14]
test eax, eax
je 0x45094a
mov dword [ebp - 0x54], 0xfcecb2ec
mov dword [ebp - 0x1c], 0x55dbfe6b
mov dword [ebp - 8], ebx
dec dword [ebp - 0x1c]
jmp 0x4509a8
mov dword [ebp - 8], 0x19
jmp 0x4509a3
mov dword [ebp - 0x24], 0xbc1846e9
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], 0x194e4064
mov dword [ebp - 0x14], ecx
jmp 0x45099a
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], 0xe702b681
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ecx
je 0x450987
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov edx, 0x10000
sub edx, eax
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x20], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x36
jle 0x450969
dec dword [ebp - 8]
cmp dword [ebp - 8], ebx
je 0x450953
mov dword [ebp - 0x14], ecx
jmp 0x450a11
mov dword [ebp - 0xc], ecx
jmp 0x4509c9
mov byte [ebp - 0xd], cl
cmp byte [ebp - 0xd], 0
je 0x4509c6
push ecx
push ecx
push ecx
call dword [sym.imp.USER32.dll_UnionRect]
xor ecx, ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jle 0x4509b2
mov dword [ebp - 0xc], ecx
jmp 0x450a09
mov dword [ebp - 8], 0x52fa57a8
mov dword [ebp - 8], 0xfffffff8
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], ecx
jl 0x450a06
mov byte [ebp - 0xd], cl
cmp byte [ebp - 0xd], 0
je 0x450a01
push 0x2042
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor ecx, ecx
dec dword [ebp - 8]
jns 0x4509e9
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jle 0x4509d3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jge 0x4509ad
mov eax, dword [edi + 4]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], ecx
jmp 0x450a33
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x44], 0xdd33
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x450a25
mov dword [ebp - 0xc], ecx
jmp 0x450a4b
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x50], 0xa76aabec
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x450a3d
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x4c], ecx
jl 0x450afa
mov dword [ebp - 8], 0xbd035c5
xor edx, edx
mov dword [ebp - 0x3c], 0x28451d77
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp + eax*4 - 0x44]
cmp eax, 0x987f
setge dl
mov dword [ebp - 8], edx
cmp dword [ebp - 8], ecx
jne 0x450acf
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp + eax*4 - 0x44]
cmp eax, 1
mov eax, dword [ebp - 0x44]
setg bl
xor edx, edx
cmp ebx, eax
mov eax, dword [ebp - 0x50]
setne dl
xor ebx, ebx
imul edx, edx, 0xc4f3
cmp edx, eax
sete bl
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp + eax*4 - 0x44]
cmp dword [ebp - 8], eax
jne 0x450acc
mov ebx, ecx
jmp 0x450acf
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 0x4c]
push 1
mov edx, dword [ebp + eax*4 - 0x44]
xor eax, eax
inc eax
sub eax, ebx
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x4c]
setg bl
mov eax, dword [ebp + eax*4 - 0x44]
add eax, ebx
mov dword [ebp - 0x3c], eax
dec dword [ebp - 0x4c]
pop ebx
jns 0x450a5d
cmp dword [ebp - 0x1c], 0
jne 0x450bca
cmp byte [ebp - 0x25], 0
je 0x450b18
cmp dword [ebp - 0x34], ebx
jne 0x450b18
mov ecx, dword [ebp + 8]
lea eax, [esi + 0x10]
add dword [ecx + 8], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0xc]
push esi
mov dword [ebp - 0x20], eax
call fcn.0045fbe4
mov dword [ebp - 0x1c], eax
xor eax, eax
pop ecx
mov dword [ebp - 0x98], eax
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x98]
push eax
push esi
call fcn.0045f5f6
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov ebx, dword [ebp - 0x6c]
mov esi, ecx
test eax, eax
jle 0x450ba3
mov eax, esi
and eax, 0x80000001
jns 0x450b6b
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, dword [ebp - 0x34]
add eax, esi
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x20]
jmp 0x450b80
lea eax, [edx + 1]
cdq
idiv dword [ebp - 0x30]
cmp word [ebx + edx*2], cx
jne 0x450b7d
xor eax, eax
inc eax
mov word [ebx + edx*2], ax
mov al, byte [edx + edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov byte [esi + edx], al
inc esi
mov eax, dword [ebp - 0x30]
cmp esi, eax
jl 0x450b5d
mov edi, dword [ebp + 8]
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 4], eax
test ebx, ebx
je 0x450bcd
push ebx
call fcn.00460396
pop ecx
xor ecx, ecx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], ecx
jmp 0x450bcd
xor ecx, ecx
jmp 0x450bcd
mov edi, dword [ebp + 8]
xor eax, eax
inc eax
mov dword [ebp - 0xc], eax
mov dword [ebp + 8], ecx
jmp 0x450be9
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x170], 0x6310feca
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jl 0x450bd8
mov byte [ebp + 0xb], cl
cmp byte [ebp + 0xb], 0
je 0x450c02
push ecx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegUnLoadKeyW]
xor ecx, ecx
push 2
mov dword [ebp - 8], 0x67d50f82
mov dword [ebp - 0xc], ecx
pop ebx
jmp 0x450c36
inc dword [ebp - 8]
mov dword [ebp - 8], ecx
jmp 0x450c2e
mov byte [ebp + 0xb], cl
cmp byte [ebp + 0xb], 0
je 0x450c2b
push ecx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
xor ecx, ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jle 0x450c19
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jle 0x450c11
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret