Function at 0x100409ca
Capabilities:
Connect pipe
Query or enumerate registry value

Disassembly:
mov eax, 0x10061448
call fcn.10060330
sub esp, 0x268
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x44], ecx
inc edi
mov dword [ebp - 0x10], esp
xor ebx, ebx
mov dword [ebp - 0x14], edi
mov esi, edx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x14], ebx
jmp 0x10040a06
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100409f8
mov dword [ebp - 0x14], ebx
jmp 0x10040a21
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x180], 0xc0faab39
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10040a10
mov dword [ebp - 0x14], 0x64a6847d
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp eax, 0xfffffffb
mov eax, dword [ebp - 0x14]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setg cl
xor edx, edx
cmp ecx, eax
setle dl
xor ecx, ecx
cmp edx, 0xffffffff
setne cl
xor eax, eax
sub ecx, dword [ebp - 0x14]
cmp ecx, 7
setg al
xor edx, edx
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x14]
test eax, eax
mov eax, dword [ebp - 0x40]
sets dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x180], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x180], ebx
mov byte [ebp - 0x15], bl
je 0x10040b41
mov dword [ebp - 0x2c], 0x103d
cmp dword [ebp - 0x2c], 0x1053
jle 0x10040adc
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
sar eax, cl
mov ecx, 0x10608998
cdq
push edx
push eax
call fcn.1002bc5e
inc edi
cmp edi, 0x14a1
jl 0x10040ab4
inc esi
cmp esi, 0x725b
jl 0x10040ab2
xor edi, edi
inc edi
cmp byte [ebp - 0x15], bl
je 0x10040ae8
push ebx
call dword [sym.imp.KERNEL32.dll_SetThreadLocale]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x2c], 0xfd6
jge 0x10040b03
mov edx, 0x1000b250
mov ecx, 0x10608998
call fcn.1002d708
or dword [ebp - 4], 0xffffffff
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10040b17
push ebx
call dword [sym.imp.COMDLG32.dll_FindTextW]
mov esi, dword [ebp - 0x38]
jmp 0x10040b52
cmp byte [ebp - 0x15], bl
je 0x10040b52
push 0x135
push ebx
call dword [sym.imp.USER32.dll_CharLowerBuffW]
mov eax, dword [0x10609b30]
test al, 1
jne 0x10040be9
or eax, edi
mov dword [0x10609b30], eax
push ebx
mov dword [ebp - 4], 2
push ebx
mov dword [0x10609b10], ebx
mov dword [0x10609b14], ebx
call fcn.1003445b
mov dword [0x10609b10], eax
mov dword [0x10609b18], ebx
mov dword [0x10609b20], ebx
mov byte [ebp - 4], 4
mov ecx, 0x10609b18
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x88]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1b4]
mov dword [0x10609b2c], 0x3f800000
push eax
mov dword [0x10609b1c], ebx
call fcn.10034233
push 0x10061849
mov dword [0x10609b24], 7
mov dword [0x10609b28], 8
call fcn.1004b03c
or dword [ebp - 4], 0xffffffff
pop ecx
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], 6
jmp 0x10040c3b
push 3
lea ecx, [ebp - 0x164]
call fcn.1002bd73
mov dword [ebp - 0x20], ebx
jmp 0x10040c1e
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x164]
mov dword [eax + ecx*4], 0x86e871d9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x10040c0b
mov eax, dword [ebp - 0x164]
lea ecx, [ebp - 0x164]
mov dword [eax + 8], ebx
call fcn.1002bdf5
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffc
jg 0x10040bf9
cmp dword [ebp - 0x14], ebx
je 0x10040cbd
mov dword [ebp - 0x20], 0x1860ec01
lea ecx, [ebp - 0x194]
push edi
call fcn.1002bd73
mov dword [ebp - 0x20], ebx
jmp 0x10040c71
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x194]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x10040c5e
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], ebx
jmp 0x10040caa
mov dword [ebp - 0x20], ebx
jmp 0x10040ca2
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10040c9f
push ebx
push ebx
push 0x1f2b
push 0x127c
push ebx
call dword [sym.imp.USER32.dll_ModifyMenuW]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x10040c83
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff0
jl 0x10040c7e
lea ecx, [ebp - 0x194]
call fcn.1002bdf5
jmp 0x10040d12
mov dword [ebp - 0x20], ebx
jmp 0x10040cd3
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1a0], 0xb42c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10040cc2
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], ebx
jl 0x10040d12
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x1a0], ebx
jne 0x10040d12
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10040d0d
push 0x1e88
push 0x20f7
push 0x77c
push 0x29
call dword [sym.imp.USER32.dll_CheckRadioButton]
dec dword [ebp - 0x14]
jns 0x10040ce1
imul eax, dword [ebp - 0x44], 0x2710
add eax, esi
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x4c]
push eax
call fcn.100420e5
push 4
lea ecx, [ebp - 0x128]
mov esi, dword [eax]
mov dword [ebp - 0x40], esi
call fcn.1002bd73
mov dword [ebp - 0x20], 0xf8cd3bed
push 4
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], ebx
pop edx
jmp 0x10040d5e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x128]
mov dword [eax + ecx*4], 0x2604
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10040d4b
mov dword [ebp - 0x14], ebx
jmp 0x10040d79
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1d4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10040d68
mov ecx, dword [ebp - 0x128]
mov dword [ebp - 0x24], ecx
mov eax, dword [ecx + 4]
test eax, eax
jne 0x10040d95
mov edx, ebx
cmp dword [ecx + 0xc], ebx
je 0x10040d97
mov edx, edi
cmp eax, edx
jne 0x10040da1
mov edx, ebx
test eax, eax
je 0x10040da3
mov edx, edi
xor eax, eax
cmp edx, dword [ecx]
setg al
cmp eax, 0x5bb2
jle 0x10040e84
mov dword [ebp - 0x1c], 0x6f885ea6
xor edx, edx
mov dword [ebp - 0x2c], 0xfffffffd
mov dword [ebp - 0x174], ebx
mov dword [ebp - 0x170], ebx
mov dword [ebp - 0x16c], ebx
mov dword [ebp - 0x168], ebx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ecx + 4]
mov ecx, esi
mov eax, dword [ebp - 0x1c]
sub ecx, eax
cmp ecx, esi
setl dl
xor eax, eax
cmp edx, 0x518f4c6f
setle al
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], ebx
jne 0x10040e0c
mov eax, ebx
cmp dword [ebp - 0x20], ebx
je 0x10040e0e
mov eax, edi
mov esi, dword [ebp - 0x24]
add eax, 0xd2afddf3
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], ebx
jne 0x10040e25
mov eax, ebx
cmp dword [esi + 4], ebx
je 0x10040e27
mov eax, edi
mov ecx, dword [ebp - 0x20]
xor edx, edx
imul eax, eax, 0xf95
sub ecx, eax
add ecx, dword [ebp - 0x1c]
cmp ecx, dword [esi + 4]
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
cmp eax, edx
setg cl
cmp ecx, dword [ebp - 0x16c]
je 0x10040e56
mov ecx, edi
cmp dword [ebp - 0x30], ebx
jne 0x10040e58
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
sub ecx, eax
mov dword [ebp - 0x1d0], eax
add ecx, dword [ebp - 0x1c]
cmp ecx, dword [esi + 4]
jle 0x10040e73
cmp dword [ebp - 0x1d0], ebx
je 0x10040e7a
mov eax, edi
cmp dword [esi + 4], ebx
jne 0x10040e7c
mov eax, ebx
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x20], eax
jmp 0x10040ea3
mov dword [ebp - 0x2c], edi
inc dword [ebp - 0x2c]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10040ea3
push 0xcf6
push 0x192e
call dword [sym.imp.USER32.dll_GetWindowLongW]
lea ecx, [ebp - 0x128]
call fcn.1002bdf5
test esi, esi
je 0x1004109d
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000b990]
lea eax, [ebp - 0x1b4]
push eax
lea eax, [ebp - 0x1c4]
mov dword [ebp - 0x84], esi
push eax
push ebx
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], ebx
movdqu xmmword [ebp - 0x1c4], xmm0
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
call fcn.1002dc27
mov dword [ebp - 4], 5
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x38], 0xec0351a9
mov dword [ebp - 0x1c], 0x9827359b
mov dword [ebp - 0x24], 0x84cb
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x34], 0x3783ea6d
mov dword [ebp - 0x28], 0xba827cf5
push edi
call fcn.1002bd73
mov byte [ebp - 4], 6
mov dword [ebp - 0x30], 0x541960cc
mov dword [ebp - 0x20], ebx
jmp 0x10040f4b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xf8]
mov dword [eax + ecx*4], 0xc3345720
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x10040f38
mov eax, dword [ebp - 0x68]
push 2
pop esi
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], 0xed08e159
mov dword [ebp - 0x34], 0xb31915e3
mov dword [ebp - 0x20], ebx
jmp 0x10040f91
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xcc], 0xa46e4944
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x10040f80
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], 0xffff
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x68]
setge dl
xor ecx, ecx
neg edx
cmp edx, dword [eax + 4]
setge cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0x14], ebx
je 0x10040ff6
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10041085
push ebx
push 0x3e9
call dword [sym.imp.USER32.dll_SetMenu]
jmp 0x10041085
mov dword [ebp - 0x38], 0xfffffffc
lea ecx, [ebp - 0x140]
push esi
call fcn.1002bd73
mov dword [ebp - 0x34], 0xfffffffa
mov dword [ebp - 0x40], 0xfccfb42d
mov dword [ebp - 0x20], ebx
jmp 0x1004102f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x140]
mov dword [eax + ecx*4], 0xcb87840e
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x1004101c
mov eax, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x30]
dec dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x38], eax
jge 0x10041053
cmp dword [ebp - 0x28], ebx
jne 0x10041055
mov edi, ebx
mov eax, dword [ebp - 0x140]
xor edx, edx
cmp edi, 0xa006
setge dl
xor ecx, ecx
mov dword [eax], edi
mov eax, dword [ebp - 0x24]
cmp edx, eax
mov eax, dword [ebp - 0xf8]
setge cl
mov dword [eax], ecx
lea ecx, [ebp - 0x140]
call fcn.1002bdf5
lea ecx, [ebp - 0xf8]
call fcn.1002bdf5
lea ecx, [ebp - 0x68]
call fcn.1002bdf5
jmp 0x10041ff8
push edi
lea ecx, [ebp - 0x78]
call fcn.1002bd73
mov dword [ebp - 0x2c], 0xb56fe18b
mov dword [ebp - 0x20], ebx
jmp 0x100410c2
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x78]
mov dword [eax + ecx*4], 0x6f50
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x100410b2
mov eax, dword [ebp - 0x78]
xor ecx, ecx
mov edx, dword [eax]
test edx, edx
setne cl
xor eax, eax
cmp ecx, edx
setg al
cmp eax, edx
jg 0x100410e2
test edx, edx
je 0x100410e6
test edx, edx
jne 0x100410ea
mov eax, ebx
jmp 0x100410ec
mov eax, edi
sub edx, eax
je 0x100411dd
mov dword [ebp - 0x14], 0xa20b2878
mov dword [ebp - 0x20], ebx
jmp 0x10041111
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1f4], 0xf1a0197c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x10041100
mov dword [ebp - 0x14], ebx
jmp 0x100411b3
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], 2
mov dword [ebp - 0x28], 0xfffffff8
cmp dword [eax], 4
jg 0x10041177
mov edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, 0xc167df2d
mov edx, ebx
setge cl
cmp eax, ecx
mov dword [ebp - 0x1ec], ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
sub ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x28], ecx
je 0x10041179
mov edx, edi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
setg cl
sub edx, ecx
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x78]
setge cl
xor edx, edx
cmp ecx, dword [eax]
mov eax, 0x462d
setle dl
xor ecx, ecx
sub eax, edx
cmp eax, 0x8552ad14
setne cl
mov dword [ebp - 0x28], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 7
jl 0x1004111f
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100411ed
push 0x1705
push 0x330
push 0x408
call dword [sym.imp.GDI32.dll_LineTo]
jmp 0x100411ed
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100411ed
push ebx
call dword [sym.imp.USER32.dll_SetCursor]
lea ecx, [ebp - 0x78]
call fcn.1002bdf5
mov eax, dword [0x10609b30]
test al, 2
jne 0x1004128d
or eax, 2
mov dword [0x10609b30], eax
push ebx
mov dword [ebp - 4], 7
push ebx
mov dword [0x10609b40], ebx
mov dword [0x10609b44], ebx
call fcn.1003445b
mov dword [0x10609b40], eax
mov dword [0x10609b48], ebx
mov dword [0x10609b50], ebx
mov byte [ebp - 4], 9
mov ecx, 0x10609b48
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x8c]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1a4]
mov dword [0x10609b5c], 0x3f800000
push eax
mov dword [0x10609b4c], ebx
call fcn.10034233
push 0x10061844
mov dword [0x10609b54], 7
mov dword [0x10609b58], 8
call fcn.1004b03c
or dword [ebp - 4], 0xffffffff
pop ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x14], ebx
jmp 0x100412a9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa0], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10041298
mov dword [ebp - 0x14], ebx
jmp 0x100412c4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1b0], 0xc0faab39
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x100412b3
mov dword [ebp - 0x14], 0x64a6847d
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp eax, 0xfffffffb
mov eax, dword [ebp - 0x14]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
cmp ecx, 0xffffffff
setne dl
xor eax, eax
sub edx, dword [ebp - 0x14]
cmp edx, 7
setg al
xor edx, edx
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x14]
test eax, eax
mov eax, dword [ebp - 0x28]
sets dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x1b0], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x1b0], ebx
mov byte [ebp - 0x15], bl
je 0x10041359
cmp byte [ebp - 0x15], 0
je 0x10041347
push ebx
call dword [sym.imp.KERNEL32.dll_SetThreadLocale]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1004136b
push ebx
call dword [sym.imp.COMDLG32.dll_FindTextW]
jmp 0x1004136b
cmp byte [ebp - 0x15], 0
je 0x1004136b
push 0x135
push ebx
call dword [sym.imp.USER32.dll_CharLowerBuffW]
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x9c], xmm0
mov dword [ebp - 0x30], 0xce96b779
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x2c], 0x24b54114
mov dword [ebp - 0x28], 5
mov dword [ebp - 0x2c], 0xa4a104ac
mov dword [ebp - 0x20], ebx
jmp 0x100413ab
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x48], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x100413a1
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], 0xc58f
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
setne dl
neg edx
je 0x100413dd
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0xffff03fe
setl cl
imul ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
sub eax, ecx
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x2c4eb0a1
mov eax, dword [ebp - 0x24]
setge cl
xor edx, edx
cmp ecx, eax
setge dl
xor ecx, ecx
sub edx, dword [ebp - 0x24]
add edx, 0x214f
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x30]
add eax, 0xa8b108f8
imul edx, eax
mov eax, dword [ebp - 0x28]
cmp edx, eax
lea eax, [ebp - 0x44]
push eax
setg cl
mov dword [ebp - 0x2c], ecx
call fcn.10042147
push 3
lea ecx, [ebp - 0xac]
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
call fcn.1002bd73
mov dword [ebp - 4], 0xa
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x34], 4
mov dword [ebp - 0x28], 0x390197f0
push edi
call fcn.1002bd73
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x30], 0x3f9c
cmp dword [ebp - 0x30], 0x4090
jle 0x100414dc
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x2c], ebx
mov eax, esi
shl eax, cl
lea ecx, [ebp - 0x23c]
cdq
push edx
push eax
call fcn.1000cda0
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100414b0
mov eax, dword [eax]
push eax
call fcn.1004b066
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x23c]
call fcn.1002c0ff
mov ecx, dword [ebp - 0x2c]
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, 0x7ca2
jl 0x10041494
inc esi
cmp esi, 0x6ddf
jl 0x1004148f
mov dword [ebp - 0x2c], 0x38884515
cmp dword [ebp - 0x30], 0x3d88
jge 0x100414f7
push 0x1000b278
call fcn.1004b066
pop ecx
mov dword [ebp - 0x28], 0x4a520274
mov dword [ebp - 0x24], 0x7d72
mov dword [ebp - 0x14], ebx
jmp 0x1004151d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], 6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1004150a
mov dword [ebp - 0x14], ebx
jmp 0x10041538
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10041528
dec dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
sub eax, 0x14077620
je 0x1004161f
mov dword [ebp - 0x30], 0xfffffffc
mov dword [ebp - 0x24], ebx
jmp 0x1004156b
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xec], 0x293
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x1004155a
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
cmp eax, 0x576660b2
mov eax, dword [ebp - 0x30]
setle cl
xor edx, edx
cmp ecx, 0x8c6d
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xe0]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0xe4]
sete dl
add edx, 2
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0xac]
setne cl
xor edx, edx
cmp ecx, dword [eax]
mov eax, dword [ebp - 0xe0]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
imul eax, ecx, 9
mov ecx, dword [ebp - 0xec]
sub ecx, eax
jne 0x100415eb
mov eax, dword [ebp - 0xc4]
cmp dword [eax], ebx
mov eax, ebx
je 0x100415ed
mov eax, edi
add eax, 0x65b0b56c
jne 0x100415fe
mov ecx, ebx
cmp dword [ebp - 0xe0], ebx
je 0x10041600
mov ecx, edi
mov eax, dword [ebp - 0xc4]
add ecx, 0xffff06b6
mov dword [eax], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
jmp 0x10041668
push 2
mov dword [ebp - 0x24], ebx
pop esi
jmp 0x10041663
mov dword [ebp - 0x1c], ebx
jmp 0x1004165b
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xac]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10041658
push 0x18f9
push 0x1437
push ebx
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x1004162c
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jle 0x10041627
lea ecx, [ebp - 0xc4]
call fcn.1002bdf5
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac]
call fcn.1002bdf5
mov cl, byte [ebp + 0xc]
test cl, cl
jne 0x10041694
mov esi, dword [ebp - 0x20]
test esi, esi
jne 0x10041a63
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0x2971c1e
mov dword [ebp - 0x34], 0xf84b8114
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x28], 0x7f1a
mov dword [ebp - 0x1c], ebx
jmp 0x100416c5
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x198], 0x9ed080c1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x100416b4
inc dword [ebp - 0x28]
lea eax, [ebp - 0x274]
mov dl, cl
mov ecx, dword [ebp - 0x44]
push eax
call fcn.10034c63
mov esi, eax
lea edi, [ebp - 0x9c]
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]
xor edi, edi
inc edi
cmp byte [ebp + 0xc], 0
je 0x10041a60
cmp dword [ebp - 0x94], 0
je 0x10041a60
mov dword [ebp - 0x14], 0xfffffff8
mov dword [ebp - 0x24], 0xfffffffb
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], 0xfff9
mov dword [ebp - 0x34], 0xe87122a2
mov dword [ebp - 0x1c], ebx
jmp 0x10041736
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x3c], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x1004172c
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x10041754
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x3c], ebx
jne 0x10041754
inc dword [ebp - 0x24]
dec dword [ebp - 0x14]
jns 0x10041743
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
inc eax
je 0x1004176d
mov edx, edi
cmp dword [ebp - 0x24], ebx
jne 0x1004176f
mov edx, ebx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x14]
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setne al
inc eax
cmp eax, dword [ebp - 0x28]
jg 0x10041838
mov dword [ebp - 0x30], 0x8f9611ca
mov dword [ebp - 0x1c], ebx
jmp 0x1004182d
mov dword [ebp - 0x28], 0xd6cd
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x1004182a
mov eax, dword [ebp - 0x28]
sub eax, 3
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 8
mov eax, dword [ebp - 0x14]
setge dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x3c]
cmp edx, eax
setge cl
xor edx, edx
cmp ecx, 0xfffffff8
setne dl
xor ecx, ecx
add edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
cmp edx, eax
mov eax, dword [ebp - 0x14]
setge cl
mov dword [ebp - 0x34], ecx
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x3c]
cmp eax, 2
setl cl
sub ecx, dword [ebp - 0x34]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0xea
jl 0x10041810
mov eax, ebx
cmp dword [ebp - 0x2c], ebx
je 0x10041812
mov eax, edi
imul edx, eax, 5
xor ecx, ecx
add edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
cmp edx, eax
setg cl
mov dword [ebp - 0x34], ecx
dec dword [ebp - 0x14]
jns 0x100417b1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jle 0x100417a2
jmp 0x1004184d
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1004184d
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x14], 0xfffffffa
mov dword [ebp - 0x1c], 0x3629aa8
push 2
mov dword [ebp - 0x80], eax
call fcn.1002bd73
mov dword [ebp - 4], 0xe
mov dword [ebp - 0x1c], ebx
jmp 0x1004188c
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x11c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x1004187d
mov dword [ebp - 0x14], 0x1c
cmp dword [ebp - 0x14], 0x18
jg 0x10041a2a
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x2c], 0x732a
mov dword [ebp - 0x28], 0xdb6b7be2
mov dword [ebp - 0x34], 0x2ff3e141
cmp dword [ebp - 0x14], ebx
je 0x100418f5
mov dword [ebp - 0x1c], ebx
jmp 0x100418d6
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x264], 0x137b1891
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x100418c5
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100418ed
push ebx
push ebx
call dword [sym.imp.USER32.dll_CopyRect]
dec dword [ebp - 0x24]
jmp 0x1004198a
mov dword [ebp - 0x30], 0x9328a062
mov dword [ebp - 0x34], 0x33563700
cmp dword [ebp - 0x30], ebx
je 0x1004190f
mov esi, edi
cmp dword [ebp - 0x2c], ebx
jne 0x10041911
mov esi, ebx
cmp dword [ebp - 0x24], 2
mov eax, dword [ebp - 0x2c]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 0x30]
setle dl
xor ecx, ecx
cmp eax, edx
setne cl
xor edx, edx
imul ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
cmp eax, ecx
mov eax, dword [ebp - 0x30]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
imul edx, ecx, 0xde46
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
imul eax, esi
test eax, eax
jne 0x10041980
mov ecx, ebx
cmp dword [ebp - 0x14], ebx
je 0x10041982
mov ecx, edi
mov eax, dword [ebp - 0x30]
add eax, ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 0xfffffff8
jne 0x10041a22
mov dword [ebp - 0x2c], 0x692c
cmp dword [ebp - 0x2c], 0x6a6a
jle 0x100419f3
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x28], ebx
add eax, esi
lea ecx, [ebp - 0x224]
cdq
push edx
push eax
call fcn.1000cda0
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100419c8
mov eax, dword [eax]
push eax
call fcn.1004b066
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x224]
call fcn.1002c0ff
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0xe0e
jl 0x100419ae
inc esi
cmp esi, 0x6bfc
jl 0x100419a9
mov dword [ebp - 0x34], 0xae45661c
cmp dword [ebp - 0x2c], 0x691d
jge 0x10041a0e
push 0x1000b2d0
call fcn.1004b066
pop ecx
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x34], ebx
jne 0x10041a22
dec dword [ebp - 0x1c]
jmp 0x1004198d
dec dword [ebp - 0x14]
jmp 0x10041899
mov dword [ebp - 0x14], ebx
jmp 0x10041a42
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x11c]
mov dword [eax + ecx*4], 0x6bae055a
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10041a2f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x11c]
call fcn.1002bdf5
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x7c], eax
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x24], 0xf6af1124
mov dword [ebp - 0x24], ebx
jmp 0x10041acb
mov dword [ebp - 0x34], 0xa654
lea ecx, [ebp - 0x158]
push 2
call fcn.1002bd73
mov dword [ebp - 0x1c], ebx
jmp 0x10041a9b
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x158]
mov dword [eax + ecx*4], 0x67215912
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10041a88
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x158]
mov dword [eax], ecx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10041abd
push ebx
push ebx
call dword [sym.imp.USER32.dll_LoadIconA]
lea ecx, [ebp - 0x158]
call fcn.1002bdf5
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 6
jle 0x10041a6f
test esi, esi
jne 0x10041d4e
cmp dword [ebp - 0x9c], esi
jle 0x10041d4e
mov dword [ebp - 0x24], 0xfffd
lea ecx, [ebp - 0x104]
mov dword [ebp - 0x1c], 0xbf2b2994
mov dword [ebp - 0x30], 0x7cfaf425
push 2
call fcn.1002bd73
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x10041b22
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x104]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10041b13
mov dword [ebp - 0x14], ebx
jmp 0x10041b3a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x188], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10041b2d
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setg dl
dec dword [ebp - 0x30]
cmp eax, edx
mov eax, dword [ebp - 0x24]
mov edx, edi
cmovge edx, ebx
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x104]
neg ecx
sbb ecx, ecx
add ecx, 0xfe835b19
mov dword [eax + 4], ecx
je 0x10041b98
mov eax, edi
cmp dword [ebp - 0x30], ebx
jne 0x10041b9a
mov eax, ebx
mov ecx, 0xfffc
cmp ecx, eax
lea ecx, [ebp - 0x104]
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x184], eax
call fcn.1002bdf5
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000b960]
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x1e4]
mov dword [ebp - 0xb8], ebx
push eax
push ebx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xb4], ebx
movdqu xmmword [ebp - 0x1e4], xmm0
mov dword [ebp - 0xb0], ebx
call fcn.1002dc27
mov dword [ebp - 0x30], 0xc4d8e5cc
mov dword [ebp - 0x30], 3
cmp dword [ebp - 0x30], ebx
jl 0x10041c28
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10041c23
push 0x36d
push ebx
push ebx
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
dec dword [ebp - 0x30]
jns 0x10041c0d
lea ecx, [ebp - 0xb8]
call fcn.1002bdf5
mov dword [ebp - 0x1c], 0xe96b779c
mov dword [ebp - 0x1c], ebx
jmp 0x10041c50
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xdc], 5
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10041c3f
mov eax, dword [ebp - 0xdc]
xor ecx, ecx
mov eax, dword [ebp - 0xd8]
cmp eax, 0x801fc3ee
setne cl
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], ebx
jne 0x10041c7e
mov edx, ebx
cmp dword [ebp - 0xd8], ebx
je 0x10041c80
mov edx, edi
mov eax, dword [ebp - 0xdc]
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0x1c], 0xffffffe2
jmp 0x10041ca5
mov dword [ebp - 0x28], ebx
inc dword [ebp - 0x28]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffff
jge 0x10041c9c
mov ecx, dword [ebp - 0x98]
test ecx, ecx
je 0x10041d4e
call fcn.10040988
mov esi, eax
mov dword [ebp - 0x1c], 0xa8b108f8
mov dword [ebp - 0x28], 0xfffffffe
lea ecx, [ebp - 0x110]
push 4
mov dword [ebp - 0x20], esi
call fcn.1002bd73
mov dword [ebp - 0x1c], ebx
jmp 0x10041cf2
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x110]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10041ce3
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10041d0e
push ebx
push 0x12a2
push ebx
call dword [sym.imp.ADVAPI32.dll_ControlService]
mov dword [ebp - 0x1c], 6
cmp dword [ebp - 0x1c], ebx
je 0x10041d20
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x28]
cmp eax, 0x5714ffd8
mov eax, dword [ebp - 0x110]
setl cl
mov dword [eax], ecx
lea ecx, [ebp - 0x110]
call fcn.1002bdf5
lea eax, [ebp - 0x44]
push eax
call fcn.10042147
mov dword [eax], esi
mov dword [ebp - 0x1c], 0xa8b108f8
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x24], 0xfffffffe
push 4
call fcn.1002bd73
mov dword [ebp - 4], 0x11
mov dword [ebp - 0x30], 0x6c09
cmp dword [ebp - 0x30], 0x6cd9
jle 0x10041de1
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x2c], 0x3146
mov dword [ebp - 0x28], eax
cdq
lea ecx, [ebp - 0x254]
push edx
push eax
call fcn.1000cda0
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10041da6
mov eax, dword [eax]
push eax
call fcn.1004b066
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x254]
call fcn.1002c0ff
mov eax, dword [ebp - 0x28]
add eax, esi
dec dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
jne 0x10041d8e
inc esi
cmp esi, 0x6059
jl 0x10041d82
push ebx
push 0xcb6
push 0xe51
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov dword [ebp - 0x1c], ebx
jmp 0x10041df5
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x134]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10041de6
cmp dword [ebp - 0x30], 0x6bc8
jge 0x10041e0f
push 0x1000b310
call fcn.1004b066
pop ecx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10041e25
push ebx
push 0x12a2
push ebx
call dword [sym.imp.ADVAPI32.dll_ControlService]
mov dword [ebp - 0x1c], 6
cmp dword [ebp - 0x1c], ebx
je 0x10041e37
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov eax, dword [ebp - 0x24]
cmp eax, 0x5714ffd8
mov eax, dword [ebp - 0x134]
setl cl
or dword [ebp - 4], 0xffffffff
mov dword [eax], ecx
lea ecx, [ebp - 0x134]
call fcn.1002bdf5
mov dword [ebp - 0x1c], 0x4a9f
cmp dword [ebp - 0x1c], 0x4d0b
jle 0x10041ed5
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov ecx, esi
mov dword [ebp - 0x28], 0x1144
mov dword [ebp - 0x2c], ecx
mov esi, ebx
mov eax, esi
or eax, ecx
lea ecx, [ebp - 0x20c]
cdq
push edx
push eax
call fcn.1000cda0
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10041e9d
mov eax, dword [eax]
push eax
call fcn.1004b066
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x20c]
call fcn.1002c0ff
mov ecx, dword [ebp - 0x2c]
inc esi
cmp esi, 0x7c7a
jl 0x10041e81
dec ecx
dec dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
jne 0x10041e7f
mov esi, dword [ebp - 0x30]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x1412
jl 0x10041e73
lea ecx, [ebp - 0x9c]
call fcn.1003bf62
cmp dword [ebp - 0x1c], 0x498d
jge 0x10041ef4
push 0x1000b328
call fcn.1004b066
pop ecx
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x40], 0
jne 0x10041ff8
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x10041ff8
push 2
lea ecx, [ebp - 0x14c]
call fcn.1002bd73
mov dword [ebp - 0x2c], 0x6dbc1c23
mov dword [ebp - 0x34], 0x2c02a306
mov dword [ebp - 0x14], ebx
jmp 0x10041f3b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10041f2d
mov dword [ebp - 0x14], ebx
jmp 0x10041f59
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14c]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10041f46
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x54]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x14c]
setge dl
sub edx, 0xc07c2076
neg edx
sbb edx, edx
lea ecx, [edx - 3]
mov dword [eax], ecx
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], ebx
jne 0x10041f9d
mov edi, ebx
mov eax, dword [ebp - 0x54]
xor edx, edx
mov ecx, dword [ebp - 0x54]
sub edi, eax
mov eax, dword [ebp - 0x54]
add ecx, 0xfffffff9
add ecx, edi
cmp eax, ecx
mov eax, dword [ebp - 0x54]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x58]
setl bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x54]
setle cl
sub eax, ecx
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x34], eax
call fcn.1002bdf5
mov edx, dword [ebp - 0x38]
mov ecx, esi
call fcn.100409c0
mov esi, eax
lea eax, [ebp - 0x4c]
push eax
mov dword [ebp - 0x84], esi
call fcn.100420e5
mov dword [eax], esi
mov eax, dword [ebp + 8]
lea esi, [ebp - 0x84]
mov ecx, dword [ebp - 0xc]
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