Function at 0x45dd3f
Capabilities:
Extract resource via kernel32 functions
Get common file path
Resolve function by parsing pe exports
Suspend thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x200
push esi
mov dword [esp + 0x34], ecx
xor eax, eax
push edi
xor edi, edi
mov dword [esp + 0x18], eax
inc edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x14], 0x37bc7528
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], 0xe1ca2961
mov dword [esp + 0x20], 0xfffffff8
mov dword [esp + 8], eax
jmp 0x45dd9f
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x140], 0xb5ca9869
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45dd8c
mov dword [esp + 8], eax
jmp 0x45ddbe
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x198], 5
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x45ddab
mov dword [esp + 8], eax
jmp 0x45ddde
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x150], 0xaeb5
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45ddcb
dec dword [esp + 0x20]
mov dword [esp + 0x14], eax
jmp 0x45de06
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45de02
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
xor eax, eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x18
jne 0x45ddee
push 4
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x18], eax
pop edx
jmp 0x45de31
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x1a0], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x45de1e
cmp dword [esp + 8], 0x5baf43b7
mov esi, dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
jl 0x45de85
mov dword [esp + 8], 8
jmp 0x45de7c
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x10], eax
jmp 0x45de72
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1a0], 0xbf8f0aa6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x45de5f
inc dword [esp + 8]
cmp dword [esp + 8], 0x1b
jge 0x45de51
jmp 0x45de9c
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45de9c
push eax
push 0x1f4
push eax
push eax
call esi
xor eax, eax
mov ecx, dword [0xa60138]
test cl, 1
jne 0x45df26
push eax
or ecx, edi
mov dword [0xa60160], eax
push eax
mov dword [0xa60138], ecx
mov dword [0xa60164], eax
call fcn.004177ae
mov ecx, eax
mov dword [0xa6017c], 0x3f800000
mov dword [0xa60160], ecx
xor eax, eax
mov dword [esp + 0x94], ecx
lea ecx, [esp + 0x94]
push ecx
push 0x10
push eax
mov dword [0xa60168], eax
mov ecx, 0xa60168
mov dword [0xa60170], eax
mov dword [0xa6016c], eax
lea eax, [esp + 0x168]
push eax
call fcn.004174e4
push 0x46c7c0
mov dword [0xa60174], 7
mov dword [0xa60178], 8
call fcn.0046035f
pop ecx
xor eax, eax
mov dword [esp + 8], 0xffffffff
mov dword [esp + 0x14], eax
jmp 0x45df49
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x178], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x45df36
cmp dword [esp + 8], 0x5baf43b7
jl 0x45df99
mov dword [esp + 8], 8
jmp 0x45df90
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x10], eax
jmp 0x45df85
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x178], 0xbf8f0aa6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x45df72
inc dword [esp + 8]
cmp dword [esp + 8], 0x1b
jge 0x45df64
jmp 0x45dfaf
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x45dfaf
push eax
push 0x1f4
push eax
push eax
call esi
xor eax, eax
imul ecx, dword [esp + 0x38], 0x2710
add ecx, dword [esp + 0x30]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 0xfffb
mov dword [esp + 0x20], 0xb1d6a56c
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x20], 0xc8951bb3
mov dword [esp + 0x20], 0x8f08877e
mov dword [esp + 8], eax
jmp 0x45e001
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x7c], 0xbaeef20f
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x45dff1
mov dword [esp + 8], eax
jmp 0x45e021
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x188], 0xd6c34f1d
inc dword [esp + 8]
cmp dword [esp + 8], 4
jl 0x45e00e
cmp dword [esp + 0x7c], eax
je 0x45e0f6
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x14], 0xfffc
push 0
sbb edx, edx
inc edx
sub edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
neg edx
sbb edx, edx
inc edx
sub ecx, edx
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
sub ecx, 0x3fab614
cmp ecx, 0x27f0
mov ecx, dword [esp + 0x14]
setg dl
cmp ecx, edx
pop ecx
setne cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x1c], ecx
push 0
setg dl
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x14]
cmp ecx, edx
pop ecx
setge cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x1c], ecx
setl dl
mov dword [esp + 0x20], edx
cmp dword [esp + 0x20], eax
je 0x45e0c8
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x14]
cmp edx, ecx
push 0
pop ecx
setle cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
cmp ecx, 0xfffffffc
setge dl
add edx, 0x21b18574
cmp edx, dword [esp + 0x24]
jl 0x45e0f6
mov eax, edi
mov dword [esp + 0x190], eax
lea eax, [esp + 0x40]
push eax
call fcn.0045f4e4
push 3
lea ecx, [esp + 0xf0]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
call fcn.00401e5e
push 2
lea ecx, [esp + 0x108]
call fcn.00401e5e
xor eax, eax
mov dword [esp + 8], eax
jmp 0x45e147
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xec]
mov dword [ecx + edx*4], 0x7d45db34
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x45e131
mov dword [esp + 8], eax
jmp 0x45e16a
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x104]
mov dword [ecx + edx*4], 6
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x45e154
mov dword [esp + 8], eax
jmp 0x45e186
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0xac], eax
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45e177
mov esi, dword [esp + 0xec]
mov ecx, dword [esi]
sub ecx, dword [esi + 4]
neg ecx
sbb ecx, ecx
xor edx, edx
add ecx, 0xfe47
cmp ecx, 0x7ccc
mov ecx, dword [esp + 0x104]
setl dl
mov dword [ecx], edx
xor ecx, ecx
cmp dword [esi], eax
sete cl
mov dword [esp + 0xac], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x45e1d4
call dword [sym.imp.USER32.dll_DestroyCaret]
lea ecx, [esp + 0x104]
call fcn.00401f30
lea ecx, [esp + 0xec]
call fcn.00401f30
cmp dword [esp + 0x10], 0
je 0x45e3ba
mov dword [esp + 0x24], 0xf782
lea ecx, [esp + 0x11c]
push edi
call fcn.00401e5e
mov dword [esp + 0x20], 0xb8561371
mov dword [esp + 0x30], 0x68939f5f
mov dword [esp + 0x1c], 0x382e
mov dword [esp + 0x14], 0
jmp 0x45e240
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x11c]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45e22e
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov eax, dword [esp + 0x20]
test eax, eax
setle cl
inc ecx
je 0x45e25c
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x11c]
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
or dword [eax], 0xffffffff
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x45e2b6
push 0x1c1f
push 0x223c
push 0x156d
push 0x261c
push 0xc83
push 0x12e4
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RoundRect]
lea ecx, [esp + 0x11c]
call fcn.00401f30
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x134]
push 2
mov dword [esp + 0x8c], eax
call fcn.00401e5e
xor eax, eax
mov dword [esp + 8], eax
jmp 0x45e2f3
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x6c], 0x2f4a8b10
inc dword [esp + 8]
cmp dword [esp + 8], 4
jl 0x45e2e3
mov dword [esp + 8], eax
jmp 0x45e316
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x134]
mov dword [ecx + edx*4], 0xffff
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x45e300
cmp dword [esp + 0x70], 0xfffffffa
jb 0x45e33e
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x45e3a9
push 0x5e2
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
jmp 0x45e3a9
push edi
lea ecx, [esp + 0xcc]
call fcn.00401e5e
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x45e369
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc8]
mov dword [ecx + edx*4], 0xd4ea6801
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45e353
mov ecx, dword [esp + 0xc8]
mov dword [ecx], eax
cmp dword [esp + 0x70], eax
je 0x45e38a
mov eax, dword [esp + 0x70]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
xor ecx, ecx
mov eax, dword [esp + 0x70]
test eax, eax
setg cl
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0xc8]
call fcn.00401f30
lea ecx, [esp + 0x134]
call fcn.00401f30
jmp 0x45f418
xor eax, eax
mov dword [esp + 0x18], eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x45e3eb
push 0x25bb
push 0xb36
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawEdge]
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45e404
push 0x2515
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xor eax, eax
mov ecx, dword [0xa60138]
test cl, 2
jne 0x45e493
push eax
or ecx, 2
mov dword [0xa60140], eax
push eax
mov dword [0xa60138], ecx
mov dword [0xa60144], eax
call fcn.004177ae
mov ecx, eax
mov dword [0xa6015c], 0x3f800000
mov dword [0xa60140], ecx
xor eax, eax
mov dword [esp + 0xa8], ecx
lea ecx, [esp + 0xa8]
push ecx
push 0x10
push eax
mov dword [0xa60148], eax
mov ecx, 0xa60148
mov dword [0xa60150], eax
mov dword [0xa6014c], eax
lea eax, [esp + 0xa4]
push eax
call fcn.004174e4
push 0x46c7bb
mov dword [0xa60154], 7
mov dword [0xa60158], 8
call fcn.0046035f
pop ecx
mov dword [esp + 0x10], 0x2667
or esi, 0xffffffff
mov dword [esp + 0x20], esi
xor eax, eax
mov dword [esp + 8], esi
xor edx, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], 0x2275dd36
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], 0x3e1fe01
mov dword [esp + 0x18], 0x1994
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
cmp ecx, edi
setg dl
xor ecx, ecx
add edx, dword [esp + 0x10]
cmp edx, 0x13b01d91
setg cl
xor edx, edx
cmp ecx, esi
mov ecx, dword [esp + 8]
sete dl
mov dword [esp + 0x1c], edx
xor edx, edx
cmp dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
setne dl
sub ecx, edx
je 0x45e520
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x45e557
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x45e557
mov dword [esp + 8], 0xffffffe6
jmp 0x45e550
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45e544
push 0x124e
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
xor eax, eax
mov dword [esp + 0x20], 0x3e25468d
inc dword [esp + 8]
cmp dword [esp + 8], 0x3c
jg 0x45e52a
mov eax, dword [esp + 8]
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], eax
je 0x45e573
mov esi, edi
cmp dword [esp + 8], eax
jne 0x45e575
mov esi, eax
mov ecx, dword [esp + 8]
xor edx, edx
cmp ecx, esi
mov ecx, dword [esp + 8]
push 0
setle dl
mov dword [esp + 0x20], edx
xor edx, edx
cmp dword [esp + 0x20], ecx
setg dl
cmp edx, 0xec73f5cf
sbb ecx, ecx
neg ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp edx, ecx
pop ecx
setg cl
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp ecx, edx
push 0
pop ecx
setge cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x1c], ecx
setg dl
imul ecx, edx, 0x5d90
test ecx, ecx
jne 0x45e5f2
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 8]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0xb0]
push 2
movdqu xmmword [esp + 0x60], xmm0
call fcn.00401e5e
xor eax, eax
mov dword [esp + 0x1c], 0x4e55b65a
mov dword [esp + 8], eax
jmp 0x45e63b
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xb0]
mov dword [ecx + edx*4], 0x342eb90d
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x45e625
mov dword [esp + 8], eax
jmp 0x45e658
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x28], 0x13638ecf
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x45e648
mov dword [esp + 0x28], edi
cmp dword [esp + 0x28], eax
jl 0x45e6d1
mov dword [esp + 0x1c], 0x18c84b7b
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0xb0]
mov ecx, dword [edx + ecx*4]
mov dword [edx + esi*4], ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
add ecx, 4
add ecx, edx
jne 0x45e6a4
mov edx, eax
cmp dword [esp + 0x28], eax
je 0x45e6a6
mov edx, edi
mov ecx, dword [esp + 0x28]
sub edx, ecx
add edx, 0xffff
je 0x45e6bc
mov edx, edi
cmp dword [esp + 0x28], eax
jne 0x45e6be
mov edx, eax
mov ecx, dword [esp + 0xb0]
sub edx, dword [ecx]
mov dword [esp + 0x1c], edx
dec dword [esp + 0x28]
jns 0x45e668
lea ecx, [esp + 0xb0]
call fcn.00401f30
lea eax, [esp + 0x38]
push eax
call fcn.0045f546
push dword [esp + 0x98]
movdqa xmm0, xmmword [0xa5dbb0]
lea ecx, [esp + 0x174]
push ecx
mov esi, dword [eax]
lea ecx, [esp + 0x168]
mov dword [esp + 0x18], 4
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x24], 0x40194ddb
mov dword [esp + 0x20], 0xfffffff9
mov dword [esp + 0x10], 0xcc2fdcb
push ecx
mov dword [esp + 0x24], 8
lea ecx, [esp + 0x5c]
mov dword [esp + 0x38], 0xfffffff8
mov dword [esp + 0x30], 0xeb2391cb
push eax
mov dword [esp + 0x30], esi
movdqu xmmword [esp + 0x170], xmm0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
call fcn.00401f92
mov dword [esp + 0x3c], 0x100
mov dword [esp + 0x18], 0xffff
mov dword [esp + 0x10], 0
jmp 0x45e7f4
mov dword [esp + 0x24], 0xffffffff
lea ecx, [esp + 0x144]
push 4
call fcn.00401e5e
mov dword [esp + 0x24], 0x595ad338
mov dword [esp + 0x24], 0x423b19d8
mov dword [esp + 0x24], 8
mov dword [esp + 0x14], 0
jmp 0x45e7d9
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x144]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x45e7c3
dec dword [esp + 0x24]
lea ecx, [esp + 0x144]
call fcn.00401f30
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe3
je 0x45e78b
mov dword [esp + 8], 0
cmp dword [esp + 8], 3
jg 0x45e8a1
mov dword [esp + 0x24], 0xfffffffe
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
xor edx, edx
mov eax, dword [esp + 8]
mov eax, dword [esp + 8]
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
cmp eax, ecx
mov eax, dword [esp + 0x50]
setg dl
xor ecx, ecx
cmp edx, 0xffffffff
setle cl
mov dword [eax + esi*4], ecx
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x1c]
je 0x45e866
mov eax, dword [esp + 0x50]
cmp dword [eax + 4], 0
jne 0x45e86a
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
inc dword [esp + 8]
cmp dword [esp + 8], 3
jle 0x45e80e
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x50]
call fcn.00401f30
cmp byte [ebp + 0xc], 0
jne 0x45e8b8
test esi, esi
jne 0x45ef14
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], eax
jmp 0x45e8d7
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x170], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x45e8c8
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x45e8fe
push edi
push 0x26df
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SignalObjectAndWait]
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x1e8]
mov ecx, dword [esp + 0x38]
push eax
call fcn.0044fae6
cmp byte [ebp + 0xc], 0
lea edi, [esp + 0x60]
mov esi, eax
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x45ea69
cmp dword [esp + 0x64], 0
je 0x45ea69
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0xdf3d37a5
mov dword [esp + 0x18], 0x5145
mov dword [esp + 0x10], 0xffffffe6
cmp dword [esp + 0x10], 0xfffffffc
jle 0x45ea2a
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
xor esi, esi
inc esi
mov dword [esp + 8], 9
cmp dword [esp + 8], 0
je 0x45e9ad
mov dword [esp + 8], 0
jmp 0x45e9a4
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x45e9a0
push 0x12ba
push 0
push 0x19cd
call edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
inc dword [esp + 8]
cmp dword [esp + 8], 6
je 0x45e97f
jmp 0x45ea1b
push esi
lea ecx, [esp + 0xc0]
call fcn.00401e5e
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x45e9d8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xbc]
mov dword [ecx + edx*4], 0xfaafe30f
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x45e9c2
mov dword [esp + 8], eax
jmp 0x45e9f5
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov dword [esp + 0x18], ecx
inc dword [esp + 8]
cmp dword [esp + 8], 0x12
jne 0x45e9e4
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x45ea0f
call edi
push eax
call dword [sym.imp.USER32.dll_SetFocus]
lea ecx, [esp + 0xbc]
call fcn.00401f30
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffc
jg 0x45e966
mov dword [esp + 0x10], 0
jmp 0x45ea4c
mov dword [esp + 0x18], 0x9646
imul eax, dword [esp + 0x10], 0x10c1
mov dword [esp + 0x18], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jg 0x45ea34
mov eax, dword [esp + 0x68]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x90], eax
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x45ef11
cmp dword [esp + 0x5c], esi
jle 0x45ef11
push 2
lea ecx, [esp + 0xe4]
call fcn.00401e5e
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x45eaab
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xe0]
mov dword [ecx + edx*4], 5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x45ea95
mov dword [esp + 0x10], eax
jmp 0x45eac7
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1c8], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x45eab8
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0xe0]
mov dword [eax], 9
call fcn.00401f30
xor edi, edi
inc edi
xor eax, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x14], eax
jmp 0x45eb09
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x1b0], 0x6310feca
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x45eaf6
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x45eb24
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegUnLoadKeyW]
xor eax, eax
mov dword [esp + 0x10], 0x67d50f82
mov dword [esp + 0x14], eax
jmp 0x45eb5f
inc dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x45eb54
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45eb50
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jle 0x45eb3c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x45eb32
mov dword [esp + 0x18], 0xfffffffc
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45eb82
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45eb96
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
xor eax, eax
cmp dword [esp + 0x60], 0
je 0x45ef14
mov dword [esp + 8], 0xffffffff
mov dword [esp + 0x18], 0xb586fa66
mov dword [esp + 0x2c], 0x3758
mov dword [esp + 0x14], eax
jmp 0x45ebce
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x9c], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x45ebbf
mov dword [esp + 8], 0xffffffff
jmp 0x45ed61
mov dword [esp + 0x10], 0x88adae8c
mov dword [esp + 0x18], 0xfffffffd
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 2
jg 0x45ed31
mov dword [esp + 0x14], 5
lea ecx, [esp + 0xf8]
push edi
call fcn.00401e5e
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x45ec34
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xf8]
mov dword [ecx + edx*4], 0xbda73a15
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x45ec1e
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], eax
jl 0x45ed14
mov dword [esp + 0x1c], 0x37828451
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
mov ecx, dword [esp + 8]
push 0
pop edx
setge dl
cmp edx, ecx
push 0
pop ecx
setle cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0x18]
push 0
setle dl
mov dword [esp + 0x1c], edx
xor edx, edx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + ecx*4 + 0xa0]
cmp ecx, 2
mov ecx, dword [esp + 0x18]
setne dl
mov dword [esp + 0x1c], edx
mov edx, dword [esp + ecx*4 + 0xa0]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0xa0]
cmp edx, ecx
pop edx
setl dl
xor ecx, ecx
cmp dword [esp + 0x18], 0xffffffff
setne cl
cmp edx, ecx
je 0x45ecd8
mov ecx, dword [esp + 8]
cmp dword [esp + 0x9c], 0xf844ba92
je 0x45ecf0
mov ecx, edi
cmp dword [esp + 0xa4], eax
jne 0x45ecf2
mov ecx, eax
mov edx, dword [esp + 8]
imul edx, ecx
mov ecx, dword [esp + 0xf8]
mov dword [ecx], edx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
dec dword [esp + 0x14]
jns 0x45ec4c
lea ecx, [esp + 0xf8]
call fcn.00401f30
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jle 0x45ec01
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45ed5d
push eax
push 0x18ae
push 0x2489
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
xor eax, eax
inc dword [esp + 8]
cmp dword [esp + 8], 5
jne 0x45ebe2
push 0x768a
push dword [esp + 0x64]
push 0x147
push 0x73dc
push edi
push 0x6337
push edi
call fcn.0045cecd
add esp, 0x1c
push dword [esp + 0x60]
call fcn.0042e241
mov esi, eax
mov dword [esp + 0x14], 0x477862fd
xor eax, eax
mov dword [esp + 0xc], 0xffffffff
pop ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], eax
jmp 0x45edc9
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x154], 0x8c245e32
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x45edb6
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 7
jle 0x45ef03
mov dword [esp + 0x34], 0x955205
mov dword [esp + 0x1c], 0xbf748bbe
mov dword [esp + 0x1c], 0xfffffffc
mov dword [esp + 0x14], eax
jmp 0x45ee0d
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x48], 0x9ba095a9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x45edfd
mov ecx, dword [esp + 0x4c]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x10]
jg 0x45ee3c
cmp dword [esp + 8], eax
jne 0x45ee3c
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 8]
cmp ecx, edx
push 0
pop ecx
setge cl
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x18]
setle dl
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], eax
je 0x45ee74
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x4c]
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x6d9e
setge cl
xor edx, edx
sub ecx, 0x4548
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x2c], ecx
sete dl
xor ecx, ecx
imul edx, dword [esp + 8]
cmp edx, 4
setne cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x18], ecx
setg dl
xor ecx, ecx
cmp edx, 9
setne cl
mov dword [esp + 0x154], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45eef0
push eax
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegConnectRegistryW]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 7
jg 0x45eddf
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x38]
push eax
call fcn.0045f546
mov dword [eax], esi
jmp 0x45ef14
xor edi, edi
inc edi
push 2
lea ecx, [esp + 0x114]
call fcn.00401e5e
mov dword [esp + 0x18], 0xf2f4a8b1
mov dword [esp + 0x18], 0xfffffffc
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], 0xfde2bbef
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], 0
jmp 0x45ef6e
push dword [esp + 0x10]
lea ecx, [esp + 0x114]
call fcn.004017e6
mov dword [eax], 0x75c9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x45ef54
mov dword [esp + 0x10], 0
jmp 0x45ef92
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1d8], 0x99d94b4b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x45ef7f
push 0
lea ecx, [esp + 0x114]
call fcn.004017e6
lea ecx, [esp + 0x110]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
inc dword [esp + 0x1c]
call fcn.00401f30
lea ecx, [esp + 0x5c]
call fcn.00450c44
push 2
lea ecx, [esp + 0x12c]
call fcn.00401e5e
mov dword [esp + 0x18], 0xf2f4a8b1
mov dword [esp + 0x18], 0xfffffffc
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], 0xfde2bbef
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], 0
jmp 0x45f020
push dword [esp + 0x10]
lea ecx, [esp + 0x12c]
call fcn.004017e6
mov dword [eax], 0x75c9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x45f006
mov dword [esp + 0x10], 0
jmp 0x45f044
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1f8], 0x99d94b4b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x45f031
push 0
lea ecx, [esp + 0x12c]
call fcn.004017e6
lea ecx, [esp + 0x128]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
inc dword [esp + 0x1c]
call fcn.00401f30
test esi, esi
je 0x45f2ca
mov dword [esp + 8], 0xdb2bc40e
lea ecx, [esp + 0xd4]
mov dword [esp + 0x10], 0xd0d658ed
mov dword [esp + 0x1c], 0x3cb8e004
mov dword [esp + 0x1c], 0xfa3c9e4a
push 3
call fcn.00401e5e
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 3
jge 0x45f0d5
push dword [esp + 0x14]
lea ecx, [esp + 0xd8]
call fcn.004017e6
mov dword [eax], 0xce005ab1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x45f0b2
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45f0f1
push eax
push 0x1ef7
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
xor eax, eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], eax
je 0x45f146
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
cmp dword [esp + 0x10], 0x1e707165
je 0x45f119
mov ecx, edi
cmp dword [esp + 8], eax
jne 0x45f11b
mov ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add ecx, 0x7f58
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [esp + 8]
jge 0x45f138
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
cmp dword [esp + 0x10], eax
jne 0x45f14e
mov esi, eax
cmp dword [esp + 8], eax
je 0x45f150
mov esi, edi
mov ecx, dword [esp + 8]
xor edx, edx
cmp esi, ecx
setge dl
xor ecx, ecx
cmp edx, 0xcb8ce3e
setle cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
cmp dword [esp + 0x18], ecx
setge dl
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], eax
je 0x45f189
mov esi, edi
cmp dword [esp + 8], eax
jne 0x45f18b
mov esi, eax
mov ecx, dword [esp + 8]
xor edx, edx
cmp esi, ecx
push 0
setge dl
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
cmp edx, ecx
pop ecx
setl cl
add ecx, dword [esp + 8]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0xd4]
push eax
call fcn.004017e6
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0xd4]
mov dword [eax], esi
call fcn.00401f30
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
call fcn.0045dd35
mov dword [esp + 0x20], 0xe0cf
mov esi, eax
mov dword [esp + 0x10], 0xd9532bb1
mov dword [esp + 0x30], 9
mov dword [esp + 0x14], 0x6718e503
mov dword [esp + 0x1c], 0x3413f087
mov dword [esp + 0x34], 0xfffffff9
mov dword [esp + 0x18], 0x366
mov dword [esp + 0x2c], 0x4067bc62
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x88], esi
cmp dword [esp + 0x10], eax
je 0x45f2ba
mov edx, eax
cmp dword [esp + 0x14], eax
je 0x45f245
mov edx, edi
mov ecx, dword [esp + 0x20]
add edx, 0xffff64d9
neg edx
push 0
sbb edx, edx
inc edx
cmp edx, ecx
pop ecx
setg cl
sub ecx, dword [esp + 0x10]
neg ecx
push 0
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
cmp ecx, 0x2589d389
mov ecx, dword [esp + 0x1c]
setl dl
imul edx, edx, 0x511b
cmp edx, ecx
pop edx
setle dl
xor ecx, ecx
cmp edx, 2
setg cl
cmp dword [esp + 0x10], ecx
je 0x45f2ba
mov eax, edi
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x40]
push eax
call fcn.0045f4e4
mov dword [eax], esi
mov dword [esp + 8], 0xffffffff
xor eax, eax
mov dword [esp + 0x30], 0xdaa237f4
mov dword [esp + 0x2c], 0xfffffff7
mov dword [esp + 0x18], edi
mov dword [esp + 0x18], 0x9235
mov dword [esp + 0x20], eax
jmp 0x45f309
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x1bc], 0x131d
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x45f2f6
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov esi, dword [esp + 8]
mov ecx, dword [esp + 8]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
setle dl
cmp edi, edx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, 0xcee3
setne dl
cmp edx, 0xfffffffc
je 0x45f349
cmp dword [esp + 8], eax
jne 0x45f34b
mov edi, eax
mov ecx, dword [esp + 8]
xor edx, edx
cmp edi, 0x58efa97f
push 0
setle dl
cmp edx, ecx
pop ecx
setge cl
xor edx, edx
add ecx, dword [esp + 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
cmp dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
setl dl
cmp edx, ecx
push 0
pop ecx
setg cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
cmp dword [esp + 0x18], ecx
push 0
setge dl
add edx, dword [esp + 0xc]
mov dword [esp + 0x34], edx
cmp dword [esp + 0x34], 0xd2ae857b
mov ecx, dword [esp + 0xc]
sbb edx, edx
neg edx
cmp edx, ecx
mov edx, 0xffff
pop ecx
setle cl
cmp edx, ecx
sbb esi, esi
neg esi
sub esi, dword [esp + 8]
mov ecx, dword [esp + 0x2c]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setle dl
imul edx, edx, 0x9ab8
inc edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x387f
setle cl
mov dword [esp + 0x18], ecx
mov dword [esp + 8], eax
jmp 0x45f411
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x45f40d
push eax
push 0x22b9
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor eax, eax
inc dword [esp + 8]
cmp dword [esp + 8], 2
jle 0x45f3f4
mov eax, dword [ebp + 8]
lea esi, [esp + 0x88]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret