Function at 0x10009578
Capabilities:
Get graphical window text
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10063412
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2d0
push ebx
push esi
push edi
mov dword [esp + 0x10], 0x606de713
xor ebx, ebx
push 3
inc ebx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x34], ebx
lea ecx, [esp + 0xe0]
pop esi
mov dword [esp + 0x14], 0x2fe81720
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 8
push esi
mov dword [esp + 0xfc], edx
call fcn.1000e0be
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x100095f9
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x64], 0x35568345
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x100095e9
mov dword [esp + 0x10], edx
jmp 0x1000961b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xdc]
mov dword [eax + ecx*4], 0x260e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10009605
mov dword [esp + 0x10], edx
jmp 0x10009653
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x1c], edx
jmp 0x10009649
mov byte [esp + 0x1b], dl
cmp byte [esp + 0x1b], 0
je 0x10009645
push edx
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
xor edx, edx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jle 0x10009631
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jle 0x10009627
mov eax, dword [esp + 0x2c]
xor edx, edx
mov eax, dword [esp + 0x14]
cmp eax, ebx
mov eax, dword [esp + 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
cmp eax, ebx
mov eax, dword [esp + 0x64]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x20]
setg dl
inc dword [esp + 0x20]
cmp eax, edx
jge 0x100096a1
mov eax, ebx
jmp 0x100096a3
xor eax, eax
cmp eax, dword [esp + 0x2c]
jg 0x100096ad
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
xor edx, edx
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x30]
add ecx, 9
cmp ecx, eax
setle dl
add edx, dword [esp + 0x10]
cmp edx, 0x2138
jne 0x100096ea
cmp dword [esp + 0x64], 0
je 0x100096ea
mov edx, ebx
jmp 0x100096ec
xor edx, edx
mov eax, dword [esp + 0xdc]
xor ecx, ecx
push eax
cmp edx, dword [eax + 4]
sete cl
mov dword [esp + 0x34], ecx
call fcn.1004ae57
pop ecx
push 4
xor eax, eax
lea ecx, [esp + 0xac]
pop edi
push edi
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
call fcn.1000e0be
mov dword [esp + 0x14], 0xada439be
mov dword [esp + 0x1c], 0
jmp 0x10009755
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 0xbbca
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x1000973f
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], 0
jl 0x1000983d
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x30], 0x44455595
mov dword [esp + 0x28], 0xb94d0f4f
mov dword [esp + 0x10], 0
jmp 0x10009790
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
mov dword [esp + 0x30], 0
jle 0x1000978c
jmp 0x10009829
mov dword [esp + 0x100], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
mov eax, dword [esp + 0x104]
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], 0
jmp 0x1000981f
mov dword [esp + 0x20], 0xfffffffb
mov dword [esp + 0x20], 0
jmp 0x10009815
mov dword [esp + 0x1c], 0xc67ee39f
mov dword [esp + 0x1c], 0
jmp 0x1000980b
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x100]
mov dword [esp + 0x28], eax
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jle 0x100097f8
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jle 0x100097e6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x100097d4
inc dword [esp + 0x30]
cmp dword [esp + 0x30], esi
jle 0x100097a3
dec dword [esp + 0x14]
jns 0x1000976a
cmp dword [esp + 0xa8], 0
je 0x1000986c
push dword [esp + 0xa8]
call fcn.1004ae57
and dword [esp + 0xac], 0
and dword [esp + 0xb0], 0
and dword [esp + 0xb4], 0
pop ecx
mov dword [esp + 0x1c], 0x532bb11a
mov dword [esp + 0xd8], 9
mov dword [esp + 0x28], 0x184c
cmp dword [esp + 0x28], 0xd9f
jge 0x10009db3
call fcn.1004aa75
push eax
push 0x10007750
push 0x10007754
call fcn.1004af2f
add esp, 0xc
call fcn.1004aa75
add eax, 0x20
push eax
push 0x1000775c
push 0x10007760
call fcn.1004af2f
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
call fcn.100125cb
mov dword [esp + 0x68], eax
lea eax, [esp + 0x4b]
mov dword [esp + 0x2e4], ebx
push eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0x4f], 0x20
call fcn.1000e10e
mov dword [eax], ebx
lea eax, [ebx + 0x41]
mov byte [esp + 0x43], al
lea ecx, [esp + 0x68]
lea eax, [esp + 0x43]
push eax
call fcn.1000e10e
inc ebx
mov dword [eax], ebx
cmp ebx, 0x1a
jl 0x100098f7
and dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0xf
mov byte [esp + 0x7c], 0
xor ebx, ebx
lea eax, [esp + 0xa4]
inc ebx
mov ecx, 0x10656a70
push eax
mov byte [esp + 0x2e8], bl
call fcn.1000da5c
mov dword [esp + 0x34], ebx
cmp dword [esp + 0xa4], ebx
jl 0x10009d93
mov esi, 0x10007768
lea eax, [esp + 0x5c]
push eax
push ecx
lea eax, [esp + 0x104]
mov ecx, 0x10656a70
push eax
call fcn.1000da5c
pop ecx
mov ecx, eax
call fcn.1000da5c
lea eax, [esp + 0x78]
push eax
push esi
call fcn.1004a93b
pop ecx
pop ecx
push 0
push 0x100076b5
lea ecx, [esp + 0x84]
call fcn.1000e7dc
jmp 0x100099b8
cmp byte [esp + 0x78], 0xa
je 0x100099c9
push dword [esp + 0x78]
lea ecx, [esp + 0x80]
push ebx
call fcn.1000e6e7
lea eax, [esp + 0x78]
push eax
push esi
call fcn.1004a93b
pop ecx
pop ecx
cmp eax, ebx
je 0x100099a0
xor edi, edi
lea eax, [esp + 0x118]
push 0x1b9
push edi
push eax
xor esi, esi
mov dword [esp + 0x1c], edi
call fcn.1004ada0
mov eax, dword [esp + 0x108]
xor ecx, ecx
mov dword [esp + 0x2c], eax
add esp, 0xc
cdq
sub eax, edx
mov dword [esp + 0x14], ecx
mov edx, eax
sar edx, 1
mov dword [esp + 0x28], edx
test edx, edx
jle 0x10009c96
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffffe
mov dword [esp + 0x2c], 0x15
imul edi, eax, 0x15
mov dword [esp + 0x30], eax
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x5c]
sub edi, dword [esp + 0x20]
mov dword [esp + 0x24], edi
lea edi, [esp + 0x118]
sub edi, 0x15
mov dword [esp + 0x9c], edi
mov edi, ecx
cmp esi, dword [esp + 0x8c]
jae 0x10009c96
mov dword [esp + 0x38], ecx
cmp ecx, dword [esp + 0x74]
jge 0x10009ad4
cmp esi, dword [esp + 0x8c]
jae 0x10009ac8
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x68]
cmovae eax, dword [esp + 0x7c]
add eax, esi
push eax
call fcn.1000e10e
push 4
pop ecx
sub ecx, edi
mov edx, ebx
shl edx, cl
test dword [eax], edx
je 0x10009aa8
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x38]
mov byte [eax + ecx], bl
cmp edi, 4
jne 0x10009aae
inc esi
lea eax, [edi + 1]
cdq
push 5
pop ecx
idiv ecx
mov eax, dword [esp + 0x38]
inc eax
mov edi, edx
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x74]
jl 0x10009a63
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], edi
lea edx, [ecx + 1]
add eax, 2
mov dword [esp + 0x50], edx
mov dword [esp + 0x3c], edx
cmp edx, eax
jge 0x10009b6c
mov eax, dword [esp + 0x2c]
sub eax, ecx
add eax, dword [esp + 0x5c]
lea eax, [esp + eax + 0x117]
mov dword [esp + 0x38], eax
cmp esi, dword [esp + 0x8c]
jae 0x10009b64
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x68]
cmovae eax, dword [esp + 0x7c]
add eax, esi
push eax
call fcn.1000e10e
push 4
pop ecx
sub ecx, edi
mov edx, ebx
shl edx, cl
mov ecx, dword [esp + 0x38]
test dword [eax], edx
je 0x10009b38
mov byte [ecx], bl
cmp edi, 4
jne 0x10009b3e
inc esi
lea eax, [edi + 1]
add ecx, 0x15
cdq
push 5
pop edi
idiv edi
mov eax, dword [esp + 0x30]
mov edi, edx
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x3c]
add eax, 2
inc edx
mov dword [esp + 0x3c], edx
cmp edx, eax
jl 0x10009aff
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x24]
mov dword [esp + 0x38], eax
cmp eax, ecx
jl 0x10009be4
cmp esi, dword [esp + 0x8c]
jae 0x10009bdc
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x68]
cmovae eax, dword [esp + 0x7c]
add eax, esi
push eax
call fcn.1000e10e
push 4
pop ecx
sub ecx, edi
mov edx, ebx
shl edx, cl
mov ecx, dword [esp + 0x38]
test dword [eax], edx
je 0x10009bc0
mov eax, dword [esp + 0x70]
add eax, ecx
mov byte [esp + eax + 0x12d], bl
cmp edi, 4
jne 0x10009bc6
inc esi
lea eax, [edi + 1]
push 5
pop edi
cdq
idiv edi
dec ecx
mov edi, edx
mov dword [esp + 0x38], ecx
cmp ecx, dword [esp + 0x14]
jge 0x10009b7c
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x3c], eax
cmp eax, edx
jl 0x10009c71
mov eax, dword [esp + 0x70]
add eax, ecx
lea eax, [esp + eax + 0x118]
mov dword [esp + 0x38], eax
cmp esi, dword [esp + 0x8c]
jae 0x10009c65
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x68]
cmovae eax, dword [esp + 0x7c]
add eax, esi
push eax
call fcn.1000e10e
push 4
pop ecx
sub ecx, edi
mov edx, ebx
shl edx, cl
mov ecx, dword [esp + 0x38]
test dword [eax], edx
je 0x10009c3e
mov byte [ecx], bl
cmp edi, 4
jne 0x10009c44
inc esi
lea eax, [edi + 1]
sub ecx, 0x15
push 5
pop edi
cdq
idiv edi
mov dword [esp + 0x38], ecx
mov edi, edx
mov edx, dword [esp + 0x3c]
dec edx
mov dword [esp + 0x3c], edx
cmp edx, dword [esp + 0x50]
jge 0x10009c05
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], edi
sub dword [esp + 0x70], 0x15
mov ecx, edx
dec dword [esp + 0x74]
dec eax
add dword [esp + 0x2c], 0x15
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], eax
cmp ecx, edx
jl 0x10009a4c
mov eax, dword [esp + 0x20]
and eax, 0x80000001
jns 0x10009ca6
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, ebx
jne 0x10009d19
mov eax, dword [esp + 0x5c]
mov edi, edx
sub eax, edx
mov dword [esp + 0x24], eax
cmp edi, eax
jge 0x10009d19
cmp esi, dword [esp + 0x8c]
jae 0x10009d19
cmp dword [esp + 0x90], 0x10
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x68]
cmovae eax, dword [esp + 0x7c]
add eax, esi
push eax
call fcn.1000e10e
push 4
pop ecx
sub ecx, dword [esp + 0x10]
mov edx, ebx
shl edx, cl
test dword [eax], edx
je 0x10009cfd
imul eax, dword [esp + 0x28], 0x15
add eax, edi
mov byte [esp + eax + 0x118], bl
mov eax, dword [esp + 0x10]
cmp eax, 4
jne 0x10009d07
inc esi
inc eax
push 5
cdq
pop ecx
idiv ecx
inc edi
mov dword [esp + 0x10], edx
cmp edi, dword [esp + 0x24]
jl 0x10009cba
mov esi, dword [esp + 0x34]
mov ecx, 0x106569b8
push esi
call fcn.1000de8f
mov edx, 0x1000776c
mov ecx, eax
call fcn.10012936
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x10009d6e
lea edi, [esp + 0x118]
xor esi, esi
cmp dword [esp + 0x5c], esi
jle 0x10009d60
movzx eax, byte [edi + esi]
push eax
call fcn.1000dd6c
inc esi
cmp esi, dword [esp + 0x5c]
jl 0x10009d4b
mov eax, dword [esp + 0x20]
add edi, 0x15
dec eax
mov dword [esp + 0x20], eax
jne 0x10009d43
mov esi, dword [esp + 0x34]
push 0x106569b8
call fcn.10012b0d
inc esi
cmp esi, dword [esp + 0xa8]
mov dword [esp + 0x38], esi
mov esi, 0x10007768
pop ecx
jle 0x1000995e
push 4
pop edi
push 0
push ebx
lea ecx, [esp + 0x84]
call fcn.1000e8a3
or dword [esp + 0x2e4], 0xffffffff
lea ecx, [esp + 0x68]
call fcn.1000e15f
mov dword [esp + 0x14], 0
jmp 0x10009dcd
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x4c], 6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x10009dbd
mov dword [esp + 0x4c], 0
jmp 0x10009e0e
mov dword [esp + 0x24], 0x288a137b
cmp dword [esp + 0x24], 0
jne 0x10009e15
mov byte [esp + 0x1b], 0
cmp byte [esp + 0x1b], 0
je 0x10009e0a
push 0x4da
push 0
push 0x258a
call dword [sym.imp.USER32.dll_GetWindowTextA]
dec dword [esp + 0x4c]
cmp dword [esp + 0x4c], 0xffffffff
jle 0x10009ddd
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0xcc]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], 0x8cda2ae7
mov dword [esp + 0x10], 0xb0ceafd9
mov dword [esp + 0x3c], ebx
push 2
call fcn.1000e0be
mov dword [esp + 0x20], 0xa9413e45
mov dword [esp + 0x2c], 0xd925d3c0
mov dword [esp + 0x28], 0x4177fd8b
mov dword [esp + 0x34], 0xfb1cad2b
mov dword [esp + 0x14], 0
jmp 0x10009e7f
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], 0x1d686a37
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10009e69
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xcc]
mov dword [eax + 4], ecx
test ecx, ecx
jne 0x10009e9c
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
sub eax, 0xaacda2a4
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
jne 0x10009ed3
cmp dword [esp + 0x10], 0
jne 0x10009ed3
xor eax, eax
jmp 0x10009ed5
mov eax, ebx
cmp eax, dword [esp + 0x10]
jle 0x10009edf
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
cmp ecx, eax
setg dl
mov dword [esp + 0x3c], edx
xor edx, edx
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x10]
imul eax, eax, 0x1665
mov dword [esp + 0x28], eax
imul ecx, dword [esp + 0x28], 3
mov eax, dword [esp + 0x10]
cmp ecx, eax
setl dl
xor ecx, ecx
sub edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x10]
add edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
cmp eax, edx
mov eax, dword [esp + 0x34]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x2c]
push dword [esp + 0xcc]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x38], ecx
call fcn.1004ae57
xor eax, eax
pop ecx
mov dword [esp + 0xcc], eax
lea ecx, [esp + 0xe8]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x50], 0xa29f
mov dword [esp + 0x24], 0xffffffff
push ebx
call fcn.1000e0be
xor edx, edx
mov dword [esp + 0x9c], 0x3992
mov dword [esp + 0x14], edx
jmp 0x10009fb1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xe8]
mov dword [eax + ecx*4], 0xfb871c7b
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x10009f9b
mov byte [esp + 0x1b], dl
cmp byte [esp + 0x1b], dl
je 0x10009fc8
push edx
call dword [sym.imp.USER32.dll_GetMenuItemCount]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xe8]
push ecx
mov dword [ecx], eax
call fcn.1004ae57
xor eax, eax
pop ecx
mov dword [esp + 0xe8], eax
lea ecx, [esp + 0xb4]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x24], 8
mov dword [esp + 0x24], edi
push edi
call fcn.1000e0be
mov dword [esp + 0x2c], 0xfffffff7
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x14], 0
jmp 0x1000a044
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xb4]
mov dword [eax + ecx*4], 0xa137b189
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x1000a02e
mov eax, dword [esp + 0x2c]
xor edx, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x34]
imul ecx, dword [esp + 0x2c], 0xa8af
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0xb4]
cmp ecx, eax
setg dl
xor eax, eax
cmp edx, 0x5890
setle al
xor edx, edx
add eax, dword [esp + 0x2c]
cmp dword [esi + 8], eax
mov eax, dword [esp + 0x24]
push dword [esp + 0xb4]
setl dl
xor ecx, ecx
cmp eax, edx
setl cl
xor eax, eax
cmp dword [esi + 8], eax
mov dword [esp + 0x2c], ecx
setge al
mov dword [esp + 0x2c], eax
call fcn.1004ae57
pop ecx
xor eax, eax
lea ecx, [esp + 0xc0]
push ebx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
call fcn.1000e0be
mov dword [esp + 0x2e4], 2
mov dword [esp + 0x24], 0x14a6
cmp dword [esp + 0x24], 0xb10
jge 0x1000a2a8
xor eax, eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0xa0]
push eax
push 0x10007770
call fcn.1004a93b
and dword [esp + 0x58], 0
lea eax, [esp + 0x6c]
and dword [esp + 0x6c], 0
add esp, 0x14
push eax
lea eax, [esp + 0x48]
push eax
push 0x10007780
call fcn.1004a93b
mov eax, dword [esp + 0x50]
add esp, 0xc
xor ecx, ecx
inc eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10045feb
mov esi, eax
mov eax, dword [esp + 0x5c]
pop ecx
xor ecx, ecx
mov dword [esp + 0x28], esi
lea eax, [eax + 1]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10045feb
pop ecx
mov ecx, dword [esp + 0x44]
mov edx, eax
mov dword [esp + 0x34], edx
mov edi, ebx
cmp ecx, ebx
jl 0x1000a1c9
push 4
add esi, 4
pop ebx
push esi
push 0x10007748
call fcn.1004a93b
pop ecx
pop ecx
mov ecx, dword [esp + 0x44]
inc edi
add esi, ebx
cmp edi, ecx
jle 0x1000a1aa
mov edx, dword [esp + 0x34]
xor ebx, ebx
inc ebx
mov eax, dword [esp + 0x58]
mov edi, ebx
cmp eax, ebx
jl 0x1000a1f8
push 4
lea esi, [edx + 4]
pop ebx
push esi
push 0x10007748
call fcn.1004a93b
mov eax, dword [esp + 0x60]
inc edi
pop ecx
add esi, ebx
pop ecx
cmp edi, eax
jle 0x1000a1d9
mov ecx, dword [esp + 0x44]
xor ebx, ebx
inc ebx
mov edi, dword [esp + 0x28]
mov edx, ebx
cmp ecx, ebx
jl 0x1000a226
mov eax, dword [edi + edx*4]
imul eax, dword [esp + 0x94]
cmp dword [esp + 0x60], eax
cmovl eax, dword [esp + 0x60]
mov dword [edi + edx*4], eax
inc edx
mov ecx, dword [esp + 0x44]
cmp edx, ecx
jle 0x1000a202
mov eax, dword [esp + 0x58]
mov edx, ebx
cmp eax, ebx
jl 0x1000a254
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + edx*4]
imul eax, dword [esp + 0x94]
cmp dword [esp + 0x60], eax
cmovl eax, dword [esp + 0x60]
mov dword [ecx + edx*4], eax
inc edx
mov eax, dword [esp + 0x58]
cmp edx, eax
jle 0x1000a230
mov ecx, dword [esp + 0x44]
xor edx, edx
mov esi, ebx
cmp ecx, ebx
jl 0x1000a264
add edx, dword [edi + esi*4]
inc esi
cmp esi, ecx
jle 0x1000a25c
xor ecx, ecx
mov esi, ebx
cmp eax, ebx
jl 0x1000a278
mov edi, dword [esp + 0x34]
add ecx, dword [edi + esi*4]
inc esi
cmp esi, eax
jle 0x1000a270
mov eax, dword [esp + 0xa0]
cmp edx, eax
cmovg edx, eax
cmp ecx, eax
cmovg ecx, eax
lea eax, [ecx + edx]
cmp eax, dword [esp + 0x98]
cmovg eax, dword [esp + 0x98]
push eax
push 0x10007788
call fcn.1004ace5
pop ecx
pop ecx
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x1000a2c6
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc0]
mov dword [eax + ecx*4], 0xe0bcd8c4
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x1000a2b0
mov byte [esp + 0x1b], dl
cmp byte [esp + 0x1b], dl
je 0x1000a2e4
push edx
push 0x15cd
call dword [sym.imp.USER32.dll_ValidateRect]
xor edx, edx
mov byte [esp + 0x1b], dl
cmp byte [esp + 0x1b], 0
je 0x1000a302
push 0x8b7
push 0x18ad
push edx
call dword [sym.imp.GDI32.dll_PtInRegion]
xor edx, edx
or dword [esp + 0x2e4], 0xffffffff
cmp dword [esp + 0xc0], 0
je 0x1000a338
push dword [esp + 0xc0]
call fcn.1004ae57
xor edx, edx
pop ecx
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], edx
mov byte [esp + 0x57], dl
mov dword [esp + 0x24], edx
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x24], edx
mov dword [esp + 0x24], 0x2526041
mov dword [esp + 0x24], 0x5010f7a7
mov dword [esp + 0x24], 0x2a8358bd
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], edx
jmp 0x1000a381
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x110], 0xfffffffd
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1000a36e
dec dword [esp + 0x28]
lea ecx, [esp + 0x57]
call fcn.100093d6
cmp dword [esp + 0x1c], 0
je 0x1000a3d2
mov eax, dword [esp + 0xd8]
xor edx, edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
setge dl
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0x1c]
jne 0x1000a3d4
cmp dword [esp + 0x50], eax
jne 0x1000a3d4
xor ebx, ebx
lea eax, [ebx + 0xa00d]
mov ecx, 0x3e8
imul eax, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xf8]
cdq
idiv ecx
mov ecx, dword [esp + 0xf4]
mov edi, edx
mov esi, eax
call fcn.10009364
mov ecx, dword [esp + 0x2dc]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret