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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5d51d2
mov eax, dword fs:[0]
push eax
sub esp, 0x728
mov eax, dword [0x64e0a0]
xor eax, esp
mov dword [esp + 0x720], eax
push ebx
push esi
push edi
mov eax, dword [0x64e0a0]
xor eax, esp
push eax
lea eax, [esp + 0x738]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x58], edi
mov eax, dword [edi + 0xa4]
mov byte [eax], 1
mov eax, dword [edi + 0xb8]
mov dword [eax], 0
mov eax, dword [edi + 0x98]
mov byte [eax], 0
mov eax, dword [edi + 0xac]
mov byte [eax], 0
mov eax, dword [edi + 0x9c]
mov byte [eax], 0
mov eax, dword [edi + 0xa0]
mov byte [eax], 0
mov dword [edi + 0x128], 0
mov word [edi + 0x12d], 0
call fcn.0042c367
push 0x60d3e0
mov ecx, edi
call fcn.00428cd3
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [esp + 0x20c]
push eax
mov dword [esp + 0x210], 0x11c
call esi
mov eax, dword [0x653368]
cmp eax, 0xffffffff
jne 0x569a07
lea eax, [esp + 0xf4]
push eax
mov dword [esp + 0xf8], 0x114
call esi
test eax, eax
jne 0x5699e5
xor al, al
jmp 0x569a0d
cmp dword [esp + 0x104], 2
jne 0x569a00
cmp dword [esp + 0xf8], 4
jne 0x569a00
mov eax, 1
jmp 0x569a02
xor eax, eax
mov dword [0x653368], eax
cmp eax, 1
sete al
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 0xffffb192
add ebx, 0x4fb3
mov ecx, edi
mov byte [edi + 0xf8], al
mov dword [esp + 0x14], ebx
call fcn.00594000
lea esi, [edi + 0x1ac]
push esi
push dword [edi + 0x154]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esi + 8]
sub eax, dword [esi]
mov dword [edi + 0x1bc], eax
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 4]
mov dword [edi + 0x1a8], 0
mov dword [edi + 0x1c0], eax
mov eax, dword [edi + 0x1bc]
sub eax, 2
mov dword [edi + 0x1c4], eax
mov byte [edi + 0x1c8], 0
mov eax, dword [edi + 0xc8]
fld dword [eax]
fld1
fucompp
fnstsw ax
test ah, 0x44
jp 0x569b27
mov eax, dword [edi + 0xcc]
movzx edx, word [eax]
mov eax, dword [edi + 0xe0]
mov esi, dword [eax]
mov eax, dword [edi + 0xe8]
mov ecx, dword [eax]
test ecx, ecx
je 0x569abe
push edx
mov edx, ebx
call fcn.005b7a00
add esp, 4
test eax, eax
jne 0x569acc
push 0
mov edx, ebx
mov ecx, esi
call fcn.005b7a00
add esp, 4
lea ebx, [edi + 0x110]
push eax
mov ecx, ebx
call fcn.00429d75
mov eax, dword [edi + 0xcc]
mov esi, dword [esp + 0x14]
movzx edx, word [eax]
mov eax, dword [edi + 0xe0]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xe8]
mov ecx, dword [eax]
test ecx, ecx
je 0x569b12
push edx
mov edx, esi
call fcn.005b7a00
add esp, 4
test eax, eax
jne 0x569c26
mov ecx, dword [esp + 0x18]
push 0
mov edx, esi
call fcn.005b7a00
add esp, 4
jmp 0x569c26
lea eax, [esp + 0x74]
push eax
push dword [edi + 0x20]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [edi + 0xe0]
mov ecx, dword [esp + 0x7c]
mov eax, dword [eax]
mov esi, dword [esp + 0x80]
sub ecx, dword [esp + 0x74]
sub esi, dword [esp + 0x78]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0xe8]
mov dword [esp + 0x18], ecx
mov eax, dword [eax]
test eax, eax
je 0x569ba4
push ecx
push esi
push ecx
mov edx, ebx
mov ecx, eax
call fcn.005b75e0
add esp, 0xc
test eax, eax
jne 0x569bb5
mov ecx, dword [esp + 0x18]
push ecx
push esi
push ecx
mov ecx, dword [esp + 0x2c]
mov edx, ebx
call fcn.005b75e0
add esp, 0xc
lea ebx, [edi + 0x110]
push eax
mov ecx, ebx
call fcn.00429d75
mov eax, dword [edi + 0xe0]
mov ecx, dword [esp + 0x80]
mov eax, dword [eax]
mov edx, dword [esp + 0x7c]
sub ecx, dword [esp + 0x78]
sub edx, dword [esp + 0x74]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0xe8]
mov dword [esp + 0x18], ecx
mov eax, dword [eax]
mov dword [esp + 0x20], edx
test eax, eax
je 0x569c15
push ecx
push ecx
push edx
mov edx, esi
mov ecx, eax
call fcn.005b75e0
add esp, 0xc
test eax, eax
jne 0x569c26
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push ecx
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, esi
call fcn.005b75e0
add esp, 0xc
push eax
lea ecx, [edi + 0x118]
call fcn.00429d75
mov eax, dword [edi + 0xcc]
movzx edx, word [eax]
mov eax, dword [edi + 0xe0]
mov esi, dword [eax]
mov eax, dword [edi + 0xe8]
mov ecx, dword [eax]
test ecx, ecx
je 0x569c61
push edx
mov edx, 0xc8
call fcn.005b7a00
add esp, 4
test eax, eax
jne 0x569c72
push 0
mov edx, 0xc8
mov ecx, esi
call fcn.005b7a00
add esp, 4
lea esi, [edi + 0x108]
push eax
mov ecx, esi
call fcn.00429d75
test esi, esi
jne 0x569c88
xor ecx, ecx
jmp 0x569c8b
mov ecx, dword [esi + 4]
call fcn.005b9300
cmp byte [edi + 0xf8], 0
je 0x569ddf
push 0
push 1
push 0
push 0
push 0x888888
push dword [0x65bd64]
lea ecx, [edi + 0x1d0]
call fcn.0056bbc0
sub esp, 8
lea ecx, [edi + 0x1254]
push 0x190
push 0xc
call fcn.005940a0
add esp, 0x10
test ebx, ebx
jne 0x569cdb
xor eax, eax
jmp 0x569cde
mov eax, dword [ebx + 4]
sub esp, 8
lea ecx, [edi + 0x1d0]
push eax
call fcn.0056bc80
push 0
push 1
push 0
push 0
push 0x888888
push dword [0x65be14]
lea ecx, [edi + 0x1298]
call fcn.0056bbc0
sub esp, 8
lea ecx, [edi + 0x231c]
push 0x190
push 0xc
call fcn.005940a0
add esp, 0x10
test ebx, ebx
jne 0x569d2b
xor eax, eax
jmp 0x569d2e
mov eax, dword [ebx + 4]
sub esp, 8
lea ecx, [edi + 0x1298]
push eax
call fcn.0056bc80
push 0
push 1
push 0
push 0
push 0x888888
push dword [0x65be18]
lea ecx, [edi + 0x2360]
call fcn.0056bbc0
sub esp, 8
lea ecx, [edi + 0x33e4]
push 0x190
push 0xc
call fcn.005940a0
add esp, 0x10
test ebx, ebx
jne 0x569d7b
xor eax, eax
jmp 0x569d7e
mov eax, dword [ebx + 4]
sub esp, 8
lea ecx, [edi + 0x2360]
push eax
call fcn.0056bc80
mov eax, dword [edi + 0xec]
push 0
push 1
push 0
push 0
push 0x888888
push dword [eax]
lea ecx, [edi + 0x3428]
call fcn.0056bbc0
sub esp, 8
lea ecx, [edi + 0x44ac]
push 0x190
push 0xc
call fcn.005940a0
add esp, 0x10
test ebx, ebx
jne 0x569dcd
xor eax, eax
jmp 0x569dd0
mov eax, dword [ebx + 4]
sub esp, 8
lea ecx, [edi + 0x3428]
push eax
call fcn.0056bc80
push dword [edi + 0xd8]
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call esi
push dword [edi + 0xdc]
call esi
push 0xc
call fcn.004215fe
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x569e11
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
jmp 0x569e13
xor ecx, ecx
mov dword [ecx], edi
mov eax, dword [edi + 0x98]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0xb4]
mov dword [ecx + 4], eax
lea eax, [esp + 0x60]
push eax
push 0
push ecx
push 0x56afc0
push 0x100000
push 0
call dword [0x649004]
mov dword [edi + 0xf4], eax
push 0
test eax, eax
jne 0x569e56
mov ecx, edi
call fcn.0042c17d
jmp 0x569e63
push 0x19
push 0
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SetTimer]
mov esi, dword [sym.imp.USER32.dll_SetWindowPos]
push 3
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push dword [edi + 0x20]
call esi
push 3
push 0
push 0
push 0
push 0
push 0xfffffffffffffffe
push dword [edi + 0x20]
call esi
cmp byte [edi + 0xf8], 0
jne 0x56a351
mov esi, dword [edi + 0x20]
push 0xffffffffffffffec
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x80000
push eax
push 0xffffffffffffffec
push esi
call dword [sym.imp.USER32.dll_SetWindowLongW]
test ebx, ebx
jne 0x569ebb
xor eax, eax
jmp 0x569ebe
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x74]
push ecx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
xor eax, eax
push 0x3fe
push eax
mov word [esp + 0x334], ax
lea eax, [esp + 0x336]
push eax
call fcn.00546fa0
add esp, 0xc
lea eax, [esp + 0x32c]
push dword [0x65bd64]
push dword [0x65be18]
push dword [0x65be14]
push str._s_n_s_n_n_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [edi + 0x120]
push 0x190
push 0xc
call fcn.005940a0
add esp, 8
lea ecx, [edi + 0x124]
push 0x190
push 0xd
call fcn.005940a0
add esp, 0x10
lea eax, [esp + 0x64]
push eax
push dword [edi + 0x20]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
call dword [sym.imp.USER32.dll_GetClientRect]
push edi
lea ecx, [esp + 0xa0]
call fcn.0042953c
lea ecx, [esp + 0x48]
mov dword [esp + 0x740], 0
call fcn.00429528
mov byte [esp + 0x740], 1
push dword [esp + 0xa0]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x4c]
call fcn.00429d3f
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
test ebx, ebx
je 0x569fca
mov eax, dword [ebx + 4]
test eax, eax
je 0x569fca
push eax
push dword [esp + 0x50]
call esi
mov dword [esp + 0x18], eax
jmp 0x569fd2
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x28]
call fcn.00429528
mov byte [esp + 0x740], 2
push dword [esp + 0xa0]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x2c]
call fcn.00429d3f
push 7
push dword [esp + 0x34]
call dword [sym.imp.GDI32.dll_GetCurrentObject]
push eax
call fcn.00429fd0
push dword [edi + 0x120]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x60], eax
call fcn.0042a4a1
mov dword [esp + 0x40], eax
lea eax, [esp + 0x32c]
push eax
lea ecx, [esp + 0x18]
call fcn.00405090
mov byte [esp + 0x740], 3
mov ecx, dword [esp + 0x14]
push 0x410
lea eax, [esp + 0x68]
push eax
push dword [ecx - 0xc]
mov eax, dword [esp + 0x34]
push ecx
lea ecx, [esp + 0x38]
call dword [eax + 0x68]
mov byte [esp + 0x740], 2
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
or eax, 0xffffffff
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x56a07f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], vtable.CBitmap.0
mov byte [esp + 0x740], 4
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
sub edx, dword [esp + 0x68]
sub ecx, dword [esp + 0x64]
push 0
lea eax, [esp + 0x24]
push 0x20
push eax
call fcn.005b8290
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
call fcn.00429d75
push dword [esp + 0x3c]
push dword [esp + 0x30]
call fcn.0042a442
mov ecx, dword [esp + 0x70]
sub ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x64]
push 0xcc0020
push 0x5f
push 0x20
push dword [esp + 0x58]
push ecx
push eax
push 0
push 0
push dword [esp + 0x4c]
call dword [sym.imp.GDI32.dll_BitBlt]
push 0
lea ecx, [esp + 0x2c]
call fcn.0042a6a9
push 1
lea ecx, [esp + 0x2c]
call fcn.0042a58d
push 1
lea ecx, [esp + 0x2c]
call fcn.0042a5d1
lea eax, [esp + 0x32c]
push eax
lea ecx, [esp + 0x18]
call fcn.00405090
mov byte [esp + 0x740], 5
mov eax, dword [esp + 0x14]
push 0x10
lea ecx, [esp + 0x68]
push ecx
push dword [eax - 0xc]
lea ecx, [esp + 0x34]
push eax
mov eax, dword [esp + 0x38]
call dword [eax + 0x68]
mov byte [esp + 0x740], 4
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x56a17e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x56a18d
push eax
push dword [esp + 0x30]
call esi
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x64]
mov ecx, esi
sub ecx, dword [esp + 0x68]
xor edx, edx
imul ecx, eax
lea eax, [ecx*4 - 3]
test eax, eax
jle 0x56a1e0
nop
mov eax, dword [esp + 0x20]
add edx, 4
mov byte [edx + eax - 1], 0xff
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x64]
mov ecx, esi
sub ecx, dword [esp + 0x68]
imul ecx, eax
lea eax, [ecx*4 - 3]
cmp edx, eax
jl 0x56a1b0
mov edi, dword [esp + 0x58]
sub esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x64]
push 0xcc0020
push 0
push 0
push dword [esp + 0x38]
push esi
push eax
push 0x5f
push 0x20
push dword [esp + 0x6c]
call dword [sym.imp.GDI32.dll_BitBlt]
mov byte [esp + 0x740], 2
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], vtable.CBitmap.0
call fcn.00402560
test ebx, ebx
jne 0x56a22a
xor ecx, ecx
jmp 0x56a22d
mov ecx, dword [ebx + 4]
call fcn.005b9300
lea eax, [esp + 0x8c]
push eax
push dword [edi + 0x20]
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x90]
mov edx, dword [esp + 0x78]
add edx, dword [esp + 0x8c]
mov dword [esp + 0x98], eax
sub eax, dword [esp + 0x90]
push 2
mov dword [esp + 0x28], eax
lea eax, [esp + 0x20]
push eax
push 0
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x5c]
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0xa4]
push eax
push dword [esp + 0xbc]
mov dword [esp + 0xb4], edx
sub edx, dword [esp + 0xac]
push dword [edi + 0x20]
mov dword [esp + 0x40], 0x1ff0000
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x44], edx
call dword [section..data]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x56a2fb
mov eax, dword [eax + 4]
push eax
push dword [esp + 0x30]
call fcn.0042a442
mov eax, dword [esp + 0x18]
test eax, eax
je 0x56a318
push eax
push dword [esp + 0x50]
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x28]
mov byte [esp + 0x740], 1
call fcn.00429668
lea ecx, [esp + 0x48]
mov byte [esp + 0x740], 0
call fcn.00429668
lea ecx, [esp + 0x9c]
mov dword [esp + 0x740], 0xffffffff
call fcn.00429681
mov eax, 1
mov ecx, dword [esp + 0x738]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x720]
xor ecx, esp
call fcn.00541b41
mov esp, ebp
pop ebp
ret