Function at 0x10039934
Capabilities:
Enumerate gui resources
Get common file path
Get file size
Get file system object information
Identify system language via api
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10067d63
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b0
push ebx
mov dword [esp + 0x64], ecx
xor ebx, ebx
push esi
mov dword [esp + 0x10], 0x462d5e48
mov esi, edx
mov dword [esp + 0x2c], 0xedb39523
push edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x14], ebx
jmp 0x100399ab
mov dword [esp + 0x1c], 0x665683c8
mov dword [esp + 0x1c], ebx
jmp 0x100399a0
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x1003999c
push ebx
push 0x6a
push ebx
call dword [sym.imp.GDI32.dll_GetBitmapBits]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xe
jge 0x10039988
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xd
jg 0x1003997a
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], 0xffffffeb
push 1
pop edi
jl 0x10039afd
mov eax, 0xa9a97186
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x24], 0xfffffff9
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x24], 3
jg 0x10039aea
push 2
lea ecx, [esp + 0x110]
call fcn.10028b5c
mov dword [esp + 0x1c], ebx
jmp 0x10039a22
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10c]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x10039a10
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x28], ecx
mov dword [ecx], 3
mov dword [esp + 0x18], 0xfffffffc
mov eax, dword [esp + 0x24]
mov eax, dword [esp + eax*4 + 0xfc]
or eax, 0xffffffff
cmp dword [esp + 0x18], eax
je 0x10039a5e
mov edx, edi
cmp dword [esp + 0x24], ebx
jne 0x10039a60
mov edx, ebx
mov eax, dword [esp + 0x24]
push 1
mov edi, dword [esp + eax*4 + 0x100]
mov eax, dword [esp + 0x28]
mov esi, dword [ecx + 4]
xor ecx, ecx
cmp edx, 0x941c
setge cl
mov dword [esp + eax*4 + 0x100], edi
add ecx, dword [esp + 0x1c]
xor eax, eax
cmp ecx, esi
setle al
xor edx, edx
cmp eax, esi
mov eax, dword [esp + 0x1c]
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
imul ecx, edi
pop edi
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10c]
dec dword [eax]
jns 0x10039a3a
lea ecx, [esp + 0x10c]
call fcn.10028c61
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 3
jle 0x100399fc
mov eax, 0xa9a97186
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffeb
jge 0x100399c9
mov esi, dword [esp + 0x64]
mov eax, dword [0x1099dae0]
test al, 1
jne 0x10039ba1
or eax, edi
mov dword [0x1099dae0], eax
push ebx
mov dword [esp + 0x1c8], ebx
push ebx
mov dword [0x1099dac0], ebx
mov dword [0x1099dac4], ebx
call fcn.1003bd15
mov dword [0x1099dac0], eax
mov dword [0x1099dac8], ebx
mov dword [0x1099dad0], ebx
mov byte [esp + 0x1c4], 2
mov ecx, 0x1099dac8
mov dword [esp + 0xf4], eax
lea eax, [esp + 0xf4]
push eax
push 0x10
push ebx
lea eax, [esp + 0x178]
mov dword [0x1099dadc], 0x3f800000
push eax
mov dword [0x1099dacc], ebx
call fcn.1003baed
push 0x100683ae
mov dword [0x1099dad4], 7
mov dword [0x1099dad8], 8
call fcn.1004ef2e
or eax, 0xffffffff
pop ecx
mov dword [esp + 0x1c4], eax
imul eax, dword [esp + 0x6c], 0x2710
push 4
add eax, esi
mov dword [esp + 0x80], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 0x57a67d92
mov dword [esp + 0x30], 0xfffffff8
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], 0xc2541761
mov dword [esp + 0x2c], 0xccce1cc0
mov dword [esp + 0x20], ebx
pop esi
jmp 0x10039bf2
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x17c], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x10039be3
mov ecx, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0x14]
cmp ecx, eax
setg dl
imul edx, dword [esp + 0x18]
sub edx, dword [esp + 0x18]
sub edx, dword [esp + 0x14]
add edx, dword [esp + 0x18]
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x18]
jge 0x10039c2e
mov eax, ebx
cmp dword [esp + 0x14], ebx
je 0x10039c30
mov eax, edi
xor edx, edx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setge dl
sub edx, esi
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setle cl
cmp ecx, dword [esp + 0x14]
jl 0x10039c64
mov esi, edi
cmp dword [esp + 0x14], ebx
jne 0x10039c66
mov esi, ebx
mov ecx, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0x14]
cmp ecx, eax
setne dl
xor eax, eax
cmp edx, esi
setg al
xor ecx, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x188]
cmp dword [esp + 0x28], eax
setge cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x180]
setne cl
mov dword [esp + 0x28], ecx
xor ecx, ecx
cmp dword [esp + 0x28], eax
lea eax, [esp + 0x7c]
push eax
setl cl
mov dword [esp + 0x2c], ecx
call fcn.1003b2d0
mov eax, dword [eax]
test eax, eax
je 0x10039ce2
mov dword [esp + 0xcc], eax
jmp 0x1003b136
or esi, 0xffffffff
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], 0x99cf48b0
mov dword [esp + 0x40], 0xfffffff8
mov dword [esp + 0x1c], ebx
jmp 0x10039d13
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x54], edi
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x10039d07
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x24], ebx
jg 0x1003a325
mov dword [esp + 0x14], 0x5799
mov dword [esp + 0x1c], ebx
jmp 0x10039d44
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xd8], edi
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x10039d35
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x54]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x14]
jle 0x10039d6a
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
imul eax, dword [esp + 0x24], 5
test eax, eax
jne 0x10039d87
mov ecx, ebx
cmp dword [esp + 0x14], ebx
je 0x10039d89
mov ecx, edi
mov eax, dword [esp + 0x14]
imul eax, ecx
cmp dword [esp + 0x24], eax
jl 0x10039d9e
mov eax, edi
cmp dword [esp + 0x14], ebx
jne 0x10039da0
mov eax, ebx
neg eax
mov dword [esp + 0x34], eax
jne 0x10039dac
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + 0x24]
cmp ecx, eax
setle dl
cmp edx, 0xea6801fc
ja 0x1003a2a9
mov dword [esp + 0x18], 6
mov dword [esp + 0x28], 0x2685
cmp dword [esp + 0x28], 0x4e9
jge 0x1003a1d6
mov dword [0x1096ca00], edi
mov esi, 0x1096ca08
mov dword [0x1096ca04], ebx
push ebx
push 0xa
push dword [esi - 4]
push dword [esi - 8]
call fcn.10053050
mov dword [esi], eax
mov dword [esi + 4], edx
add esi, 8
cmp esi, 0x1096ca58
jl 0x10039df6
push 0x1096c9f4
push 0x1096c9fc
push 0x10008b5c
call fcn.1004eb10
mov eax, dword [0x1096c9fc]
add esp, 0xc
mov edi, ebx
test eax, eax
jle 0x10039e59
push 4
mov esi, 0x108a94f0
pop ebx
push esi
push 0x10008ae4
call fcn.1004eb10
mov eax, dword [0x1096c9fc]
inc edi
pop ecx
add esi, ebx
pop ecx
cmp edi, eax
jl 0x10039e3e
xor ebx, ebx
mov esi, ebx
test eax, eax
jle 0x10039edb
mov ecx, dword [esi*4 + 0x108a94f0]
mov eax, ecx
cdq
idiv dword [0x1096c9f4]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mov eax, edx
push ecx
cdq
push ecx
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
movsd qword [esp], xmm0
call fcn.1004fd80
pop ecx
pop ecx
lea eax, [esp + 0x130]
push eax
fstp qword [esp + 0x44]
movsd xmm0, qword [esp + 0x44]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.1004fc50
fld1
faddp st(1)
pop ecx
pop ecx
fstp qword [esp + 0x44]
cvttsd2si eax, qword [esp + 0x44]
imul ecx, eax, 0xc
add ecx, 0x1099d9d0
call fcn.10029a9f
inc esi
cmp esi, dword [0x1096c9fc]
jl 0x10039e5f
mov esi, 0x1099d9dc
mov edx, dword [esi + 4]
mov eax, edx
sub eax, dword [esi]
mov ecx, dword [esi]
mov byte [esp + 0xe4], bl
push dword [esp + 0xe4]
sar eax, 3
push eax
call fcn.1003c294
add esi, 0xc
pop ecx
pop ecx
cmp esi, 0x1099da48
jle 0x10039ee0
cmp dword [0x1096c9fc], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov dword [esp + 0x28], ebx
jle 0x1003a1bc
mov esi, dword [0x1096c9f4]
mov eax, esi
mov ecx, dword [esp + 0x44]
cdq
mov dword [esp + 0x3c], edx
mov edx, 0x108a94f0
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], ecx
jmp 0x10039f59
mov esi, dword [0x1096c9f4]
mov eax, 0x1099d9dc
mov dword [esp + 0x30], 0x1096ca08
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x5c]
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
cmp dword [ecx], eax
je 0x1003a0ad
mov eax, dword [edx]
cdq
idiv esi
push dword [esp + 0x3c]
mov eax, edx
push dword [esp + 0x50]
cdq
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x38]
push dword [eax + 4]
push dword [eax]
call fcn.10066b20
push edx
push eax
push esi
push edi
call fcn.10053050
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x4c]
push esi
push edi
push edx
push eax
call fcn.10066b20
mov ecx, edi
sub ecx, eax
mov eax, esi
push esi
push edi
sbb eax, edx
push eax
push ecx
call fcn.10066b20
mov esi, eax
mov eax, edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x80], eax
cmp eax, ebx
jl 0x1003a0a9
jg 0x10039feb
cmp esi, ebx
jb 0x1003a0a9
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov byte [esp + 0x73], bl
mov edi, dword [eax]
sub ecx, edi
sar ecx, 3
test ecx, ecx
jle 0x1003a038
mov ebx, dword [esp + 0x80]
mov eax, ecx
cdq
sub eax, edx
mov edx, eax
sar edx, 1
lea eax, [edi + edx*8]
cmp dword [eax + 4], ebx
jg 0x1003a02c
jl 0x1003a020
cmp dword [eax], esi
jae 0x1003a02c
lea edi, [eax + 8]
or eax, 0xffffffff
sub eax, edx
add ecx, eax
jmp 0x1003a02e
mov ecx, edx
test ecx, ecx
jg 0x1003a009
mov eax, dword [esp + 0x5c]
xor ebx, ebx
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
sub edi, dword [eax]
sar edi, 3
sar ecx, 3
mov dword [esp + 0x60], edi
mov byte [esp + 0x7b], bl
test ecx, ecx
jle 0x1003a091
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x80]
mov eax, ecx
cdq
sub eax, edx
mov edx, eax
sar edx, 1
lea eax, [esi + edx*8]
cmp edi, dword [eax + 4]
jl 0x1003a081
jg 0x1003a075
cmp ebx, dword [eax]
jb 0x1003a081
lea esi, [eax + 8]
or eax, 0xffffffff
sub eax, edx
add ecx, eax
jmp 0x1003a083
mov ecx, edx
test ecx, ecx
jg 0x1003a05e
mov edi, dword [esp + 0x60]
xor ebx, ebx
mov eax, dword [esp + 0x5c]
sub esi, dword [eax]
sar esi, 3
sub esi, edi
mov eax, esi
mov esi, dword [esp + 0x38]
cdq
add dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 0x38], esi
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x5c]
add ecx, 8
mov esi, dword [0x1096c9f4]
add eax, 0xc
mov dword [esp + 0x30], ecx
mov dword [esp + 0x5c], eax
cmp ecx, 0x1096ca50
jle 0x10039f6a
movd xmm0, dword [edx]
cvtdq2pd xmm0, xmm0
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.1004fd80
mov eax, dword [0x1096c9f4]
mov edi, dword [esp + 0x24]
cdq
fstp qword [esp + 0x48]
movsd xmm0, qword [esp + 0x48]
mov esi, eax
mov edi, dword [edi]
mov dword [esp + 0x54], esi
mov dword [esp + 0x44], edx
movsd qword [esp], xmm0
call fcn.1004fc50
fld1
faddp st(1)
pop ecx
pop ecx
push dword [esp + 0x3c]
fstp qword [esp + 0x44]
cvttsd2si eax, qword [esp + 0x44]
push esi
push dword [eax*8 + 0x1096ca04]
push dword [eax*8 + 0x1096ca00]
call fcn.10066b20
mov esi, eax
mov ecx, edx
mov eax, edi
cdq
idiv dword [0x1096c9f4]
mov eax, edx
cdq
push edx
push eax
push ecx
push esi
call fcn.10053050
push dword [esp + 0x3c]
push dword [esp + 0x50]
push edx
push eax
call fcn.10066b20
push dword [esp + 0x3c]
mov esi, eax
mov ecx, edx
push dword [esp + 0x50]
mov eax, edi
cdq
add esi, eax
adc ecx, edx
push ecx
push esi
call fcn.10066b20
or eax, edx
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
jne 0x1003a198
or eax, 0xffffffff
add edi, eax
mov dword [esp + 0x2c], edi
adc esi, eax
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
inc eax
push 4
pop ecx
add edx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
cmp eax, dword [0x1096c9fc]
jl 0x10039f53
jmp 0x1003a1c4
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
push esi
push edi
push 0x10008aec
call fcn.1004f14f
xor edi, edi
add esp, 0xc
inc edi
mov dword [esp + 0x40], 0xd4938140
mov dword [esp + 0x30], 0x4c62b419
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0xdc]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x18]
jge 0x1003a236
mov edx, edi
cmp dword [esp + 0x54], ebx
jne 0x1003a238
mov edx, ebx
mov eax, dword [esp + 0x34]
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x30]
setle cl
xor edx, edx
cmp ecx, 3
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x14]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x54]
setle dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x20]
setle cl
mov dword [esp + 0x40], ecx
xor ecx, ecx
cmp dword [esp + 0x40], eax
setl cl
xor edx, edx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0x34]
cmp eax, ecx
mov eax, dword [esp + 0x14]
setge dl
imul eax, edx
sub eax, dword [esp + 0x30]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x40], eax
jmp 0x1003a2f3
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a2ba
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
mov dword [esp + 0x34], ebx
jmp 0x1003a2ed
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a2d3
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a2e9
push 0x1eee
call dword [sym.imp.USER32.dll_IsIconic]
inc dword [esp + 0x34]
cmp dword [esp + 0x34], ebx
jle 0x1003a2c0
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a314
push 0x243f
push ebx
push 0x2137
push 0xb92
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
inc dword [esp + 0x24]
cmp dword [esp + 0x24], ebx
jle 0x10039d27
or esi, 0xffffffff
mov eax, dword [0x1099dae0]
mov dword [esp + 0x34], 0xfffffff7
mov dword [esp + 0x60], 5
test al, 2
jne 0x1003a3dd
or eax, 2
mov dword [0x1099dae0], eax
push ebx
mov dword [esp + 0x1c8], 3
push ebx
mov dword [0x1099daf0], ebx
mov dword [0x1099daf4], ebx
call fcn.1003bd15
mov dword [0x1099daf0], eax
mov dword [0x1099daf8], ebx
mov dword [0x1099db00], ebx
push 5
pop ecx
mov byte [esp + 0x1c4], cl
mov ecx, 0x1099daf8
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xf8]
push eax
push 0x10
push ebx
lea eax, [esp + 0xec]
mov dword [0x1099db0c], 0x3f800000
push eax
mov dword [0x1099dafc], ebx
call fcn.1003baed
push 0x100683a9
mov dword [0x1099db04], 7
mov dword [0x1099db08], 8
call fcn.1004ef2e
pop ecx
mov dword [esp + 0x1c4], esi
mov dword [esp + 0x18], 0xd313dd33
mov dword [esp + 0x18], ebx
jmp 0x1003a3fe
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xb8], 0xe01bd97a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x1003a3eb
mov dword [esp + 0x18], ebx
jmp 0x1003a445
mov dword [esp + 0x1c], 0xfffffff7
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a424
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov dword [esp + 0x1c], ebx
jmp 0x1003a43b
mov eax, dword [esp + 0x1c]
cmp dword [esp + eax*4 + 0xb8], ebx
jne 0x1003a441
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jle 0x1003a42a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x1a
jg 0x1003a40a
lea eax, [esp + 0x6c]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0x9c], xmm0
call fcn.1003b332
cmp byte [ebp + 0xc], 0
mov esi, dword [eax]
mov dword [esp + 0x3c], esi
jne 0x1003a476
test esi, esi
jne 0x1003a79d
mov dword [esp + 0x20], 0x1dba
cmp dword [esp + 0x20], 0x454
jge 0x1003a53c
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x7c]
push eax
push 0x10008c18
call fcn.1004eb10
mov eax, dword [esp + 0x84]
xor ecx, ecx
push 4
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100487ca
mov ecx, dword [esp + 0x88]
add esp, 0x14
mov dword [esp + 0x20], eax
cmp ecx, 1
jl 0x1003a4fa
push 4
lea esi, [eax + 4]
pop ebx
push esi
push 0x10008ae4
call fcn.1004eb10
pop ecx
pop ecx
mov ecx, dword [esp + 0x74]
inc edi
add esi, ebx
cmp edi, ecx
jle 0x1003a4e0
xor ebx, ebx
mov edx, dword [esp + 0xc8]
mov eax, ebx
mov esi, ebx
test ecx, ecx
jle 0x1003a51f
mov edi, dword [esp + 0x20]
cmp edx, dword [esp + 0x84]
je 0x1003a52c
mov edx, dword [edi + edx*4]
inc eax
inc esi
cmp esi, ecx
jl 0x1003a50d
cmp edx, dword [esp + 0x84]
push 0xffffffffffffffff
pop ecx
cmovne eax, ecx
push eax
push 0x10008b08
call fcn.1004f14f
pop ecx
xor edi, edi
pop ecx
inc edi
push 2
lea ecx, [esp + 0xec]
call fcn.10028b5c
mov dword [esp + 0x14], ebx
or edx, 0xffffffff
cmp dword [esp + 0x14], 2
jge 0x1003a56c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xe8]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x14]
jmp 0x1003a551
push 4
mov dword [esp + 0x18], ebx
pop ecx
jmp 0x1003a588
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xa8], 0x9bdba76a
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x1003a575
mov dword [esp + 0xb4], edi
cmp dword [esp + 0xb4], ebx
jl 0x1003a69e
jmp 0x1003a5a7
or edx, 0xffffffff
mov dword [esp + 0x14], 0xae8c9f36
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], edi
jg 0x1003a676
jmp 0x1003a5c2
or edx, 0xffffffff
mov dword [esp + 0x28], 6
mov eax, dword [esp + 0xb4]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], 0x62d7bc3
cmp dword [esp + 0x28], ebx
jne 0x1003a5ee
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0x14]
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp eax, edx
mov eax, dword [esp + 0xe8]
setne cl
xor edx, edx
cmp ecx, edi
setge dl
xor ecx, ecx
cmp edx, dword [eax + esi*4]
mov eax, dword [esp + 0x14]
setl cl
xor edx, edx
cmp ecx, eax
setg dl
imul edx, dword [esp + 0x14]
sub edx, dword [esp + 0x14]
neg edx
sbb edx, edx
or eax, 0xffffffff
inc edx
cmp edx, eax
je 0x1003a63d
cmp dword [esp + 0x14], ebx
je 0x1003a63d
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xe8]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a668
push 0x1272
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x1003a5bf
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xe8]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [esp + 0xb4]
jns 0x1003a5a4
lea ecx, [esp + 0xe8]
call fcn.10028c61
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x1a8]
mov ecx, dword [esp + 0x6c]
push eax
call fcn.1002f3e9
cmp byte [ebp + 0xc], 0
lea edi, [esp + 0x9c]
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 0x1003a796
cmp dword [esp + 0xa0], 0
je 0x1003a796
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x38], 0xfffffff9
mov dword [esp + 0x20], 8
mov dword [esp + 0xd0], eax
mov dword [esp + 0x38], ebx
jmp 0x1003a781
mov dword [esp + 0x2c], 0xf9b2cfb6
mov dword [esp + 0x2c], ebx
jmp 0x1003a776
push 2
lea ecx, [esp + 0x164]
call fcn.10028b5c
mov dword [esp + 0x18], ebx
jmp 0x1003a740
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x160]
mov dword [eax + ecx*4], 0x23ed15de
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1003a72a
mov eax, dword [esp + 0x160]
mov dword [eax], 0x14
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a766
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommBreak]
lea ecx, [esp + 0x160]
call fcn.10028c61
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 3
jg 0x1003a716
dec dword [esp + 0x38]
cmp dword [esp + 0x38], 0xffffffec
jge 0x1003a708
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xd4], eax
mov esi, dword [esp + 0x3c]
xor edi, edi
inc edi
mov dword [esp + 0x18], 0x20624039
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a7b7
push ebx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
mov dword [esp + 0x18], ebx
jmp 0x1003a7d4
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a7d0
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffffe
je 0x1003a7bd
test esi, esi
jne 0x1003ae59
cmp dword [esp + 0x98], esi
jle 0x1003ae59
push 4
pop eax
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x154]
mov dword [esp + 0x20], ebx
push 3
call fcn.10028b5c
push 3
mov dword [esp + 0x24], 0x7f759609
mov dword [esp + 0x1c], ebx
pop edx
jmp 0x1003a82c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x154]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x1003a81a
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], ebx
jmp 0x1003a856
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x154]
mov dword [eax + ecx*4], 0xfff9
inc dword [esp + 0x34]
cmp dword [esp + 0x34], edx
jl 0x1003a840
lea ecx, [esp + 0x154]
call fcn.10028c61
mov dword [esp + 0x28], 8
mov dword [esp + 0x20], 0xccb03629
cmp dword [esp + 0x28], ebx
je 0x1003a8a3
mov dword [esp + 0x30], 0x4288a137
xor edx, edx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
cmp ecx, eax
setge dl
mov dword [esp + 0x20], edx
jmp 0x1003a8d3
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a8d3
push 0x8f4
push 0x51c
push 0x8d
push 0xf0a
push 0x77
push ebx
push ebx
push ebx
push ebx
push 0x1eed
call dword [sym.imp.USER32.dll_DrawStateW]
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a8e7
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumResourceTypesW]
push dword [esp + 0xe0]
movdqa xmm0, xmmword [0x10009090]
lea eax, [esp + 0x1a0]
push eax
lea eax, [esp + 0x194]
mov dword [esp + 0xc4], ebx
push eax
push ebx
lea ecx, [esp + 0xcc]
mov dword [esp + 0xd0], ebx
movdqu xmmword [esp + 0x19c], xmm0
mov dword [esp + 0xd4], ebx
call fcn.1002e143
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xbc]
mov dword [eax], ecx
lea ecx, [esp + 0xbc]
call fcn.10028c61
mov dword [esp + 0x20], edi
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a968
push 0x1266
call dword [sym.imp.USER32.dll_SetCapture]
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003a985
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x1673
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp dword [esp + 0x9c], 0
je 0x1003ae59
mov dword [esp + 0x20], 0xab06
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], ebx
jmp 0x1003a9b8
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x88], 0x2799ac78
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x1003a9a5
mov dword [esp + 0x14], ebx
jmp 0x1003a9d7
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x8c], 0x7a4a12b5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1003a9c4
mov dword [esp + 0x94], ebx
cmp dword [esp + 0x94], ebx
jl 0x1003aa3d
mov dword [esp + 0x28], 0xffff
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x8c], 0x1e12aa53
jle 0x1003aa0e
mov eax, dword [esp + 0x94]
cmp dword [esp + 0x20], ebx
je 0x1003aa1b
mov eax, dword [esp + 0x94]
mov eax, dword [esp + 0x88]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x88]
push 4
pop eax
mov dword [esp + 0x40], eax
dec dword [esp + 0x94]
jns 0x1003a9ee
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003aa4f
push ebx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov ecx, dword [esp + 0x9c]
call fcn.100398ef
mov esi, eax
mov dword [esp + 0x24], 8
or eax, 0xffffffff
mov dword [esp + 0x1c], 0x412df3d3
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x124]
mov dword [esp + 0x4c], 0x3b4709ba
push 3
mov dword [esp + 0x40], esi
call fcn.10028b5c
push 4
mov dword [esp + 0x1c8], 6
lea ecx, [esp + 0x14c]
pop eax
mov dword [esp + 0x2c], 0x37ae9f90
mov dword [esp + 0x30], edi
push eax
call fcn.10028b5c
mov byte [esp + 0x1c4], 7
mov dword [esp + 0x14], ebx
jmp 0x1003aad3
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x50], 0x648261f
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x1003aac3
mov dword [esp + 0x14], ebx
jmp 0x1003aaf5
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x124]
mov dword [eax + ecx*4], 0xafb5d1cb
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1003aadf
push 4
mov dword [esp + 0x18], ebx
pop edx
jmp 0x1003ab1b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x148]
mov dword [eax + ecx*4], 0x7dfb
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1003ab05
mov dword [esp + 0x24], ebx
jmp 0x1003ab9b
mov eax, dword [esp + 0x24]
mov eax, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x24]
cmp ecx, dword [esp + eax*4 + 0x50]
je 0x1003ab49
mov ecx, edi
cmp dword [esp + 0x1c], ebx
jne 0x1003ab4b
mov ecx, ebx
mov eax, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + eax*4 + 0x50]
cmp ecx, eax
mov eax, dword [esp + 0x50]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], ebx
je 0x1003ab89
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003ab97
push ebx
push ebx
push 0x2322
call dword [sym.imp.ADVAPI32.dll_CopySid]
jmp 0x1003ab97
mov dword [esp + 0x20], 0xfe662db8
cmp dword [esp + 0x20], ebx
jne 0x1003aba1
inc dword [esp + 0x24]
cmp dword [esp + 0x24], ebx
jle 0x1003ab27
inc dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
setl dl
mov dword [esp + 0x20], edx
xor edx, edx
cmp ecx, eax
setg dl
xor eax, eax
cmp edx, dword [esp + 0x20]
setge al
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x20]
cmp edx, dword [eax + 8]
setge cl
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add edx, 0xd7276cc
cmp eax, edx
setl cl
cmp ecx, 0x390f
jne 0x1003adc5
push 4
pop eax
mov dword [esp + 0x38], 0xe4f2007
lea ecx, [esp + 0x118]
push eax
call fcn.10028b5c
push 4
mov dword [esp + 0x1c], ebx
pop edx
jmp 0x1003ac43
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x118]
mov dword [eax + ecx*4], 0xb364fef5
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x1003ac2d
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003ad61
mov dword [esp + 0x20], 0x13fe
cmp dword [esp + 0x20], 0xc0c
jge 0x1003ad59
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x6c]
push eax
push 0x10008e4c
call fcn.1004eb10
mov edx, dword [esp + 0x74]
add esp, 0xc
mov edi, ebx
test edx, edx
jle 0x1003acb1
push 4
mov esi, 0x1096ca60
pop ebx
push esi
push 0x10008ae4
call fcn.1004eb10
mov edx, dword [esp + 0x70]
inc edi
pop ecx
add esi, ebx
pop ecx
cmp edi, edx
jl 0x1003ac97
xor ebx, ebx
mov ecx, dword [esp + 0x58]
mov esi, ebx
mov edi, ebx
test edx, edx
jle 0x1003ad34
or ebx, 0xffffffff
push 0xfffffffffffffff6
pop eax
sub eax, dword [edi*4 + 0x1096ca60]
add ecx, eax
mov dword [esp + 0x58], ecx
jns 0x1003ad2a
lea eax, [edx - 1]
cmp edi, eax
je 0x1003acec
push 0x10008bf8
call fcn.1004f621
mov edx, dword [esp + 0x6c]
pop ecx
mov ecx, dword [esp + 0x58]
test ecx, ecx
jns 0x1003ad2a
lea eax, [edx - 1]
cmp edi, eax
jne 0x1003ad2a
push 5
add ecx, 0xa
pop eax
mov dword [esp + 0x58], ecx
cmp ecx, eax
jl 0x1003ad0e
mov eax, ecx
cdq
idiv dword [esp + 0x60]
add esi, eax
test ecx, ecx
mov eax, esi
cmovs eax, ebx
push eax
push 0x10008b08
call fcn.1004f14f
mov edx, dword [esp + 0x70]
pop ecx
pop ecx
mov ecx, dword [esp + 0x58]
add esi, 2
inc edi
cmp edi, edx
jl 0x1003acc0
xor ebx, ebx
push 5
pop eax
cmp ecx, eax
jl 0x1003ad45
mov eax, ecx
push 5
cdq
pop ecx
idiv ecx
add esi, eax
push esi
push 0x10008b08
call fcn.1004f14f
mov esi, dword [esp + 0x44]
xor edi, edi
pop ecx
pop ecx
inc edi
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp dword [esp + 0x38], ebx
je 0x1003ad77
mov eax, dword [esp + 0x30]
dec dword [esp + 0x30]
test eax, eax
jne 0x1003ad77
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x4c], ebx
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x124]
add edx, dword [eax]
mov eax, dword [esp + 0x38]
cmp eax, edx
mov eax, dword [esp + 0x118]
setl cl
mov dword [eax + 4], ecx
lea ecx, [esp + 0x118]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x118]
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
call fcn.10028c61
jmp 0x1003ae2b
mov dword [esp + 0x1c], 0x8f781be2
mov dword [esp + 0x28], edi
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003adf3
push 0x391
push 0xfa2
push ebx
push 0x36d
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov eax, dword [esp + 0x1c]
mov edx, edi
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x28], ebx
jne 0x1003ae19
mov edx, ebx
mov eax, dword [esp + 0x148]
xor ecx, ecx
cmp edx, dword [eax]
setg cl
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x148]
call fcn.10028c61
or eax, 0xffffffff
lea ecx, [esp + 0x124]
mov dword [esp + 0x1c4], eax
call fcn.10028c61
lea eax, [esp + 0x6c]
push eax
call fcn.1003b332
mov dword [eax], esi
lea ecx, [esp + 0x98]
call fcn.10035d63
mov dword [esp + 0x1c], 0xbac64a68
lea ecx, [esp + 0x170]
mov dword [esp + 0x20], 6
mov dword [esp + 0x20], 0xfffffff7
mov dword [esp + 0x20], 0xfffffff8
mov dword [esp + 0x20], 8
push 3
call fcn.10028b5c
mov dword [esp + 0x1c4], 8
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], ebx
jmp 0x1003aec6
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x170]
mov dword [eax + ecx*4], 0xa26f3f17
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1003aeb0
push 5
pop eax
mov dword [esp + 0x1c], eax
or eax, 0xffffffff
cmp dword [esp + 0x1c], eax
jl 0x1003af50
or esi, eax
mov dword [esp + 0x20], 0xb274bf90
lea ecx, [esp + 0x13c]
push edi
call fcn.10028b5c
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], ebx
jmp 0x1003af14
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x13c]
mov dword [eax + ecx*4], 0xfc4f27d2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x1003aefe
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
dec dword [esp + 0x30]
cmp eax, ecx
mov eax, dword [esp + 0x13c]
mov ecx, edi
cmovge ecx, ebx
add dword [eax], ecx
lea ecx, [esp + 0x13c]
call fcn.10028c61
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jge 0x1003aedf
mov esi, dword [esp + 0x3c]
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003af67
push 0x170c
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
or eax, 0xffffffff
lea ecx, [esp + 0x170]
mov dword [esp + 0x1c4], eax
call fcn.10028c61
mov edi, dword [sym.imp.GDI32.dll_CopyEnhMetaFileA]
test esi, esi
je 0x1003b0f7
mov dword [esp + 0x18], 0xd5e48d32
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003afa2
push ebx
push ebx
call edi
mov dword [esp + 0x18], ebx
jmp 0x1003afc3
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003afbf
push 0xf4a
push ebx
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeA]
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffffe
jle 0x1003afa8
mov edx, dword [esp + 0x64]
mov ecx, esi
call fcn.1003992a
mov esi, eax
mov dword [esp + 0x14], 8
or eax, 0xffffffff
mov dword [esp + 0xcc], esi
mov dword [esp + 0x64], eax
mov dword [esp + 0x14], 0x15
jmp 0x1003b0e0
mov dword [esp + 0x2c], 1
mov dword [esp + 0x20], 0xfffffff6
mov dword [esp + 0x18], ebx
jmp 0x1003b023
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x19c], 0xa28c7fff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1003b010
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003b047
push ebx
push 0x1419
push ebx
push 0xc1f
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov eax, dword [esp + 0x14]
inc ecx
sub ecx, eax
xor edx, edx
add ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
cmp ecx, eax
setge dl
sub edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
sub ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x40], ecx
xor ecx, ecx
cmp dword [esp + 0x40], eax
setle cl
sub ecx, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0xb4e9
mov ecx, 0x88146cde
setle al
cmp ecx, eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x1a4], ecx
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffe7
jge 0x1003affa
lea eax, [esp + 0x7c]
push eax
call fcn.1003b2d0
mov dword [eax], esi
mov dword [esp + 0x18], 0xd5e48d32
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003b10e
push ebx
push ebx
call edi
mov dword [esp + 0x18], ebx
jmp 0x1003b12f
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1003b12b
push 0xf4a
push ebx
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeA]
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffffe
jle 0x1003b114
mov eax, dword [ebp + 8]
lea esi, [esp + 0xcc]
mov ecx, dword [esp + 0x1bc]
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 dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret