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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf0
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
and dword [ebp - 4], 0
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x30]
and dword [esi + 0x50], 0
mov dword [ebp - 0x38], edi
mov eax, dword [ebx]
mov ecx, dword [edi + 0x34]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], ecx
mov eax, dword [eax]
mov dword [ebp - 0x34], ebx
mov ecx, eax
and ecx, 0x20000000
jne 0x7299a767
test ah, 1
jne 0x7299a767
cmp dword [ebp + 0x10], 0
jne 0x7299a2db
mov edx, dword [ebx]
test byte [edx + 3], 8
je 0x7299a2db
mov edx, dword [edi + 0x58]
test byte [edx + 0x99], 0x20
jne 0x7299a767
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x7299a2f1
mov eax, dword [eax + 0x3c]
test eax, eax
jne 0x7299a2ee
call fcn.729ca070
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
and dword [ebp + 8], 0
and dword [ebp - 0xc], 0
mov eax, dword [eax + 0x18]
test eax, eax
je 0x7299a30e
lea ecx, [ebp - 0xc]
push ecx
lea ecx, [ebp + 8]
push ecx
push esi
call eax
mov eax, dword [edi + 0x58]
test byte [eax + 0x99], 0x10
jne 0x7299a32e
test eax, eax
je 0x7299a332
mov eax, dword [eax + 0x74]
mov eax, dword [eax]
mov al, byte [eax + 0x37]
cmp al, 0x1d
je 0x7299a32e
cmp al, 0x1f
jne 0x7299a332
and dword [ebp - 0xc], 0xfffffffb
cmp dword [ebp - 4], 0
je 0x7299a4db
mov eax, dword [esi + 0x24]
or byte [ebp + 0xb], 0x44
shr eax, 0x10
test al, 1
je 0x7299a34e
or byte [ebp + 0xa], 1
mov eax, dword [esi + 0x24]
mov ecx, eax
shr ecx, 7
test cl, 1
je 0x7299a35f
or byte [ebp + 0xb], 2
test eax, 0x800000
jne 0x7299a37e
cmp dword [0x72a4e838], 0
je 0x7299a37a
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
cmp byte [eax + 0x37], 8
je 0x7299a37e
or byte [ebp + 0xb], 8
test byte [ebx + 0x2c], 8
je 0x7299a50f
mov eax, dword [ebx]
mov al, byte [eax + 0x37]
cmp al, 0x15
jne 0x7299a3a2
test byte [esi + 0x13c], 4
jne 0x7299a3af
cmp al, al
je 0x7299a50f
test byte [esi + 0x144], 8
je 0x7299a50f
mov dword [ebp - 0x1c], 1
push dword [ebp - 0x1c]
lea eax, [ebp - 0xf0]
push 0x81
push eax
push ebx
call fcn.7299bbaa
test byte [ebx + 0x2c], 1
jne 0x7299a3df
push ebx
call fcn.7299b98a
test eax, eax
jl 0x7299a4d3
mov eax, dword [ebp - 0x20]
mov dword [eax + 0xe48], esi
mov eax, dword [esi + 0x28]
mov ecx, dword [eax]
mov eax, 0x8000000
test dword [ecx], eax
je 0x7299a548
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx + 0x58]
test byte [ecx + 0x99], 0x10
je 0x7299a548
mov eax, dword [esi + 0x84]
mov edi, 0x80000000
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x72a4e7d4]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 8]
push esi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x50], edi
call fcn.7298f5d2
movsx eax, ax
cmp eax, 2
je 0x7299a44f
cmp eax, 5
jne 0x7299a518
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x48], edi
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [esi + 0x30]
push 0
push 0x220
mov eax, dword [eax + 0x2c]
push dword [eax + 0x3c]
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
test edi, edi
je 0x7299a485
push 0
push edi
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
push esi
call fcn.7298f642
push 0xffffffffffffffec
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
or eax, dword [ebp - 0xc]
push eax
push 0xffffffffffffffec
push edi
call dword [sym.imp.USER32.dll_SetWindowLongA]
test edi, edi
mov dword [esi + 0x3c], edi
jne 0x7299a4b0
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0xa0], esi
jne 0x7299a4b0
and dword [eax + 0x40], edi
mov eax, dword [ebp - 0x20]
or byte [esi + 0x27], 1
and dword [eax + 0xe48], 0
test edi, edi
jne 0x7299a6f3
call fcn.72991cfa
test eax, eax
jge 0x7299a758
push eax
call fcn.7299148f
jmp 0x7299a4fb
cmp esi, dword [edi + 0xa0]
jne 0x7299a502
mov ecx, dword [edi + 0x1c]
lea eax, [edi + 0x1c]
push eax
call dword [ecx + 0x18]
test eax, eax
mov dword [ebp - 4], eax
jne 0x7299a34e
push 7
pop eax
pop edi
pop esi
pop ebx
leave
ret 0xc
call fcn.7294a0ba
mov dword [ebp - 4], eax
jmp 0x7299a34e
and dword [ebp - 0x1c], 0
jmp 0x7299a3b6
lea eax, [ebp - 0x30]
push eax
push esi
call fcn.7298f5fb
push 0
lea eax, [ebp - 0x30]
push dword [ebp - 0x40]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
jmp 0x7299a455
cmp dword [ebp + 0x10], 0
jne 0x7299a57b
mov ecx, dword [ebp - 0x10]
test dword [ecx], eax
je 0x7299a57b
mov eax, dword [esi + 0x30]
test byte [eax + 0x20], 0x10
lea eax, [ebp - 0x30]
push eax
jne 0x7299a69e
push dword [ebp - 4]
push esi
call fcn.7298facb
lea eax, [ebp - 0x30]
lea ecx, [esi + 0x58]
push eax
call fcn.7298bfe5
mov edx, dword [0x72a4e808]
mov ecx, dword [esi + 0x58]
call fcn.72997242
mov edx, dword [0x72a4e804]
mov ecx, dword [esi + 0x5c]
mov ebx, eax
call fcn.72997242
mov edx, dword [0x72a4e808]
mov ecx, dword [esi + 0x60]
mov dword [ebp - 8], eax
call fcn.72997242
mov edx, dword [0x72a4e804]
mov ecx, dword [esi + 0x64]
mov dword [ebp - 0x14], eax
call fcn.72997242
mov ecx, 0xffffc000
mov dword [ebp - 0x18], eax
cmp ebx, ecx
mov eax, 0x3fff
jge 0x7299a6c0
mov ebx, ecx
cmp dword [ebp - 8], ecx
jge 0x7299a6cf
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x14], eax
jle 0x7299a5e6
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x18], eax
jle 0x7299a5ee
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
test byte [eax + 3], 8
je 0x7299a60f
push esi
call fcn.7298f531
cmp ax, 3
jne 0x7299a60f
mov edi, 0x80000000
mov dword [ebp - 8], edi
mov ebx, edi
mov eax, dword [ebp - 0x34]
mov ax, word [eax + 8]
test ax, ax
je 0x7299a6e8
cmp dword [ebp - 0x1c], 0
je 0x7299a6e0
mov eax, dword [ebp - 0x34]
movzx edi, word [eax + 0xa]
push 0
push dword [0x72a4e7d4]
push dword [ebp + 0xc]
call fcn.729999e1
push eax
push dword [ebp - 4]
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push dword [ebp - 8]
push ebx
push dword [ebp + 8]
push dword [esi + 0x84]
push edi
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edi, eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
test byte [eax + 3], 8
je 0x7299a49b
push esi
call fcn.7298f531
cmp ax, 3
jne 0x7299a49b
lea eax, [ebp - 0x6c]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x6c]
lea ecx, [esi + 0x58]
push eax
call fcn.7298bfe5
jmp 0x7299a49b
push esi
call fcn.7298f5fb
push dword [ebp - 0xc]
push esi
call fcn.7298f937
push eax
lea eax, [ebp - 0x30]
push dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
jmp 0x7299a56f
cmp ebx, eax
jle 0x7299a5d2
mov ebx, eax
jmp 0x7299a5d2
cmp dword [ebp - 8], eax
jle 0x7299a5de
mov dword [ebp - 8], eax
jmp 0x7299a5de
movzx edi, ax
jmp 0x7299a630
lea edi, [ebp - 0xf0]
jmp 0x7299a630
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x7299a714
mov ecx, dword [eax + 0x28]
mov ecx, dword [ecx]
cmp byte [ecx + 0x37], 0x13
jne 0x7299a714
test byte [eax + 0x167], 8
je 0x7299a714
push esi
call fcn.7298bc4e
test byte [esi + 0x24], 0x60
je 0x7299a72e
push 1
push esi
call fcn.72a0078e
test eax, eax
jl 0x7299a4cb
or byte [esi + 0x27], 8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
sar eax, 0x1f
test al, al
je 0x7299a746
cmp dword [ebp + 0x10], 0
push esi
je 0x7299a75f
call fcn.72995876
cmp dword [esi + 0x78], 0
je 0x7299a758
test byte [esi + 0x27], 0x10
jne 0x7299a758
push esi
call fcn.729934c0
xor eax, eax
jmp 0x7299a4fb
push edi
call fcn.72995636
jmp 0x7299a746
mov edx, eax
shl edx, 0x17
sar edx, 0x1f
test dl, dl
je 0x7299a7a0
mov edx, dword [0x72a4e804]
mov ecx, dword [esi + 0x5c]
call fcn.72997242
mov edx, dword [0x72a4e808]
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x6c], eax
call fcn.72997242
push dword [ebp + 0xc]
mov dword [esi + 0x68], eax
push esi
call fcn.7299a24d
jmp 0x7299a746
test ecx, ecx
jne 0x7299a746
test eax, 0x80000000
je 0x7299a746
lea eax, [ebp - 0x30]
push eax
push esi
call fcn.7298f5fb
lea eax, [ebp - 0x30]
lea ecx, [esi + 0x58]
push eax
call fcn.7298bfe5
push esi
push 0
jmp 0x7299a760