Function at 0x410583
Capabilities:
Modify service
Resolve function by parsing pe exports
Suspend thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x268
and dword [esp + 0x1c], 0
push esi
push edi
push 2
pop esi
mov edi, edx
mov dword [esp + 0x5c], ecx
push esi
lea ecx, [esp + 0x120]
mov dword [esp + 0x48], edi
call fcn.0041257d
mov dword [esp + 0x14], 0x5379a1d1
lea ecx, [esp + 0x140]
mov dword [esp + 0x20], 0x2c160ec2
push 4
call fcn.0041257d
xor eax, eax
mov dword [esp + 0x28], 3
mov dword [esp + 0xc], eax
jmp 0x4105ee
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x34], 0xf5872d9e
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x4105de
mov dword [esp + 0xc], eax
jmp 0x410610
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x11c]
mov dword [ecx + edx*4], 0xf390f3bd
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x4105fa
mov dword [esp + 0xc], eax
jmp 0x410632
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x140]
mov dword [ecx + edx*4], 0x26ffea1e
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x41061c
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x410660
push 0x1555
push 0x24d1
push 0x10a9
push 0x1419
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
xor eax, eax
mov ecx, dword [esp + 0x38]
xor edx, edx
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
cmp ecx, 0x42c7
push 1
setne dl
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x3c]
imul edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x120]
pop esi
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x38], eax
jne 0x4106cf
mov edx, esi
cmp dword [esp + 0x14], eax
jne 0x4106d1
mov edx, eax
mov ecx, dword [esp + 0x14]
sub edx, ecx
mov ecx, dword [esp + 0x38]
sub edx, ecx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
neg edx
push 0
sbb edx, edx
neg edx
add edx, 0xffff79f4
cmp edx, ecx
pop ecx
setle cl
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x140]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0x140]
call fcn.004129c0
lea ecx, [esp + 0x11c]
call fcn.004129c0
push 3
lea ecx, [esp + 0x1bc]
call fcn.0041257d
mov dword [esp + 0xc], 0x39beb064
mov dword [esp + 0x14], 0x55950707
mov dword [esp + 0x14], 0
jmp 0x410775
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1b8]
mov dword [eax + ecx*4], 0xbbca6318
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x41075f
mov byte [esp + 0x13], 0
cmp byte [esp + 0x13], 0
je 0x41078e
call dword [sym.imp.USER32.dll_GetMessageTime]
mov dword [esp + 0xc], 2
cmp dword [esp + 0xc], 0
jl 0x410863
push 3
lea ecx, [esp + 0x15c]
call fcn.0041257d
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x4107ca
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x158]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x4107b7
mov ecx, dword [esp + 0x158]
push 2
mov dword [ecx], 0xdb8faaae
mov dword [esp + 0x18], 0xdb8faaae
pop ecx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x14], eax
jl 0x410849
mov dword [esp + 8], 0x18e418a5
mov dword [esp + 8], ecx
cmp dword [esp + 8], eax
jl 0x410843
mov dword [esp + 0x18], esi
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x18], eax
jl 0x41083d
mov ecx, dword [esp + 8]
mov edx, 0x9f3faa32
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x1b8]
sub edx, dword [ecx + esi*4]
mov dword [ecx + edi*4], edx
dec dword [esp + 0x18]
jns 0x410813
xor esi, esi
push 2
inc esi
pop ecx
dec dword [esp + 8]
jns 0x410805
dec dword [esp + 0x14]
jns 0x4107f3
lea ecx, [esp + 0x158]
call fcn.004129c0
dec dword [esp + 0xc]
jns 0x4107a1
mov edi, dword [esp + 0x44]
lea ecx, [esp + 0x1b8]
call fcn.004129c0
mov eax, dword [0xaa7b88]
test al, 1
jne 0x4108fc
or eax, esi
mov dword [0xaa7b88], eax
xor eax, eax
push eax
push eax
mov dword [0xaa7b90], eax
mov dword [0xaa7b94], eax
call fcn.004134d6
mov ecx, eax
mov dword [0xaa7bac], 0x3f800000
mov dword [0xaa7b90], ecx
xor eax, eax
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0xbc]
push ecx
push 0x10
push eax
mov dword [0xaa7b98], eax
mov ecx, 0xaa7b98
mov dword [0xaa7ba0], eax
mov dword [0xaa7b9c], eax
lea eax, [esp + 0xec]
push eax
call fcn.0041327b
push 0x4add05
mov dword [0xaa7ba4], 7
mov dword [0xaa7ba8], 8
call fcn.0049332f
pop ecx
push 2
lea ecx, [esp + 0xf8]
call fcn.0041257d
xor eax, eax
mov dword [esp + 8], esi
mov dword [esp + 0x14], eax
jmp 0x41092c
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xf4]
mov dword [ecx + edx*4], 7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x410916
mov dword [esp + 8], esi
cmp dword [esp + 8], eax
jl 0x4109e4
push 9
pop edi
mov dword [esp + 0x1c], 0x8e2294bb
mov dword [esp + 0x30], 0x89063530
mov dword [esp + 0x14], eax
jmp 0x41096d
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x248], 0x9d2e819d
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x41095a
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
cmp edi, ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x250], edx
mov esi, dword [ecx]
mov ecx, dword [esp + 8]
imul esi, edx
sub esi, ecx
je 0x4109bc
cmp dword [esp + 0x1c], eax
je 0x4109bc
xor esi, esi
inc esi
jmp 0x4109be
mov esi, eax
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xf4]
push 0
cmp dword [ecx + edx*4], esi
pop ecx
setg cl
mov dword [esp + 0x30], ecx
dec dword [esp + 8]
jns 0x410944
mov edi, dword [esp + 0x44]
lea ecx, [esp + 0xf4]
call fcn.004129c0
imul eax, dword [esp + 0x5c], 0x2710
lea ecx, [esp + 0x22c]
push dword [esp + 0xe0]
movdqa xmm0, xmmword [0xaa3240]
push ecx
lea ecx, [esp + 0x224]
add eax, edi
mov dword [esp + 0x7c], eax
xor eax, eax
push ecx
mov dword [esp + 0x14], 0xfffffffe
lea ecx, [esp + 0x84]
mov dword [esp + 0x24], eax
push eax
movdqu xmmword [esp + 0x22c], xmm0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
call fcn.004137db
mov dword [esp + 0x20], 0xfffffffa
xor eax, eax
mov dword [esp + 0x2c], 0xa133a5b7
mov dword [esp + 0x14], eax
jmp 0x410a7d
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x1f8], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x410a6e
mov ecx, dword [esp + 8]
mov dword [esp + 0x18], ecx
mov dword [esp + 8], eax
cmp dword [esp + 8], 8
je 0x410c62
mov esi, dword [esp + 0x78]
mov dword [esp + 0x14], 0x1591
mov dword [esp + 0x1c], 0x6d5d64f6
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 8]
cmp edx, ecx
push 0
pop ecx
setne cl
xor edx, edx
cmp ecx, 0xd19f
setle dl
xor ecx, ecx
cmp edx, 0xfffffff9
setg cl
sub ecx, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0x333e
jg 0x410af8
cmp dword [esi + 8], eax
jne 0x410af8
mov edi, eax
jmp 0x410afb
xor edi, edi
inc edi
mov ecx, dword [esp + 0x18]
xor edx, edx
cmp ecx, edi
setl dl
sub edx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
xor edx, edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x204]
cmp ecx, 0xffffffff
setge dl
xor ecx, ecx
cmp edx, 8
setne cl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x204], ecx
xor ecx, ecx
cmp dword [esi + 8], eax
setne cl
cmp ecx, dword [esi + 4]
je 0x410b6a
cmp dword [esp + 0x14], eax
je 0x410b6a
xor edi, edi
inc edi
mov ecx, edi
jmp 0x410b6f
xor edi, edi
mov ecx, eax
inc edi
cmp dword [esp + 0x14], ecx
jg 0x410b8c
mov dword [esp + 0x30], 0xb42b8ffd
cmp dword [esp + 0x30], eax
jne 0x410c62
jmp 0x410c53
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x170]
push 4
call fcn.0041257d
xor eax, eax
mov dword [esp + 0x2c], 0xa5cd
mov dword [esp + 0xc], eax
jmp 0x410bc0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x170]
mov dword [ecx + edx*4], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x410bae
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x1c]
jge 0x410be6
mov ecx, eax
cmp dword [esp + 0x18], eax
je 0x410be8
mov ecx, edi
add ecx, dword [esi + 8]
cmp ecx, 0xccf75bae
sbb ecx, ecx
inc ecx
cmp ecx, dword [esi + 8]
jg 0x410c01
mov edx, eax
cmp dword [esp + 0x20], eax
je 0x410c03
mov edx, edi
mov eax, dword [esp + 0x204]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x170]
setg cl
neg ecx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x78]
imul ecx, dword [eax], 0x226f
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [esp + 0x170]
mov dword [esp + 0x2c], eax
call fcn.004129c0
xor eax, eax
inc dword [esp + 8]
cmp dword [esp + 8], 8
jne 0x410a9f
lea ecx, [esp + 0x78]
call fcn.004129c0
lea eax, [esp + 0x74]
push eax
call fcn.00412641
xor edi, edi
mov esi, dword [eax]
xor eax, eax
mov dword [esp + 0x1c], 0x9e57ad95
inc edi
mov dword [esp + 0x18], eax
jmp 0x410c9a
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x64], 0xc204e2db
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x410c8a
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], eax
jl 0x410cc3
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x410cbd
call dword [sym.imp.USER32.dll_CreateMenu]
xor eax, eax
dec dword [esp + 0x1c]
jns 0x410caa
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
push 2
test esi, esi
je 0x410ea1
mov dword [esp + 0x28], 0x13638ecf
mov dword [esp + 0x28], 0x9aed23b6
mov dword [esp + 0x48], 0xffff
mov dword [esp + 0xc], eax
pop edx
jmp 0x410d03
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x240], eax
inc dword [esp + 8]
cmp dword [esp + 8], edx
jl 0x410cf4
mov dword [esp + 8], eax
jmp 0x410d22
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x258], 0x53072226
inc dword [esp + 8]
cmp dword [esp + 8], edx
jl 0x410d0f
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x410d3f
push 0x2478
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
inc dword [esp + 0x44]
lea ecx, [esp + 0x84]
mov dword [esp + 0xc], 0x24a8c6a5
push 3
mov dword [esp + 0xb4], esi
call fcn.0041257d
push edi
lea ecx, [esp + 0x1d4]
call fcn.0041257d
xor eax, eax
mov dword [esp + 8], eax
jmp 0x410d87
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x84]
mov dword [ecx + edx*4], edi
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x410d75
mov dword [esp + 8], eax
jmp 0x410daa
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x1d0]
mov dword [ecx + edx*4], 0xfffffff7
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x410d94
mov dword [esp + 0xc], 0xffffffef
cmp dword [esp + 0xc], 0xffffffee
jle 0x410e64
mov esi, dword [esp + 0x84]
mov dword [esp + 8], 0xd69f4288
mov dword [esp + 0x1c], 0xfffffffe
mov dword [esp + 8], 3
jmp 0x410dfd
mov dword [esp + 0x2c], 0xd21dfe4b
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x84]
mov dword [ecx], edx
dec dword [esp + 8]
cmp dword [esp + 8], 0xfffffff9
jne 0x410de4
mov ecx, dword [esp + 8]
mov dword [esp + 8], ecx
cmp dword [esp + 8], eax
je 0x410e16
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x1d0]
push 0
mov dword [ecx], eax
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
pop edx
setl dl
sub edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x84]
neg edx
sbb edx, edx
inc edx
imul edx, dword [ecx]
mov dword [esi + 4], edx
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffee
jg 0x410dca
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], eax
jl 0x410e84
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x84]
or dword [eax + ecx*4 + 4], 0xffffffff
dec dword [esp + 0xc]
jns 0x410e6e
lea ecx, [esp + 0x1d0]
call fcn.004129c0
lea ecx, [esp + 0x84]
call fcn.004129c0
jmp 0x41240e
mov dword [esp + 0x10], 0x6de713a
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x1c], eax
pop esi
jmp 0x410ec8
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x68], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x410eb8
mov dword [esp + 0xc], eax
jmp 0x410f14
mov dword [esp + 0x1c], 0x83111738
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], eax
jl 0x410f10
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + ecx*4 + 0x68]
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x68], edx
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x410f0a
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
xor eax, eax
dec dword [esp + 0x1c]
jns 0x410ee6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jle 0x410ed4
mov ecx, dword [esp + 0xc]
mov ecx, edi
cmp dword [esp + 0xc], eax
jne 0x410f28
mov ecx, eax
cmp dword [esp + 0x68], ecx
jg 0x410f32
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
neg edx
sbb edx, edx
neg edx
imul ecx, edx
xor edx, edx
sub ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x68]
cmp ecx, 0x4f78
mov ecx, dword [esp + 0xc]
setge dl
mov dword [esp + 0x2c], edx
xor edx, edx
cmp dword [esp + 0x2c], ecx
setne dl
xor ecx, ecx
cmp edx, 0xfffffff7
setne cl
mov dword [esp + 0xc], ecx
mov ecx, dword [0xaa7b88]
test cl, 2
jne 0x411003
push eax
or ecx, esi
mov dword [0xaa7b60], eax
push eax
mov dword [0xaa7b88], ecx
mov dword [0xaa7b64], eax
call fcn.004134d6
mov ecx, eax
mov dword [0xaa7b7c], 0x3f800000
mov dword [0xaa7b60], ecx
xor eax, eax
mov dword [esp + 0xac], ecx
lea ecx, [esp + 0xac]
push ecx
push 0x10
push eax
mov dword [0xaa7b68], eax
mov ecx, 0xaa7b68
mov dword [0xaa7b70], eax
mov dword [0xaa7b6c], eax
lea eax, [esp + 0xcc]
push eax
call fcn.0041327b
push 0x4add00
mov dword [0xaa7b74], 7
mov dword [0xaa7b78], 8
call fcn.0049332f
pop ecx
xor eax, eax
mov dword [esp + 8], 0x102071b1
mov dword [esp + 0xc], 0xffffffff
cmp dword [esp + 8], eax
je 0x411022
mov dword [esp + 0xc], eax
jmp 0x4110fa
mov dword [esp + 0x14], 0xffffffff
mov ecx, 0x3b2b74c3
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], ecx
mov dword [esp + 8], 0x1c
jmp 0x4110bc
mov dword [esp + 0xc], eax
jmp 0x411091
mov dword [esp + 0x18], 0x61bab593
mov dword [esp + 0x18], eax
jmp 0x411086
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x41107e
push eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
xor eax, eax
dec dword [esp + 0x14]
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe8
jle 0x411069
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff8
jle 0x41105b
mov dword [esp + 0xc], eax
jmp 0x4110b1
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x10c], 0x552bf338
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x41109e
inc dword [esp + 8]
cmp dword [esp + 8], 0x39
jge 0x411055
mov dword [esp + 0x14], 0xffffffe2
jmp 0x4110f3
cmp dword [esp + 0x110], eax
jne 0x4110fa
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x4110ef
push 0x81c
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
xor eax, eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x14
jle 0x4110cd
push dword [esp + 0xc0]
lea ecx, [esp + 0x220]
mov dword [esp + 0xc8], eax
push ecx
lea ecx, [esp + 0x214]
mov dword [esp + 0xd0], eax
xorps xmm0, xmm0
mov dword [esp + 0xd4], eax
push ecx
movdqu xmmword [esp + 0xdc], xmm0
mov dword [esp + 0x2c], 0xffffffff
lea ecx, [esp + 0xd0]
push eax
movdqu xmmword [esp + 0x21c], xmm0
call fcn.004137db
mov dword [esp + 0x1c], 0x7f28
xor eax, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x20], 0x1f997ec5
mov dword [esp + 0x20], 0x81b27067
push 3
mov dword [esp + 0x30], 0x50eb6ba8
mov dword [esp + 0x10], eax
pop edx
jmp 0x41118f
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x50], 0xd41e5596
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x41117f
mov dword [esp + 0xc], eax
jmp 0x4111ae
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x1f0], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41119b
mov dword [esp + 0xc], eax
jmp 0x4111c9
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x1ac], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x4111ba
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x50], eax
je 0x411258
mov ecx, dword [esp + 0x58]
sub ecx, dword [esp + 0x54]
cmp ecx, 0xfffffffb
jne 0x4111ee
mov ecx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc4]
push 0
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x1f4], ecx
mov ecx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
pop ecx
setl cl
cmp ecx, 0xf57b17b4
mov ecx, dword [esp + 0x54]
push 0
sbb edx, edx
inc edx
cmp edx, ecx
pop ecx
setl cl
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1ac]
cmp dword [esp + 0x2c], ecx
setg dl
cmp edx, dword [esp + 0x1c]
mov edx, edi
jge 0x41125a
mov edx, eax
xor ecx, ecx
cmp edx, edi
sete cl
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1ac]
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
dec esi
neg esi
sbb esi, esi
xor edx, edx
neg esi
sub esi, ecx
mov ecx, dword [esp + 0x50]
cmp esi, ecx
setl dl
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x58]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
mov ecx, dword [esp + 0x1ac]
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0xc4]
call fcn.004129c0
lea eax, [esp + 0x5c]
push eax
call fcn.004126a3
mov esi, dword [eax]
xor eax, eax
mov dword [esp + 0x24], 9
mov dword [esp + 0x24], 0x2971c1e
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x20], 0xf75d
mov dword [esp + 0x30], esi
mov dword [esp + 8], eax
jmp 0x41131a
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x208], eax
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x41130b
mov dword [esp + 8], eax
jmp 0x411339
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x238], 0xac54c975
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x411326
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x411367
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x1cc8
push 0x7d9
push 0x6fc
push eax
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov al, byte [ebp + 0xc]
inc dword [esp + 0x20]
test al, al
jne 0x41137a
test esi, esi
jne 0x41173c
lea ecx, [esp + 0x260]
mov dl, al
push ecx
mov ecx, dword [esp + 0x60]
call fcn.0040174d
cmp byte [ebp + 0xc], 0
lea edi, [esp + 0xd4]
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 0x411739
cmp dword [esp + 0xd8], 0
je 0x411739
mov dword [esp + 0x14], 0xac204e2
mov dword [esp + 0x2c], 0xffffffff
mov byte [esp + 0x13], 0
cmp byte [esp + 0x13], 0
je 0x4113e3
push 0
push 0xe77
push 0
push 0x14b6
call dword [sym.imp.GDI32.dll_SetWinMetaFileBits]
mov dword [esp + 0x14], 0
cmp dword [esp + 0x14], 0xfffffffd
jg 0x41164a
push 2
pop esi
mov dword [esp + 8], 0x90197f0a
lea ecx, [esp + 0x100]
push 3
call fcn.0041257d
push esi
lea ecx, [esp + 0x198]
call fcn.0041257d
xor eax, eax
mov dword [esp + 0x24], 0xe95
mov dword [esp + 0xc], eax
jmp 0x41143b
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0xa0], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x41142c
mov dword [esp + 0xc], eax
jmp 0x41145e
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x100]
mov dword [ecx + edx*4], 0x9fa18394
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x411448
mov dword [esp + 0xc], eax
jmp 0x411481
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x194]
mov dword [ecx + edx*4], 0x4ad8a0f8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x41146b
mov dword [esp + 8], eax
jmp 0x411619
mov dword [esp + 0xc], 9
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], esi
jg 0x411615
mov edi, dword [esp + 0x194]
mov dword [esp + 0x20], 0xb90f9986
xor esi, esi
mov dword [esp + 0x28], 0x76e8d2ca
inc esi
mov dword [esp + 0x1c], 0xfffffffc
mov dword [esp + 0x18], eax
jmp 0x4114de
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x70], 0x6bb2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x4114ce
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + ecx*4 + 0xa0]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0xa0], esi
mov dword [esp + 0xa8], 0xfffffff8
cmp dword [esp + 0x20], eax
je 0x411563
mov ecx, dword [esp + 0x100]
cmp dword [ecx], eax
je 0x411563
mov ecx, dword [esp + 8]
mov edx, 0xd997
mov dword [edi + 4], edx
mov dword [esp + ecx*4 + 0xa0], edx
mov edx, 0xffff2669
mov ecx, dword [esp + 0xc]
sub edx, ecx
shl edx, 2
cmp edx, dword [esp + 0xc]
jne 0x41155f
cmp dword [esp + 0x70], eax
je 0x411563
mov edx, esi
jmp 0x411565
mov edx, eax
mov ecx, dword [esp + 8]
sub edx, ecx
add edx, dword [esp + 0x28]
cmp dword [esp + 0x14], edx
jge 0x41157d
mov edx, esi
cmp dword [esp + 8], eax
jne 0x41157f
mov edx, eax
mov ecx, dword [esp + 0x70]
add edx, ecx
mov ecx, dword [esp + 0x28]
cmp edx, ecx
push 0
pop ecx
setle cl
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 8]
cmp dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x100]
setge dl
cmp edx, dword [ecx]
je 0x4115ba
mov ecx, dword [esp + 0xc]
cmp dword [esp + ecx*4 + 0xa0], eax
je 0x4115c5
cmp dword [esp + 0xc], eax
je 0x4115c5
xor esi, esi
inc esi
jmp 0x4115c7
mov esi, eax
mov ecx, dword [esp + 0xc]
xor edx, edx
cmp esi, ecx
sete dl
sub edx, 0xd2dc
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
add ecx, 0xfff8
cmp ecx, dword [esp + 0x24]
je 0x4115f5
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov dword [esp + 0x2c], ecx
inc dword [esp + 0xc]
push 2
pop esi
cmp dword [esp + 0xc], esi
jle 0x4114ad
inc dword [esp + 8]
cmp dword [esp + 8], esi
jle 0x411490
lea ecx, [esp + 0x194]
call fcn.004129c0
lea ecx, [esp + 0x100]
call fcn.004129c0
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffd
jle 0x4113f9
mov eax, dword [esp + 0xdc]
xor edi, edi
mov dword [esp + 0x14], 3
inc edi
mov dword [esp + 0xb4], eax
mov dword [esp + 0x14], 0x17
jmp 0x41171f
mov dword [esp + 0x18], 0xef20fe6e
lea ecx, [esp + 0x1dc]
push edi
call fcn.0041257d
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x4116a3
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1dc]
mov dword [ecx + edx*4], 0xfffffff7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x41168d
mov dword [esp + 0x18], 8
jmp 0x4116e7
mov dword [esp + 0x1c], 0x3f9e923e
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], eax
jl 0x4116e3
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x4116dd
push 0x7cc
call dword [sym.imp.USER32.dll_BeginDeferWindowPos]
xor eax, eax
dec dword [esp + 0x1c]
jns 0x4116c5
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x1a
jle 0x4116b3
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x41170f
push 0x17d3
push 0xb45
push eax
push 0x252b
call dword [sym.imp.USER32.dll_CreateCaret]
lea ecx, [esp + 0x1dc]
call fcn.004129c0
dec dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x411670
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xb8], eax
jmp 0x41173c
xor edi, edi
inc edi
mov dword [esp + 0x14], 0x67e307b5
lea ecx, [esp + 0x17c]
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], 0xffffffff
push 3
call fcn.0041257d
mov dword [esp + 0x28], 0xfe831e34
xor eax, eax
mov dword [esp + 0x18], 0xeeff
mov dword [esp + 8], 0x73439d6f
mov dword [esp + 0xc], eax
jmp 0x41178e
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x3c], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x411782
mov dword [esp + 0xc], eax
jmp 0x4117aa
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x4c], 0x4dde9ab
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x41179a
mov dword [esp + 0xc], eax
jmp 0x4117c8
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x17c]
mov dword [ecx + edx*4], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x4117b6
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
inc dword [esp + 0x4c]
cmp ecx, edx
mov ecx, edi
cmovl ecx, eax
cmp dword [esp + 0x14], eax
je 0x4117f0
mov esi, edi
cmp dword [esp + 0x3c], eax
jne 0x4117f2
mov esi, eax
imul ecx, ecx, 0xfbe5
xor edx, edx
cmp ecx, 0x9968
setl dl
xor ecx, ecx
cmp esi, 0xcd9796a
sete cl
sub edx, ecx
mov ecx, 0xfffb
cmp ecx, edx
mov ecx, dword [esp + 0x3c]
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setle dl
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x28], eax
je 0x4118c4
mov dword [esp + 0x20], 0x33e235bd
xor edx, edx
mov dword [esp + 0x1c], 0xf9d9
mov dword [esp + 0x18], 0x714a8a5a
mov dword [esp + 0x24], eax
mov dword [esp + 0x24], 4
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x17c]
cmp dword [ecx], eax
setge dl
cmp dword [esp + 0x3c], edx
jge 0x4118af
cmp dword [esp + 0x1c], eax
je 0x4118af
mov eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
inc dword [esp + 8]
jmp 0x411986
mov dword [esp + 0x1c], 0x7bd5
lea ecx, [esp + 0x1c4]
mov dword [esp + 0x14], eax
push 2
call fcn.0041257d
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x4118fc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c4]
mov dword [ecx + edx*4], 0xfffffffa
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x4118e6
mov ecx, edi
cmp dword [esp + 0x1c], eax
jne 0x41190d
mov ecx, eax
mov dword [esp + 0x14], ecx
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c4]
mov dword [esp + 0x3c], esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0xfffffff9
setge cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x24], ecx
setne dl
xor ecx, ecx
cmp esi, edx
setl cl
mov dword [edi + 4], ecx
mov dword [esp + 0x18], eax
jmp 0x411973
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], eax
jl 0x41196f
mov dword [edi + 4], 0x1f29c70a
dec dword [esp + 0x14]
jns 0x411962
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 5
jg 0x411958
lea ecx, [esp + 0x1c4]
call fcn.004129c0
lea ecx, [esp + 0x17c]
call fcn.004129c0
mov edi, dword [esp + 0x30]
test edi, edi
jne 0x412278
cmp dword [esp + 0xd0], edi
jle 0x412278
push 4
lea ecx, [esp + 0x1a4]
call fcn.0041257d
mov dword [esp + 8], 0xffffffff
lea ecx, [esp + 0x188]
inc edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], 0xffffffff
push 2
call fcn.0041257d
xor eax, eax
mov dword [esp + 8], eax
jmp 0x4119fa
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x1a0]
mov dword [ecx + edx*4], 0xf75dcec3
inc dword [esp + 8]
cmp dword [esp + 8], 4
jl 0x4119e4
mov dword [esp + 8], eax
jmp 0x411a19
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x188]
mov dword [ecx + edx*4], edi
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x411a07
push 3
pop esi
mov dword [esp + 8], esi
cmp dword [esp + 8], eax
jl 0x411ac5
mov dword [esp + 0x2c], 0x3498e64e
mov dword [esp + 0x2c], 0x8f4727ca
mov dword [esp + 0x18], eax
jmp 0x411a57
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x60], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x411a47
dec dword [esp + 0x60]
xor edx, edx
mov esi, dword [esp + 0x60]
inc edx
mov edi, dword [esp + 8]
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
sub edx, ecx
xor ecx, ecx
cmp esi, edx
mov edx, dword [esp + 0x1a0]
setge cl
xor esi, esi
push esi
cmp dword [edx + edi*4], ecx
pop ecx
setle cl
xor edi, edi
mov dword [esp + 0x20], ecx
inc edi
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
cmp edi, dword [edx + ecx*4]
sbb ecx, ecx
inc ecx
add esi, ecx
mov ecx, dword [esp + 0x28]
mov dword [edx + ecx*4], esi
dec dword [esp + 8]
jns 0x411a31
push 3
pop esi
mov dword [esp + 8], 0xfffffff6
jmp 0x411ae6
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x24], edi
cmp dword [ecx], eax
jne 0x411aed
mov ecx, dword [esp + 0x24]
dec dword [esp + 8]
cmp dword [esp + 8], 0xfffffff4
jne 0x411acf
lea ecx, [esp + 0x188]
call fcn.004129c0
lea ecx, [esp + 0x1a0]
call fcn.004129c0
mov dword [esp + 0x18], 0xe0a8eac8
mov dword [esp + 0x18], 0x17
jmp 0x411b34
mov byte [esp + 0x13], 0
cmp byte [esp + 0x13], 0
je 0x411b30
push 0x876
push 0
call dword [sym.imp.USER32.dll_CharUpperBuffW]
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffed
jl 0x411b17
xor eax, eax
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x411b5b
push eax
push 0xcc5
push eax
push 0x1918
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
xor eax, eax
mov dword [esp + 8], edi
mov dword [esp + 0x28], 0x2f1fcc10
mov dword [esp + 0x18], eax
jmp 0x411b7c
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x1e8], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x411b6d
mov dword [esp + 8], eax
jmp 0x411c2f
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], esi
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x411bad
push eax
push 0x2133
call dword [sym.imp.USER32.dll_BeginPaint]
xor eax, eax
mov dword [esp + 0x1e8], 0xfffffff7
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
neg edx
sbb edx, edx
neg edx
sub edx, ecx
imul edx, dword [esp + 0x14]
cmp edx, 0xd5fec46b
sbb ecx, ecx
inc ecx
cmp ecx, dword [esp + 8]
jle 0x411be4
mov edx, edi
cmp dword [esp + 0x14], eax
jne 0x411be6
mov edx, eax
mov dword [esp + 0x20], 0xdec4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], edx
xor edx, edx
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
cmp ecx, 0xffffffff
push 0
setne dl
sub edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp edx, ecx
pop ecx
setle cl
sub ecx, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
dec dword [esp + 8]
cmp dword [esp + 8], 0xffffffff
jle 0x411b8c
mov dword [esp + 0x14], 0x67e307b5
lea ecx, [esp + 0x134]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], 0xffffffff
push esi
call fcn.0041257d
mov dword [esp + 0x28], 0xfe831e34
xor eax, eax
mov dword [esp + 0x18], 0xeeff
mov dword [esp + 8], 0x73439d6f
mov dword [esp + 0xc], eax
jmp 0x411c87
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x40], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x411c7b
mov dword [esp + 0xc], eax
jmp 0x411ca3
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x48], 0x4dde9ab
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x411c93
mov dword [esp + 0xc], eax
jmp 0x411cc1
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x134]
mov dword [ecx + edx*4], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x411caf
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
inc dword [esp + 0x48]
cmp ecx, edx
mov ecx, edi
cmovl ecx, eax
cmp dword [esp + 0x14], eax
je 0x411ce8
xor eax, eax
jmp 0x412280
mov dword [esp + 0x18], 0x39b6
mov dword [esp + 0x30], 0x39e3cf95
mov dword [esp + 0x24], 0x277ebd00
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x4122b1
push 0x338
push eax
call dword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
xor eax, eax
cmp dword [esp + 0x18], eax
je 0x412336
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], 0xc01e6e2b
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x30], ecx
jle 0x4122e2
cmp dword [esp + 0x20], eax
jne 0x4122e2
xor esi, esi
mov edx, eax
inc esi
jmp 0x4122e7
xor esi, esi
inc esi
mov edx, esi
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, edx
test ecx, ecx
je 0x41230b
mov ecx, esi
cmp dword [esp + 0x24], eax
jne 0x41230d
mov ecx, eax
xor eax, eax
cmp ecx, 0xde9a
setle al
xor edx, edx
cmp eax, 0xfffffff7
setle dl
xor ecx, ecx
imul edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp edx, eax
setg cl
mov dword [esp + 0x2c], ecx
jmp 0x41234d
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x41234d
push eax
push 0xf06
call dword [sym.imp.GDI32.dll_SetTextColor]
lea ecx, [esp + 0xd0]
call fcn.0040a7d1
test edi, edi
je 0x41240e
xor esi, esi
lea ecx, [esp + 0x164]
inc esi
push esi
call fcn.0041257d
xor eax, eax
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], esi
jge 0x4123a7
push dword [esp + 0x18]
lea ecx, [esp + 0x168]
call fcn.0041261e
mov dword [eax], 0x24039b64
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x412385
xor eax, eax
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x4123c3
push eax
push eax
push 0x1b5a
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x4123dc
push dword [esp + 0x14]
call fcn.0041261e
mov dword [eax], 0x837bc752
inc dword [esp + 0x14]
lea ecx, [esp + 0x164]
cmp dword [esp + 0x14], esi
jl 0x4123c9
call fcn.00412619
mov edx, dword [esp + 0x44]
mov ecx, edi
call fcn.00410579
mov esi, eax
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0xb4], esi
call fcn.00412641
mov dword [eax], esi
mov eax, dword [ebp + 8]
lea esi, [esp + 0xb0]
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