Function at 0x10023071
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006f326
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c8
mov dword [esp + 0x54], ecx
mov eax, 0xe56f9b2c
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
push ebx
mov dword [esp + 0x18c], eax
xor ebx, ebx
push esi
mov dword [esp + 0x194], eax
mov esi, edx
mov dword [esp + 0x14], ebx
push edi
mov dword [esp + 0x30], 5
mov dword [esp + 0x30], 0xffffffff
push 2
mov dword [esp + 0x34], 8
mov dword [esp + 0x8c], esi
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x100230fd
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1b8], 3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x100230ea
mov dword [esp + 0x10], ebx
jmp 0x1002311c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x228], 0x2603
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x10023109
mov eax, dword [esp + 0x18c]
xor ecx, ecx
cmp eax, 0x99fb
push 1
setne cl
mov dword [esp + 0x1c], ecx
pop edi
mov dword [esp + 0x18], 6
cmp dword [esp + 0x18], 0xfffffff3
push 4
pop eax
jl 0x100233ec
mov dword [esp + 0x30], 0x3e93
mov dword [esp + 0x30], 0xfffffff8
mov dword [esp + 0x30], edi
mov dword [esp + 0x30], 0xfffffff8
mov dword [esp + 0x20], 0x1e70
cmp dword [esp + 0x20], 0xf53
jge 0x100231ce
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x118]
push eax
push 0x1000bf1c
call fcn.10053beb
mov eax, dword [esp + 0x120]
add esp, 0xc
cmp dword [esp + 0xb8], eax
jg 0x100231c0
sub eax, dword [esp + 0xb8]
push eax
push 0x1000bf24
call fcn.10053e1f
pop ecx
jmp 0x100231ca
push 0x1000c078
call fcn.10053fdd
pop ecx
push 4
pop eax
mov dword [esp + 0x30], 0x426a760
lea ecx, [esp + 0x1d0]
mov dword [esp + 0x30], 0xfffffff6
mov dword [esp + 0x30], ebx
mov dword [esp + 0x30], 0xb611fb8e
push eax
call fcn.10012a45
mov dword [esp + 0x3dc], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x30], 0xfffffffb
mov dword [esp + 0x20], 0x1fc5
cmp dword [esp + 0x20], 0xf81
jge 0x10023373
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x90]
push eax
push 0x1000c0b8
call fcn.10053beb
add esp, 0x20
mov dword [esp + 0xf4], ebx
lea eax, [esp + 0xf4]
mov dword [esp + 0xac], ebx
lea ecx, [esp + 0xac]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
push eax
push dword [esp + 0x7c]
call fcn.100136db
mov esi, dword [esp + 0xac]
mov edx, ebx
cmp dword [esp + 0x78], edx
jle 0x10023327
cmp edx, dword [esp + 0xbc]
jl 0x100232d0
mov eax, edx
sub eax, dword [esp + 0xbc]
mov ecx, dword [esi + eax*4]
mov eax, dword [esp + 0x94]
add eax, ecx
cmp dword [esi + edx*4], eax
cmovg eax, dword [esi + edx*4]
mov dword [esi + edx*4], eax
cmp edx, dword [esp + 0xa8]
jl 0x100232f8
mov eax, edx
sub eax, dword [esp + 0xa8]
mov ecx, dword [esi + eax*4]
mov eax, dword [esp + 0x9c]
add eax, ecx
cmp dword [esi + edx*4], eax
cmovg eax, dword [esi + edx*4]
mov dword [esi + edx*4], eax
cmp edx, dword [esp + 0x8c]
jl 0x10023320
mov eax, edx
sub eax, dword [esp + 0x8c]
mov ecx, dword [esi + eax*4]
mov eax, dword [esp + 0xa4]
add eax, ecx
cmp dword [esi + edx*4], eax
cmovg eax, dword [esi + edx*4]
mov dword [esi + edx*4], eax
inc edx
cmp edx, dword [esp + 0x78]
jl 0x100232a8
mov eax, dword [esp + 0xb0]
mov eax, dword [eax - 4]
add eax, dword [esp + 0x94]
add eax, dword [esp + 0x9c]
add eax, dword [esp + 0xa4]
push eax
push 0x1000bdf0
call fcn.10053e1f
pop ecx
pop ecx
test esi, esi
je 0x10023373
push esi
call fcn.10053f87
pop ecx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
push 4
mov dword [esp + 0x14], ebx
pop edx
jmp 0x10023392
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1d0]
mov dword [eax + ecx*4], 0xaa232401
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1002337c
mov dword [esp + 0x10], ebx
jmp 0x100233b1
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x23c], 0x7da19ae8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1002339e
mov dword [esp + 0x1b8], edi
lea ecx, [esp + 0x1d0]
or dword [esp + 0x3dc], 0xffffffff
call fcn.10012ac7
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffff3
push 4
pop eax
jge 0x10023150
mov esi, dword [esp + 0x88]
mov eax, dword [0x1104d674]
test al, 1
jne 0x1002348e
or eax, edi
mov dword [0x1104d674], eax
push ebx
mov dword [esp + 0x3e0], edi
push ebx
mov dword [0x1104d680], ebx
mov dword [0x1104d684], ebx
call fcn.100160bf
mov dword [0x1104d680], eax
mov dword [0x1104d688], ebx
mov dword [0x1104d690], ebx
mov byte [esp + 0x3dc], 3
mov ecx, 0x1104d688
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xf8]
push eax
push 0x10
push ebx
lea eax, [esp + 0x1d8]
mov dword [0x1104d69c], 0x3f800000
push eax
mov dword [0x1104d68c], ebx
call fcn.10015e97
push 0x100700fa
mov dword [0x1104d694], 7
mov dword [0x1104d698], 8
call fcn.10053df5
or dword [esp + 0x3e0], 0xffffffff
pop ecx
imul eax, dword [esp + 0x60], 0x2710
add eax, esi
mov dword [esp + 0xa0], eax
lea eax, [esp + 0xa0]
push eax
call fcn.100251ab
push 2
lea ecx, [esp + 0x80]
mov esi, dword [eax]
mov dword [esp + 0x1c], 0xad313dd3
mov dword [esp + 0x2c], esi
call fcn.10012a45
push 4
pop eax
push 2
lea ecx, [esp + 0x154]
mov dword [esp + 0x3e0], eax
call fcn.10012a45
mov byte [esp + 0x3dc], 5
push 2
mov dword [esp + 0x28], 0xffff
mov dword [esp + 0x14], ebx
pop edx
jmp 0x10023508
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x7c]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x100234f9
mov dword [esp + 0x10], ebx
jmp 0x1002352a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x150]
mov dword [eax + ecx*4], 6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10023514
mov dword [esp + 0x18], 0xffffffe4
cmp dword [esp + 0x18], 0xfffffffa
jne 0x100238e5
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 0x1f94
cmp dword [esp + 0x20], 0x859
jge 0x100235e1
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x68]
push eax
push 0x1000c04c
call fcn.10053beb
mov ecx, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [esp + 0x64]
imul eax, ecx, 3
cmp edx, eax
jge 0x1002358a
push 0x1000be08
jmp 0x100235db
mov esi, ebx
test ecx, ecx
jle 0x100235b0
inc esi
mov eax, esi
cdq
idiv ecx
inc edx
push edx
push 0x1000be0c
call fcn.10053e1f
pop ecx
pop ecx
mov ecx, dword [esp + 0x68]
cmp esi, ecx
jl 0x10023590
mov edx, dword [esp + 0x64]
mov esi, ecx
cmp ecx, edx
jge 0x100235d6
mov eax, esi
cdq
idiv ecx
inc edx
push edx
push 0x1000be0c
call fcn.10053e1f
inc esi
pop ecx
pop ecx
cmp esi, dword [esp + 0x64]
jge 0x100235d6
mov ecx, dword [esp + 0x68]
jmp 0x100235b6
push 0x1000bd3d
call fcn.10053fdd
pop ecx
push 2
lea ecx, [esp + 0x178]
call fcn.10012a45
push 3
lea ecx, [esp + 0x128]
mov byte [esp + 0x3e0], 6
call fcn.10012a45
mov byte [esp + 0x3dc], 7
mov dword [esp + 0x10], ebx
jmp 0x10023629
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x174]
mov dword [eax + ecx*4], 6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10023613
mov dword [esp + 0x10], ebx
jmp 0x10023649
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x124]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10023636
mov dword [esp + 0x1c], ebx
jmp 0x10023891
mov dword [esp + 0x10], 8
mov dword [esp + 0x20], 3
mov dword [esp + 0x20], 0x2616
cmp dword [esp + 0x20], 0xc6b
jge 0x100236cd
lea eax, [esp + 0x120]
push eax
push ecx
lea eax, [esp + 0x124]
mov ecx, 0x10660dd0
push eax
call fcn.10012620
pop ecx
mov ecx, eax
call fcn.10012620
mov eax, dword [esp + 0x120]
mov edx, 0x1000c0d4
imul eax, dword [esp + 0x11c]
push eax
push ecx
mov ecx, 0x10660f08
call fcn.100265df
pop ecx
mov ecx, eax
call fcn.10024dee
push eax
call fcn.100267b6
pop ecx
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100236f7
push ebx
push 0x143d
push 0x52e
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetPixel]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
cmp dword [eax + ecx*4], ebx
je 0x100237e5
mov dword [esp + 0x3c], 0x6092f644
mov dword [esp + 0x2c], 3
mov dword [esp + 0x2c], 0x6c382506
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x2c]
cmp dword [ecx + edx*4], eax
jle 0x10023739
mov edx, ebx
cmp dword [esp + 0x18], ebx
je 0x1002373b
mov edx, edi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
sub edx, eax
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov edi, dword [esp + 0x174]
cmp edx, 0x3b8c
setne al
xor edx, edx
sub ecx, eax
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x7c]
setg dl
xor ecx, ecx
cmp edx, dword [eax + 4]
setge cl
xor edx, edx
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
cmp dword [eax + ecx*4], ebx
sete dl
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x18]
mov eax, dword [esp + 0x124]
neg edx
sbb edx, edx
add edx, 0xd9f98444
neg edx
mov dword [eax], ecx
sbb edx, edx
xor eax, eax
inc edx
cmp dword [edi + 4], 1
sete al
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x7c]
setge cl
imul ecx, dword [eax + esi*4]
mov dword [edi + 4], ecx
xor edi, edi
inc edi
jmp 0x1002388d
mov dword [esp + 0x2c], 0x86397847
mov dword [esp + 0x10], ebx
jmp 0x10023806
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x90], 0x70a6219f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100237f3
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], ebx
jl 0x1002388d
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], 0xa301
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x7c]
push 0
cmp dword [ecx + edx*4], eax
mov eax, dword [esp + 0x154]
pop ecx
setge cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov esi, ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x124]
cmp esi, dword [eax + ecx*4 + 4]
mov eax, dword [esp + 0x90]
sete dl
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [esp + 0x20], ecx
dec dword [esp + 0x10]
jns 0x1002381a
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jle 0x10023659
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100238b2
push 0x18ad
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [esp + 0x124]
call fcn.10012ac7
lea ecx, [esp + 0x174]
mov byte [esp + 0x3dc], 5
call fcn.10012ac7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffffa
je 0x10023543
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0x150]
call fcn.10012ac7
or dword [esp + 0x3dc], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.10012ac7
test esi, esi
je 0x10023a16
push edi
lea ecx, [esp + 0x1c4]
call fcn.10012a45
mov dword [esp + 0x18], ebx
jmp 0x10023933
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c0]
mov dword [eax + ecx*4], 0x24f01c08
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x1002391d
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10023956
push 0x84a
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10023975
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_UpdateColors]
lea ecx, [esp + 0x1c0]
call fcn.10012ac7
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x1ac]
mov dword [esp + 0x28], edi
push 2
mov dword [esp + 0x4c], esi
call fcn.10012a45
mov dword [esp + 0x18], ebx
jmp 0x100239b7
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1ac]
mov dword [eax + ecx*4], 0x485bf25c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x100239a1
mov dword [esp + 0x10], 0x17
cmp dword [esp + 0x10], 0xd
je 0x10023a05
push 4
pop ecx
mov dword [esp + 0x18], ebx
jmp 0x100239e9
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1dc], 0x34f09465
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x100239d6
mov dword [esp + 0x28], ebx
inc dword [esp + 0x1e8]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xd
jne 0x100239d0
lea ecx, [esp + 0x1ac]
call fcn.10012ac7
jmp 0x10024c46
mov dword [esp + 0x10], 0xa631
mov dword [esp + 0x1c], 0x90611bc3
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], 0xdb62b2fa
cmp dword [esp + 0x10], ebx
je 0x10023b3e
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], 0xfffffffa
mov dword [esp + 0x28], 0x8ed0bd2f
mov dword [esp + 0x1c], ebx
jmp 0x10023a69
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1a0], 0xc3f30b9
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x10023a56
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
jne 0x10023a82
mov edx, ebx
cmp dword [esp + 0x10], ebx
je 0x10023a84
mov edx, edi
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, 0x3ef6885f
setge cl
mov dword [esp + 0x1c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x24]
cmp edx, eax
mov eax, dword [esp + 0x18]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x24]
setge dl
xor ecx, ecx
cmp edx, eax
mov edx, 0xe07e
setle cl
sub edx, ecx
xor ecx, ecx
add edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
cmp edx, eax
setge cl
mov dword [esp + 0x1a0], ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x10]
jle 0x10023aea
mov eax, ebx
cmp dword [esp + 0x1c], ebx
je 0x10023aec
mov eax, edi
mov dword [esp + 0x2c], eax
xor edx, edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setg dl
xor eax, eax
imul edx, dword [esp + 0x18]
sub edx, dword [esp + 0x18]
cmp edx, 0xffffffff
setge al
cmp eax, dword [esp + 0x18]
jge 0x10023b21
mov ecx, edi
cmp dword [esp + 0x1a0], ebx
jne 0x10023b23
mov ecx, ebx
mov eax, dword [esp + 0x28]
add eax, ecx
xor ecx, ecx
cmp eax, 0x37f4
setle cl
imul ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
jmp 0x10023ba8
mov dword [esp + 0x10], 0x27649690
mov dword [esp + 0x18], ebx
jmp 0x10023b5f
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x130], 0x885a1ec8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x10023b4c
cmp dword [esp + 0x10], ebx
je 0x10023b92
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
inc eax
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x134], eax
je 0x10023b8a
mov eax, dword [esp + 0x134]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
setne cl
neg ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], 0x2166
cmp dword [esp + 0x28], 0x1093
jge 0x10023c6d
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], ebx
push eax
push 0x1000bf0c
call fcn.10053beb
mov eax, dword [esp + 0x64]
xor ecx, ecx
push 4
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1004f3a2
mov ecx, dword [esp + 0x68]
add esp, 0xc
mov dword [esp + 0x28], edi
mov esi, eax
mov dword [esp + 0x24], esi
cmp ecx, edi
jl 0x10023c2a
mov ebx, dword [esp + 0x28]
lea edi, [esi + 4]
push 4
pop esi
push edi
push 0x1000bf0c
call fcn.10053beb
pop ecx
pop ecx
mov ecx, dword [esp + 0x5c]
inc ebx
add edi, esi
cmp ebx, ecx
jle 0x10023c09
mov esi, dword [esp + 0x24]
xor edi, edi
xor ebx, ebx
inc edi
mov eax, ebx
cmp ecx, 1
jl 0x10023c56
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx + edi*4]
xor esi, esi
inc esi
jmp 0x10023c41
mov edx, dword [ebx + edx*4]
inc esi
cmp edx, 0xffffffff
jne 0x10023c3d
cmp esi, eax
cmovg eax, esi
inc edi
cmp edi, ecx
jle 0x10023c35
mov esi, dword [esp + 0x24]
xor ebx, ebx
push eax
push 0x1000bf24
call fcn.10053e1f
push esi
call fcn.10053f60
xor edi, edi
add esp, 0xc
inc edi
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10023c98
push 0x28c
push ebx
push ebx
push ebx
push ebx
push 0xa78
push 0xed9
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ScrollWindowEx]
mov eax, dword [0x1104d674]
test al, 2
jne 0x10023d3a
or eax, 2
mov dword [0x1104d674], eax
push 8
pop esi
push ebx
mov dword [esp + 0x3e0], esi
push ebx
mov dword [0x1104d650], ebx
mov dword [0x1104d654], ebx
call fcn.100160bf
mov dword [0x1104d650], eax
mov dword [0x1104d658], ebx
mov dword [0x1104d660], ebx
mov byte [esp + 0x3dc], 0xa
mov ecx, 0x1104d658
mov dword [esp + 0xfc], eax
lea eax, [esp + 0xfc]
push eax
push 0x10
push ebx
lea eax, [esp + 0x1a8]
mov dword [0x1104d66c], 0x3f800000
push eax
mov dword [0x1104d65c], ebx
call fcn.10015e97
push 0x100700f5
mov dword [0x1104d664], 7
mov dword [0x1104d668], esi
call fcn.10053df5
or dword [esp + 0x3e0], 0xffffffff
pop ecx
xorps xmm0, xmm0
movdqu xmmword [esp + 0x100], xmm0
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x10], ebx
jmp 0x10023d60
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x40], 0x5b9b55bb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10023d50
mov dword [esp + 0x10], ebx
jmp 0x10023d7b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1ec], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10023d6c
mov dword [esp + 0x40], 0xffffffe7
jmp 0x10023ea4
mov dword [esp + 0x10], 0xf7a73d2d
mov edx, 0xee72c34c
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], 0xfffffffb
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x2c], 0xfffffffc
mov eax, dword [esp + 0x40]
sub edx, eax
mov ecx, dword [esp + 0x10]
neg edx
mov eax, dword [esp + 0x10]
sbb edx, edx
neg edx
add ecx, edx
xor edx, edx
cmp ecx, eax
setle dl
sub edx, dword [esp + 0x10]
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2c], 0x8ef3
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x3c], ebx
jne 0x10023e1c
mov edx, ebx
cmp dword [esp + 0x40], ebx
je 0x10023e1e
mov edx, edi
mov eax, dword [esp + 0x40]
xor ecx, ecx
cmp edx, eax
sete cl
xor eax, eax
cmp ecx, 0x1536c745
setg al
xor edx, edx
neg eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1f4]
sub ecx, 0xecc2
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x40]
setne dl
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x3c], ecx
inc dword [esp + 0x40]
cmp dword [esp + 0x40], edi
jl 0x10023d8f
lea eax, [esp + 0x60]
push eax
call fcn.1002520d
push 4
mov esi, dword [eax]
mov dword [esp + 0x1c], 0xfffffff7
mov dword [esp + 0x40], 0xb35d5697
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 5
pop eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 3
mov dword [esp + 0x2c], esi
jge 0x10023f0d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1f8], 0x6411d7fe
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10023ef0
push 4
pop eax
cmp dword [esp + 0x18], ebx
jle 0x10023f9f
mov dword [esp + 0x10], 0xb1b055cc
xor edx, edx
mov dword [esp + 0x24], 0x9f23e525
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp ecx, eax
setne dl
xor ecx, ecx
imul edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
cmp edx, eax
setl cl
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
test eax, eax
setns cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1f8], eax
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10024076
push 0x1d1c
call dword [sym.imp.USER32.dll_BeginDeferWindowPos]
jmp 0x10024076
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x138]
push edi
call fcn.10012a45
mov dword [esp + 0x3dc], 0xb
mov dword [esp + 0x10], ebx
jmp 0x10023fd4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x138]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10023fc1
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x18]
add eax, dword [esp + 0x24]
add eax, dword [esp + 0x24]
add eax, dword [esp + 0x28]
cmp eax, edi
jae 0x10024055
push 2
lea ecx, [esp + 0x16c]
call fcn.10012a45
mov dword [esp + 0x18], ebx
jmp 0x10024020
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x168]
mov dword [eax + ecx*4], 0x796a450c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1002400a
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x168]
mov dword [eax + 4], ecx
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10024047
push ebx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
lea ecx, [esp + 0x168]
call fcn.10012ac7
jmp 0x10024062
mov eax, dword [esp + 0x138]
mov dword [eax], 0x5674643a
or dword [esp + 0x3dc], 0xffffffff
lea ecx, [esp + 0x138]
call fcn.10012ac7
inc dword [esp + 0x1c]
cmp byte [ebp + 0xc], 0
jne 0x10024088
test esi, esi
jne 0x10024718
push 4
pop eax
mov dword [esp + 0x1c], 0xfffffffb
lea ecx, [esp + 0xe4]
push eax
call fcn.10012a45
mov dword [esp + 0x3dc], 0xc
mov dword [esp + 0x28], 0x1e66
cmp dword [esp + 0x28], 0xf2e
jge 0x100242c2
lea eax, [esp + 0x44]
push eax
push 0x1000bdd0
call fcn.10053beb
pop ecx
pop ecx
push dword [esp + 0x44]
lea ecx, [esp + 0x70]
call fcn.10012c3f
mov byte [esp + 0x3dc], 0xd
lea ecx, [esp + 0xcc]
push dword [esp + 0x44]
call fcn.10012c3f
mov byte [esp + 0x3dc], 0xe
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], ebx
test eax, eax
jle 0x1002412c
mov edi, dword [esp + 0x6c]
push 4
pop esi
push edi
push 0x1000bdd0
call fcn.10053beb
mov eax, dword [esp + 0x4c]
inc ebx
pop ecx
add edi, esi
pop ecx
cmp ebx, eax
jl 0x10024112
xor ebx, ebx
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x28], ebx
test eax, eax
jle 0x1002416b
mov esi, dword [esp + 0x28]
mov ebx, edi
push 4
pop edi
push ebx
push 0x1000bdd0
call fcn.10053beb
inc esi
add ebx, edi
pop ecx
pop ecx
cmp esi, dword [esp + 0x44]
jl 0x10024148
mov edi, dword [esp + 0xcc]
xor ebx, ebx
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov byte [esp + 0x110], bl
sub ecx, esi
push dword [esp + 0x110]
sar ecx, 2
push esi
push dword [esp + 0x78]
call fcn.10026eeb
mov ecx, dword [esp + 0xdc]
add esp, 0xc
mov byte [esp + 0xf0], bl
sub ecx, edi
sar ecx, 2
push dword [esp + 0xf0]
push edi
push dword [esp + 0xd8]
call fcn.10026eeb
xorps xmm0, xmm0
add esp, 0xc
cmp dword [esp + 0x44], 0
mov ecx, ebx
movlpd qword [esp + 0x48], xmm0
mov esi, ebx
mov edx, dword [esp + 0x4c]
movlpd qword [esp + 0x30], xmm0
jle 0x10024265
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
cmp esi, dword [esp + 0x44]
jge 0x1002421a
cmp ecx, dword [esp + 0x44]
jge 0x10024217
mov eax, dword [ebx + ecx*4]
cmp eax, dword [edi + esi*4]
jg 0x1002421a
inc esi
jmp 0x10024227
mov eax, dword [ebx + ecx*4]
cdq
add dword [esp + 0x3c], eax
adc dword [esp + 0x24], edx
inc ecx
cmp ecx, dword [esp + 0x44]
jge 0x1002423e
cmp esi, dword [esp + 0x44]
jge 0x1002423b
mov eax, dword [edi + esi*4]
cmp eax, dword [ebx + ecx*4]
jg 0x1002423e
inc ecx
jmp 0x1002424b
mov eax, dword [edi + esi*4]
cdq
add dword [esp + 0x10], eax
adc dword [esp + 0x18], edx
inc esi
dec dword [esp + 0x20]
jne 0x10024203
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
jmp 0x10024271
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x48]
sub ecx, esi
sbb eax, edx
push eax
push ecx
push 0x1000bddc
call fcn.10053e1f
add esp, 0xc
test edi, edi
je 0x100242a4
push edi
call fcn.10053f87
pop ecx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100242bf
push eax
call fcn.10053f87
pop ecx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
xor edi, edi
inc edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x20], 5
push 4
mov dword [esp + 0x34], 0xdb97
mov dword [esp + 0x1c], ebx
pop edx
jmp 0x100242f5
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xe4]
mov dword [eax + ecx*4], 0x65425a80
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x100242df
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10024355
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x392
push 0x1511
push 0x97a
push ebx
push 0x1c8b
push 0xc3a
call esi
mov edi, dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
push eax
push 0x145d
push 0x1b29
push 0xd34
push 0x820
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_MaskBlt]
xor edi, edi
inc edi
mov ecx, dword [esp + 0xe4]
mov eax, dword [ecx + 0xc]
neg eax
je 0x10024369
mov edx, edi
cmp dword [ecx], ebx
jne 0x1002436b
mov edx, ebx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xe4]
push 0
cmp dword [eax], 0xae7b
setge cl
imul ecx, edx
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xe8]
mov edx, dword [eax]
mov eax, dword [esp + 0x24]
cmp edx, eax
setne cl
cmp ecx, edx
pop ecx
setl cl
imul ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xe4]
imul ecx, dword [eax]
or dword [esp + 0x3dc], 0xffffffff
mov dword [eax], ecx
lea ecx, [esp + 0xe4]
call fcn.10012ac7
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x3c0]
mov ecx, dword [esp + 0x60]
push eax
call fcn.100175d3
mov esi, eax
lea edi, [esp + 0x104]
pop ecx
lea ecx, [esp + 0xd8]
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
mov dword [esp + 0x10], 0x3d7d
inc edi
push edi
call fcn.10012a45
push 3
lea ecx, [esp + 0x160]
mov dword [esp + 0x3e0], 0xf
call fcn.10012a45
mov byte [esp + 0x3dc], 0x10
lea ecx, [esp + 0x144]
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], 0xb5c1
mov dword [esp + 0x118], 0xf4a3ca5a
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], 0xe5defa76
push 3
call fcn.10012a45
mov dword [esp + 0x1c], ebx
jmp 0x1002447d
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x10024467
push 3
mov dword [esp + 0x20], ebx
pop edx
jmp 0x1002449f
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x15c]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x1002448c
mov dword [esp + 0x1c], ebx
jmp 0x100244bd
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x144]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x100244ab
dec dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x7bff
mov edx, dword [esp + 0x10]
setne cl
sub edx, ecx
sub edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd8]
add ecx, edx
mov edx, dword [esp + 0x10]
imul edx, ecx
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0x10]
cmp eax, edx
mov eax, dword [esp + 0x10]
setg cl
mov dword [esp + 0x28], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x28]
setl cl
sub ecx, dword [esp + 0x10]
je 0x1002460f
mov dword [esp + 0x24], 0x954e3f15
mov dword [esp + 0x30], 0x942f34c9
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], 0xfffffff6
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1002456b
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov eax, dword [esp + 0x24]
dec dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x15c]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x1eed
setl al
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xd8]
imul ecx, dword [eax]
mov eax, dword [esp + 0x10]
sub ecx, eax
sub ecx, dword [esp + 0x48]
jne 0x100245d9
cmp dword [edx + 8], ebx
mov edx, ebx
je 0x100245db
mov edx, edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd8]
imul ecx, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x144]
mov dword [eax + 8], ecx
jmp 0x1002462c
mov dword [esp + 0x30], ebx
mov dword [esp + 0x48], 0xfffffffd
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xd8]
mov dword [eax], ecx
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x144]
call fcn.10012ac7
lea ecx, [esp + 0x15c]
call fcn.10012ac7
or dword [esp + 0x3dc], 0xffffffff
lea ecx, [esp + 0xd8]
call fcn.10012ac7
cmp byte [ebp + 0xc], 0
je 0x10024714
cmp dword [esp + 0x108], 0
je 0x10024714
mov eax, dword [esp + 0x10c]
lea ecx, [esp + 0x180]
push 3
mov dword [esp + 0x50], eax
call fcn.10012a45
push 2
pop edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x30], 9
mov dword [esp + 0x10], ebx
jmp 0x100246b4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x180]
mov dword [eax + ecx*4], 0x3342eb90
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1002469e
mov dword [esp + 0x10], ebx
jmp 0x100246d0
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x210], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x100246c1
mov eax, dword [esp + 0x180]
mov dword [eax + 8], 0xb
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100246f5
call dword [sym.imp.USER32.dll_CreateMenu]
or dword [esp + 0x3dc], 0xffffffff
lea ecx, [esp + 0x180]
call fcn.10012ac7
mov eax, dword [esp + 0x108]
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x30], 0x69ad59e5
mov dword [esp + 0x18], ebx
jmp 0x10024739
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x204], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x10024726
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10024758
push 0xe51
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x208], eax
test esi, esi
jne 0x10024aad
cmp dword [esp + 0x100], esi
jle 0x10024aad
mov dword [esp + 0x18], 0x15252cb1
mov dword [esp + 0x30], 0xba5f27a4
mov dword [esp + 0x18], ebx
jmp 0x100247a1
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x230], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1002478e
mov dword [esp + 0x18], 2
cmp dword [esp + 0x18], ebx
jl 0x100247e5
mov dword [esp + 0x30], edi
mov dword [esp + 0x30], 0x8331c587
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x100247db
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [esp + 0x30], edi
dec dword [esp + 0x18]
jns 0x100247b6
mov ecx, dword [esp + 0x104]
test ecx, ecx
je 0x10024aad
call fcn.1002302c
mov dword [esp + 0x10], 0xfffffff9
mov esi, eax
mov dword [esp + 0x20], 0x927213ec
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10024824
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowInfo]
cmp dword [esp + 0x10], ebx
jne 0x1002489c
mov dword [esp + 0x18], 0xca8fecf7
mov dword [esp + 0x10], ebx
jmp 0x10024842
cmp dword [esp + 0x10], ebx
jne 0x10024849
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x22
jg 0x10024838
mov edx, dword [esp + 0x18]
xor ecx, ecx
push 4
pop eax
sub edx, eax
mov eax, dword [esp + 0x20]
cmp eax, edx
setl cl
cmp ecx, 0x1e124dc4
jge 0x1002486d
mov ecx, edi
cmp dword [esp + 0x18], ebx
jne 0x1002486f
mov ecx, ebx
mov eax, dword [esp + 0x10]
sub eax, ecx
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0xb6f9
setg dl
xor ecx, ecx
add edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
cmp edx, eax
setle cl
mov dword [esp + 0x18], ecx
jmp 0x10024aa1
mov dword [esp + 0x30], 0x2382
cmp dword [esp + 0x30], 0xe9f
jge 0x10024a78
movdqa xmm0, xmmword [0x1000c580]
lea eax, [esp + 0x98]
movdqu xmmword [esp + 0x248], xmm0
push eax
movdqa xmm0, xmmword [0x1000c5e0]
movdqu xmmword [esp + 0x25c], xmm0
push 0x1000bf24
movdqa xmm0, xmmword [0x1000c5f0]
movdqu xmmword [esp + 0x270], xmm0
mov dword [esp + 0x3c0], 2
movdqa xmm0, xmmword [0x1000c660]
movdqu xmmword [esp + 0x280], xmm0
mov dword [esp + 0xa0], ebx
movdqa xmm0, xmmword [0x1000c610]
movdqu xmmword [esp + 0x290], xmm0
movdqa xmm0, xmmword [0x1000c680]
movdqu xmmword [esp + 0x2a0], xmm0
movdqa xmm0, xmmword [0x1000c5d0]
movdqu xmmword [esp + 0x2b0], xmm0
movdqa xmm0, xmmword [0x1000c6c0]
movdqu xmmword [esp + 0x2c0], xmm0
movdqa xmm0, xmmword [0x1000c660]
movdqu xmmword [esp + 0x2d0], xmm0
movdqa xmm0, xmmword [0x1000c670]
movdqu xmmword [esp + 0x2e0], xmm0
movdqa xmm0, xmmword [0x1000c5a0]
movdqu xmmword [esp + 0x2f0], xmm0
movdqa xmm0, xmmword [0x1000c6d0]
movdqu xmmword [esp + 0x300], xmm0
movdqa xmm0, xmmword [0x1000c620]
movdqu xmmword [esp + 0x310], xmm0
movdqa xmm0, xmmword [0x1000c650]
movdqu xmmword [esp + 0x320], xmm0
movdqa xmm0, xmmword [0x1000c640]
movdqu xmmword [esp + 0x330], xmm0
movdqa xmm0, xmmword [0x1000c6a0]
movdqu xmmword [esp + 0x340], xmm0
movdqa xmm0, xmmword [0x1000c600]
movdqu xmmword [esp + 0x350], xmm0
movdqa xmm0, xmmword [0x1000c6b0]
movdqu xmmword [esp + 0x360], xmm0
movdqa xmm0, xmmword [0x1000c5c0]
movdqu xmmword [esp + 0x370], xmm0
movdqa xmm0, xmmword [0x1000c6e0]
movdqu xmmword [esp + 0x380], xmm0
movdqa xmm0, xmmword [0x1000c690]
movdqu xmmword [esp + 0x390], xmm0
movdqa xmm0, xmmword [0x1000c630]
movdqu xmmword [esp + 0x3a0], xmm0
movdqa xmm0, xmmword [0x1000c5b0]
movdqu xmmword [esp + 0x3b0], xmm0
call fcn.10053beb
mov eax, dword [esp + 0xa0]
push dword [esp + eax*4 + 0x24c]
push 0x1000bf24
call fcn.10053e1f
add esp, 0x10
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10024aa1
push 0x1714
push 0x1257
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
lea eax, [esp + 0x60]
push eax
call fcn.1002520d
mov dword [eax], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x20], 0x563ffaf0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x20], 0x8cae
mov dword [esp + 0x30], 0xfffffffc
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebx
jmp 0x10024aea
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xc0], 0x3eb905d0
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x10024ad7
mov eax, dword [esp + 0xc8]
xor ecx, ecx
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc8]
cmp eax, edi
setle cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xc4]
cmp ecx, eax
setg dl
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
sub ecx, 0x6d2e
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
test ecx, ecx
mov ecx, dword [esp + 0xc4]
setg al
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x8d7c
lea ecx, [esp + 0x100]
setl al
mov dword [esp + 0x30], eax
call fcn.1001ed46
test esi, esi
je 0x10024bf2
mov dword [esp + 0x30], 0xfffffffb
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10024ba7
push 0x1ff5
push ebx
call dword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10024bcf
push ebx
push 0xfb9
push 0x14ee
push ebx
push 0x1ad
push 0xd60
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edx, dword [esp + 0x88]
mov ecx, esi
call fcn.10023067
mov esi, eax
lea eax, [esp + 0xa0]
push eax
mov dword [esp + 0x4c], esi
call fcn.100251ab
mov dword [eax], esi
push 4
mov dword [esp + 0x34], 0xfff6
mov dword [esp + 0x1c], ebx
pop ecx
jmp 0x10024c16
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x218], 0x971c1ec2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x10024c03
mov eax, dword [esp + 0x30]
mov dword [esp + 0x21c], eax
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10024c46
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CloseEnhMetaFile]
mov eax, dword [ebp + 8]
lea esi, [esp + 0x48]
mov ecx, dword [esp + 0x3d4]
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