Function at 0x10022951
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100600ca
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe0
cmp byte [ebp + 0x20], 0
push ebx
push esi
push edi
mov dword [esp + 0x1c], ecx
je 0x100229c1
cmp byte [ebp + 0x1c], 0
je 0x100229ab
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0
je 0x1002308a
push 0x14bd
push 0x248a
push 0x10c2
call dword [sym.imp.USER32.dll_EnableScrollBar]
jmp 0x1002308a
cmp byte [edx], 0
je 0x1002308a
push 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
jmp 0x1002308a
cmp byte [ebp + 0xc], 0
je 0x100229f3
mov edx, dword [ebp + 0x14]
push 2
pop ebx
mov dword [edx], 0
cmp dword [edx], ebx
jge 0x1002308a
mov edi, dword [ebp + 0x10]
xor esi, esi
inc esi
mov ecx, dword [edx]
mov eax, dword [edi]
mov dword [eax + ecx*4], esi
inc dword [edx]
cmp dword [edx], ebx
jl 0x100229e1
jmp 0x1002308a
mov dword [esp + 0xc], 0x31713b91
xor ebx, ebx
mov dword [esp + 0x18], 0xfff8
mov dword [esp + 0x10], 0xfffffffd
push 1
mov dword [esp + 0x18], 0x9d982735
mov dword [esp + 0x10], ebx
pop esi
jmp 0x10022aef
push esi
lea ecx, [esp + 0x94]
call fcn.100152de
push 0x4821
lea eax, [esp + 0xd8]
mov dword [esp + 0xf8], ebx
push eax
lea eax, [esp + 0x98]
mov dword [esp + 0x18], 0x3923ccde
push eax
mov edx, 0x7c5d
xor cl, cl
call fcn.10023d5e
mov eax, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x1c], eax
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp eax, ecx
mov eax, dword [esp + 0xc]
setne dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x90]
setle cl
xor edx, edx
cmp dword [eax], ecx
mov eax, dword [esp + 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
imul eax, ecx, 0xfffffffb
test eax, eax
jne 0x10022aab
mov eax, ebx
cmp dword [esp + 0xc], ebx
je 0x10022aad
mov eax, esi
mov dword [esp + 0x10], eax
mov ecx, 0xc7d95faa
mov eax, dword [esp + 0x18]
sub ecx, eax
add ecx, dword [esp + 0x10]
lea eax, [esp + 0x26]
push ecx
push ecx
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x2e], bl
push eax
call fcn.10022728
or dword [esp + 0x100], 0xffffffff
lea ecx, [esp + 0x9c]
add esp, 0xc
call fcn.10015361
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff4
je 0x10022a21
push 2
pop ebx
push ebx
lea ecx, [esp + 0x50]
call fcn.100152de
push 3
lea ecx, [esp + 0x70]
mov dword [esp + 0xf8], esi
call fcn.100152de
push 3
lea ecx, [esp + 0xac]
mov byte [esp + 0xf8], bl
call fcn.100152de
push 0x3f12
mov byte [esp + 0xf8], 3
lea edx, [esp + 0x48]
push 0
mov dword [esp + 0x20], 0xfffffff8
lea ecx, [esp + 0x54]
push 0x601f
mov dword [esp + 0x40], 0xc248bdd0
call fcn.10023803
add esp, 0xc
lea eax, [esp + 0x44]
lea edx, [esp + 0x6c]
xor cl, cl
push 0x109c
push eax
call fcn.1002285f
lea eax, [esp + 0xb0]
push eax
lea edx, [esp + 0x50]
call fcn.10023421
mov eax, dword [esp + 0x58]
add esp, 0xc
mov dword [eax], 0xffffffec
jmp 0x10022d55
mov dword [esp + 0x20], 0x7689351f
mov dword [esp + 0x38], 3
mov dword [esp + 0x48], 0x486cae8e
mov dword [esp + 0x14], 0x5f9ba4ae
mov dword [esp + 0x20], 0xfffffffa
cmp dword [esp + 0x20], 0xffffffe2
jle 0x10022d4f
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x28], 9
lea ecx, [esp + 0xb4]
xor eax, eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], 0x856065d6
push ebx
call fcn.100152de
lea eax, [esp + 0xd0]
mov byte [esp + 0xf4], 4
push eax
push ecx
push ecx
lea ecx, [esp + 0xc0]
call fcn.10022840
add esp, 0xc
lea eax, [esp + 0x28]
mov edx, 0x6d36
lea ecx, [esp + 0x38]
push 0
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.10023569
mov eax, dword [esp + 0x84]
xor edx, edx
add esp, 0x18
mov dword [eax + 8], esi
mov eax, dword [esp + 0x20]
imul ecx, dword [esp + 0x14], 0xa093
mov eax, dword [esp + 0x4c]
cmp ecx, dword [eax]
setge dl
xor ecx, ecx
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
cmp eax, 0xffff0001
setl cl
lea eax, [ecx + 0x2551ad04]
mov ecx, dword [esp + 0x20]
imul ecx, eax
test ecx, ecx
jne 0x10022cb8
mov eax, dword [esp + 0x6c]
cmp dword [eax + 8], ecx
jne 0x10022cb8
xor edx, edx
jmp 0x10022cba
mov edx, esi
xor ecx, ecx
mov dword [edi + 4], edx
mov eax, dword [esp + 0x28]
cmp edx, eax
setle cl
mov dword [esp + 0x10], ecx
mov ecx, 0xffff
mov eax, dword [esp + 0x10]
cmp ecx, eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
cmp eax, ecx
setge dl
mov dword [esp + 0x10], edx
xor edx, edx
mov eax, dword [esp + 0x10]
cmp eax, 0xb61f
mov eax, dword [esp + 0x28]
setne dl
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
add eax, 7
jne 0x10022d1b
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xb4]
mov eax, dword [esp + 0xb4]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov byte [esp + 0xf4], 3
call fcn.10015361
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffe2
jg 0x10022bd4
mov eax, dword [esp + 0x4c]
inc dword [eax]
mov eax, dword [esp + 0x4c]
cmp dword [eax], 0x1b
jle 0x10022b9a
lea ecx, [esp + 0xa8]
call fcn.10015361
lea ecx, [esp + 0x6c]
call fcn.10015361
or dword [esp + 0xf4], 0xffffffff
lea ecx, [esp + 0x4c]
call fcn.10015361
mov ecx, dword [esp + 0x1c]
push 5
pop edi
push 3
movzx eax, word [ecx]
lea ecx, [esp + 0x88]
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0x9841b3c6
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], 0x85ed0657
mov dword [esp + 0x38], 0
call fcn.100152de
mov dword [esp + 0xf4], edi
mov eax, 0xffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], 0
jmp 0x10022de6
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x68], esi
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], esi
jl 0x10022dda
lea eax, [esp + 0x2c]
xor cl, cl
push eax
push 0x40d8
lea edx, [esp + 0x8c]
call fcn.10023232
pop ecx
pop ecx
mov dword [esp + 0xc], 0
jmp 0x10022e75
push 4
lea ecx, [esp + 0x7c]
call fcn.100152de
xor eax, eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x1c], eax
jmp 0x10022e56
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x78]
mov dword [eax + ecx*4], 0x102d149f
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 4
jl 0x10022e43
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x78]
mov dword [eax + 0xc], 0xffffffea
call fcn.10015361
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe8
jne 0x10022e10
cmp dword [esp + 0xc], 0
je 0x10022ef9
cmp dword [esp + 0x10], 0
jne 0x10022e95
cmp dword [esp + 0xc], 0
jne 0x10022e95
xor ecx, ecx
jmp 0x10022e97
mov ecx, esi
xor eax, eax
cmp ecx, 0x86a0
setge al
imul eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x18]
test eax, eax
jne 0x10022ebc
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
test eax, eax
mov eax, dword [esp + 0x34]
sets dl
mov dword [esp + 0x68], eax
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x84]
setg cl
cmp ecx, dword [eax]
jne 0x10022ef9
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x14], 0
jne 0x10022f12
mov dword [esp + 0x14], 0
mov dword [esp + 0x14], 0xffff0008
jmp 0x10022f29
mov byte [esp + 0x27], 0
cmp byte [esp + 0x27], 0
je 0x10022f29
sub esp, 0x24
call fcn.100232fc
add esp, 0x24
or dword [esp + 0xf4], 0xffffffff
lea ecx, [esp + 0x84]
call fcn.10015361
xor edi, edi
push ebx
lea ecx, [esp + 0xa0]
call fcn.100152de
mov dword [esp + 0xf4], 6
push 8
pop eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
lea eax, [esp + 0x30]
push ecx
mov dword [esp + 0x18], 0xb9dd952e
lea ecx, [esp + 0xa0]
mov dword [esp + 0x18], 0xfffffffd
push eax
call fcn.10023ddd
pop ecx
pop ecx
mov dword [esp + 0x30], 0
jmp 0x10022fa8
mov eax, dword [esp + 0x30]
mov dword [esp + eax*4 + 0x40], 0xfffffffe
inc dword [esp + 0x30]
cmp dword [esp + 0x30], esi
jl 0x10022f98
mov dword [esp + 0x58], esi
cmp dword [esp + 0x58], 0
jl 0x10022fdf
mov ecx, dword [esp + 0x58]
xor edx, edx
mov eax, dword [esp + 0x9c]
cmp dword [eax + ecx*4], edx
setne dl
mov dword [esp + 0x40], edx
mov dword [esp + 0x14], edx
call fcn.100231c3
dec dword [esp + 0x58]
jns 0x10022fb9
or dword [esp + 0xf4], 0xffffffff
lea ecx, [esp + 0x9c]
call fcn.10015361
mov cl, byte [esp + edi + 0x3c]
mov dl, 0xf1
call fcn.1002b3c0
mov byte [esp + edi + 0x3c], al
inc edi
cmp edi, ebx
jb 0x10022f3f
mov ecx, dword [ebp + 8]
mov ax, word [esp + 0x3c]
mov word [ecx], ax
mov dword [esp + 0x14], 0x1c79
cmp dword [esp + 0x14], 0x1d23
jle 0x1002308a
xor esi, esi
mov dword [esp + 0x14], esi
xor edi, edi
mov ecx, edi
mov dword [esp + 0x40], esi
xor ebx, ebx
sar esi, cl
mov eax, esi
mov ecx, 0x10079cd8
and eax, ebx
cdq
push edx
push eax
call fcn.10015096
inc ebx
cmp ebx, 0x54e9
jl 0x1002303a
mov esi, dword [esp + 0x14]
inc edi
cmp edi, 0x36b0
jl 0x10023030
inc esi
mov dword [esp + 0x14], esi
cmp esi, 0x19d5
jl 0x1002302e
push 0x110f
push 0x76e
push 0x3f0
push 0x1af9
push 0
call dword [sym.imp.USER32.dll_PeekMessageA]
mov ecx, dword [esp + 0xec]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret