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

Disassembly:
push 0xffffffffffffffff
push 0x87b910
mov eax, dword fs:[0]
push eax
sub esp, 0x49c
mov eax, dword [0x8ce6f4]
xor eax, esp
mov dword [esp + 0x498], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x8ce6f4]
xor eax, esp
push eax
lea eax, [esp + 0x4b0]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0xe8]
lea edi, [esi + 0xe8]
mov dword [esp + 0x20], edi
test eax, eax
je 0x622fff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [edi], 0
mov eax, dword [esi + 0xec]
lea edi, [esi + 0xec]
test eax, eax
je 0x62301d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [edi], 0
mov eax, dword [esi + 0xf0]
lea ebp, [esi + 0xf0]
test eax, eax
je 0x62303c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp], 0
mov ebx, 0x7c
push ebx
lea eax, [esp + 0x34]
push 0
push eax
call fcn.00802690
mov eax, dword [esi + 0xe0]
add esp, 0xc
lea edx, [esp + 0x30]
mov dword [esp + 0x30], ebx
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
test eax, eax
js 0x6234e1
cmp dword [esp + 0x84], 8
jbe 0x6234e1
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ebx
lea eax, [esp + 0x34]
push 0
push eax
mov dword [esi + 0xd8], ecx
mov dword [esi + 0xdc], edx
call fcn.00802690
mov eax, dword [esi + 0xe0]
add esp, 0xc
push 0
push edi
lea edx, [esp + 0x38]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], 1
mov dword [esp + 0xa0], 0x200
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
xor ecx, ecx
mov dword [esp + 0x18], eax
cmp eax, ecx
jl 0x6234e6
mov dword [esp + 0x14], ecx
mov eax, dword [esi + 0xe0]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push ecx
mov dword [esp + 0x4bc], ecx
lea ecx, [esp + 0x18]
push ecx
push 0
push eax
call edx
mov dword [esp + 0x18], eax
test eax, eax
jns 0x62312a
mov esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4b8], 0xffffffff
test eax, eax
je 0x623123
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
jmp 0x6234e6
mov edx, dword [esi + 0x28]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push edx
push 0
push eax
mov eax, dword [ecx + 0x20]
call eax
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x70]
call eax
push ebx
lea ecx, [esp + 0x34]
push 0
push ecx
call fcn.00802690
mov edx, dword [esi + 0xd8]
mov eax, dword [esi + 0xdc]
add esp, 0xc
push 0
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0xe0]
push ebp
lea edx, [esp + 0x38]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], 7
mov dword [esp + 0xa0], 0x6000
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov dword [esp + 0x18], eax
test eax, eax
js 0x623106
mov eax, dword [esp + 0x14]
test eax, eax
je 0x6231c0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], 0
mov eax, dword [esi + 0xe0]
mov ecx, dword [eax]
push 0
lea edx, [esp + 0x18]
push edx
push 0
push eax
mov eax, dword [ecx + 0x10]
call eax
mov dword [esp + 0x18], eax
test eax, eax
js 0x623106
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
lea edx, [esp + 0xac]
push edx
mov edi, eax
push 0x400
push edi
call dword [sym.imp.GDI32.dll_GetRegionData]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push 0
lea edx, [esp + 0xb0]
push edx
push eax
mov eax, dword [ecx + 0x1c]
call eax
mov eax, dword [ebp]
mov edx, dword [esp + 0x14]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x70]
call eax
mov ebx, dword [esp + 0x20]
mov ebp, dword [ebp]
mov eax, dword [esi + 0xe4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
push ebx
push ebp
push 0x43c778
push eax
call edx
mov dword [esp + 0x18], eax
test eax, eax
js 0x623106
mov dword [esp + 0x1c], 0
lea eax, [esi + 0x88]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov byte [esp + 0x4b8], 1
test eax, eax
je 0x62328f
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
call fcn.00533c70
mov eax, dword [eax + 0x7c]
dec eax
cmp eax, 8
ja case.default.0x62329d
jmp dword [eax*4 + 0x623510]
mov edi, 0x400
mov ebp, 0x300
jmp 0x623318
mov edi, 0x320
mov ebp, 0x258
jmp 0x623318
mov edi, 0x280
mov ebp, 0x1e0
jmp 0x623318
mov edi, 0x200
lea ebp, [edi - 0x80]
jmp 0x623318
mov edi, 0x180
lea ebp, [edi - 0x60]
jmp 0x623318
mov edi, 0xa00
mov ebp, 0x640
jmp 0x623318
mov edi, 0x780
mov ebp, 0x438
jmp 0x623318
mov edi, 0x528
mov ebp, 0x384
jmp 0x623318
mov edi, 0x500
mov ebp, 0x2d0
jmp 0x623318
mov edi, dword [esi + 0xd8]
mov ebp, dword [esi + 0xdc]
mov eax, dword [esi + 0x84]
add esi, 0x84
mov dword [esp + 0x28], esi
test eax, eax
je 0x623339
mov ecx, dword [ebx]
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0x20]
call eax
jmp 0x6233a9
push 0x54
call fcn.007c8529
mov ebx, eax
add esp, 4
mov dword [esp + 0x24], ebx
mov byte [esp + 0x4b8], 2
test ebx, ebx
je 0x623378
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx]
call fcn.00533c70
movzx edx, byte [eax + 0x80]
push edx
push ebp
push edi
push esi
mov ecx, ebx
call fcn.00634ac0
mov esi, dword [esp + 0x28]
jmp 0x62337a
xor eax, eax
mov byte [esp + 0x4b8], 1
test eax, eax
je 0x62338b
add eax, 0xc
jmp 0x62338d
xor eax, eax
push eax
mov ecx, esi
call fcn.005b1960
cmp dword [esi], 0
je 0x6234a7
cmp dword [esp + 0x18], 0
jl 0x6234a7
mov dword [esp + 0x18], 0
call fcn.00533c70
cmp dword [eax + 0x78], 0
jle 0x623406
push 0xf8
call fcn.007c8529
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov byte [esp + 0x4b8], 3
test edi, edi
je 0x623431
mov eax, dword [esi]
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.00533c70
xor edx, edx
cmp byte [eax + 0x81], dl
sete dl
push edx
call fcn.00533c70
mov eax, dword [eax + 0x78]
push eax
mov ecx, edi
call fcn.00631b10
jmp 0x623433
push 0x70
call fcn.007c8529
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x4b8], 4
test eax, eax
je 0x623431
mov esi, dword [esi]
lea ecx, [esp + 0x18]
push ecx
push esi
mov ecx, eax
call fcn.00631a20
jmp 0x623433
xor eax, eax
mov byte [esp + 0x4b8], 1
test eax, eax
je 0x623444
add eax, 0xc
jmp 0x623446
xor eax, eax
mov esi, dword [esp + 0x2c]
push eax
mov ecx, esi
call fcn.005b1960
mov eax, dword [esi]
test eax, eax
je 0x6234a7
cmp dword [esp + 0x18], 0
jl 0x6234a7
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x623474
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x4b8], 0
test ecx, ecx
je 0x623488
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push ecx
call eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4b8], 0xffffffff
test eax, eax
je 0x6234a3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x6234e6
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x4b8], 0
test eax, eax
je 0x6234bf
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4b8], 0xffffffff
test eax, eax
je 0x6234da
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x80004005
jmp 0x6234e6
mov eax, 0x88760078
mov ecx, dword [esp + 0x4b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x498]
xor ecx, esp
call fcn.0080262b
add esp, 0x4a8
ret