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

Disassembly:
push 0xffffffffffffffff
push 0x528218
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
push ebp
xor ebx, ebx
push esi
xor ebp, ebp
push edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], 0x557250
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 8]
cmp eax, ebx
mov dword [esp + 0x80], ebx
jle 0x4b26a1
test ebx, ebx
mov ebp, dword [esp + 0x3c]
jl 0x4b2dfa
cmp ebx, eax
jge 0x4b2dfa
mov ecx, dword [esp + 0x88]
mov edx, dword [ecx + 4]
mov esi, dword [edx + ebx*4]
mov edi, dword [esp + 0x98]
mov ecx, dword [esi + 0xe0]
lea eax, [edx + ebx*4]
mov eax, edi
neg eax
sbb eax, eax
and eax, 0xfffffffa
add eax, 0x10
test cl, 0x40
je 0x4b25aa
or eax, 1
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 0x68]
cmp dword [edx + 0x58], 0
je 0x4b25bd
cmp dword [edx + 0x68], 0
je 0x4b25c7
test cl, 0x20
je 0x4b25c7
or eax, 0x80
mov edx, dword [esi]
push 0
push eax
mov eax, dword [esp + 0x9c]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call dword [edx + 0x1e0]
test edi, edi
mov edx, dword [esi + 0x180]
je 0x4b2603
mov ecx, dword [esp + 0x90]
mov eax, dword [edx + 0x18]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x14]
jmp 0x4b2619
mov ecx, dword [esp + 0x8c]
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x1c]
mov eax, dword [ecx]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + 4]
mov edi, dword [esp + 0x30]
add edx, eax
add edi, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], eax
xor eax, eax
cmp ebp, eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov esi, ebp
jl 0x4b2dfa
push 0xffffffffffffffff
inc ebp
push ebp
lea ecx, [esp + 0x3c]
call fcn.004b1d00
mov edx, dword [esp + 0x88]
lea edi, [esi + esi*2]
mov esi, dword [esp + 0x38]
shl edi, 4
add edi, esi
mov ecx, 0xc
lea esi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [edx + 8]
inc ebx
cmp ebx, eax
jl 0x4b2565
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x98]
test eax, eax
jne 0x4b26b5
lea ecx, [esp + 0x34]
call fcn.004b1b60
mov eax, dword [esp + 0x38]
push 0x4b1a50
push 0x30
push ebp
push eax
call fcn.004f8af0
add esp, 0x10
or ecx, 0xffffffff
xor eax, eax
xor edi, edi
test ebp, ebp
mov ebx, 1
jle 0x4b2727
mov esi, dword [esp + 0x38]
add esi, 4
test edi, edi
jl 0x4b2dfa
cmp edi, ebp
jge 0x4b2dfa
mov edx, dword [esi]
cmp edx, eax
jge 0x4b287b
cmp ecx, dword [esi + 0x20]
jl 0x4b2708
test ebx, ebx
je 0x4b287b
push 0
sub eax, edx
push eax
push esi
mov ebx, 1
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x20]
inc edi
add esi, 0x30
cmp edi, ebp
jl 0x4b26e1
mov eax, dword [esp + 0x94]
lea edi, [ebp - 1]
or edx, 0xffffffff
test edi, edi
mov dword [esp + 0x88], 1
jl 0x4b27a8
mov esi, dword [esp + 0x38]
lea ecx, [edi + edi*2]
shl ecx, 4
test edi, edi
lea esi, [ecx + esi + 4]
jl 0x4b2dfa
cmp edi, ebp
jge 0x4b2dfa
mov ecx, dword [esi + 8]
mov ebx, ecx
sub ebx, eax
test ebx, ebx
jle 0x4b2882
cmp edx, dword [esi + 0x20]
jl 0x4b2784
mov edx, dword [esp + 0x88]
test edx, edx
je 0x4b2882
push 0
sub eax, ecx
push eax
push esi
mov dword [esp + 0x94], 1
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi]
mov edx, dword [esi + 0x20]
dec edi
sub esi, 0x30
test edi, edi
jge 0x4b2759
xor eax, eax
xor edi, edi
test ebp, ebp
jle 0x4b27e9
mov esi, dword [esp + 0x38]
mov ebx, dword [sym.imp.USER32.dll_OffsetRect]
add esi, 4
lea ecx, [ecx]
test edi, edi
jl 0x4b2dfa
cmp edi, ebp
jge 0x4b2dfa
mov ecx, dword [esi]
cmp ecx, eax
jge 0x4b27de
push 0
sub eax, ecx
push eax
push esi
call ebx
mov eax, dword [esi + 8]
inc edi
add esi, 0x30
cmp edi, ebp
jl 0x4b27c0
cmp eax, dword [esp + 0x94]
jle 0x4b29b5
xor eax, eax
cmp ebp, eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], eax
jle 0x4b2910
mov ebp, dword [esp + 0x38]
add ebp, 0x28
mov ecx, eax
test ecx, ecx
jl 0x4b2dfa
cmp ecx, dword [esp + 0x3c]
jge 0x4b2dfa
mov eax, dword [esp + 0x98]
mov edi, dword [ebp - 0x28]
mov ebx, dword [edi + 0xe0]
neg eax
sbb eax, eax
and eax, 0xfffffffa
add eax, 0x10
test bl, 0x40
mov edx, eax
je 0x4b284d
or edx, 1
mov esi, dword [esp + 0x10]
mov esi, dword [esi + 0x68]
cmp dword [esi + 0x58], 0
je 0x4b2860
cmp dword [esi + 0x68], 0
je 0x4b286b
test bl, 0x20
je 0x4b286b
or edx, 0x80
test dl, dl
js 0x4b2892
mov edx, dword [esp + 0x94]
mov dword [ebp], edx
jmp 0x4b28e3
xor ebx, ebx
jmp 0x4b2719
mov dword [esp + 0x88], 0
jmp 0x4b279b
test bl, 0x40
je 0x4b289a
or eax, 1
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x4b28a8
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x4b28b2
test bl, 0x20
je 0x4b28b2
or eax, 0x80
mov edx, dword [edi]
push 0
push eax
push 1
lea eax, [esp + 0x38]
push eax
mov ecx, edi
call dword [edx + 0x1e0]
mov eax, dword [esp + 0x98]
test eax, eax
mov eax, dword [esp + 0x2c]
jne 0x4b28d9
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x88]
mov dword [ebp], eax
mov eax, dword [esp + 0x8c]
mov dword [ebp + 4], eax
add eax, dword [ebp]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x3c]
inc ecx
add ebp, 0x30
cmp ecx, eax
mov dword [esp + 0x88], ecx
jl 0x4b2817
mov ebp, eax
mov esi, dword [esp + 0x94]
lea edi, [ebp - 1]
test edi, edi
jl 0x4b29b5
mov edx, dword [esp + 0x38]
lea ecx, [edi + edi*2]
shl ecx, 4
test edi, edi
lea ecx, [ecx + edx + 4]
jl 0x4b2dfa
cmp edi, dword [esp + 0x3c]
jge 0x4b2dfa
mov eax, dword [esp + 0x98]
test eax, eax
je 0x4b2952
mov eax, dword [ecx + 0x10]
jmp 0x4b2955
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx]
cmp eax, edx
jle 0x4b295d
mov eax, edx
sub edx, dword [ecx + 8]
add edx, esi
cmp eax, edx
jge 0x4b2968
mov eax, edx
mov ebx, dword [ecx + 0x28]
cmp eax, ebx
jge 0x4b2971
mov eax, ebx
mov edx, dword [ecx + 0x24]
mov ebp, esi
sub ebp, eax
cmp ebp, edx
jge 0x4b2980
mov eax, esi
sub eax, edx
mov ebp, esi
sub ebp, eax
cmp ebp, edx
jl 0x4b298c
cmp eax, ebx
jge 0x4b2997
cmp dword [esp + 0x3c], 1
jne 0x4b2a1d
xor edx, edx
test eax, eax
setl dl
mov dword [ecx + 8], esi
sub ecx, 0x30
dec edx
and eax, edx
mov dword [ecx + 0x30], eax
dec edi
test edi, edi
mov esi, eax
jge 0x4b2938
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x98]
xor esi, esi
cmp ebx, esi
jne 0x4b29cb
lea ecx, [esp + 0x34]
call fcn.004b1b60
cmp ebp, esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0xa0], esi
mov dword [esp + 0x88], esi
jle 0x4b2b22
add eax, 0x10
mov dword [esp + 0x8c], eax
nop
mov eax, dword [esp + 0x88]
test eax, eax
jl 0x4b2dfa
cmp eax, ebp
jge 0x4b2dfa
test ebx, ebx
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax - 0x10]
je 0x4b2a7c
mov edi, dword [eax - 4]
mov edx, dword [eax - 0xc]
jmp 0x4b2a81
mov ecx, dword [esp + 0x3c]
lea eax, [ecx - 1]
test eax, eax
jl 0x4b2dfa
cmp eax, ecx
jge 0x4b2dfa
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xa0]
lea eax, [eax + eax*2]
shl eax, 4
add eax, ecx
test ecx, ecx
mov eax, dword [eax + 0x24]
mov dword [edx], eax
mov dword [esp + 0x80], 0xffffffff
je 0x4b2a64
push ecx
call fcn.00500fd3
add esp, 4
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
add esp, 0x74
ret 0x1c
mov edi, dword [eax]
mov edx, dword [eax - 8]
sub edi, edx
mov edx, dword [ecx + 0xe0]
mov eax, ebx
neg eax
sbb eax, eax
and eax, 0xfffffffa
add eax, 0x10
test dl, 0x40
je 0x4b2a9d
or eax, 1
mov esi, dword [esp + 0x10]
mov esi, dword [esi + 0x68]
cmp dword [esi + 0x58], 0
je 0x4b2ab0
cmp dword [esi + 0x68], 0
je 0x4b2aba
test dl, 0x20
je 0x4b2aba
or eax, 0x80
mov edx, dword [ecx]
push 0
push eax
push edi
lea eax, [esp + 0x38]
push eax
call dword [edx + 0x1e0]
test ebx, ebx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov eax, edx
jne 0x4b2adb
mov eax, ecx
cmp dword [esp + 0xa0], eax
jg 0x4b2af6
test ebx, ebx
mov dword [esp + 0xa0], edx
jne 0x4b2af6
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
inc eax
add edx, 0x30
cmp eax, ebp
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
jl 0x4b29f0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x9c]
cmp dword [ecx], 0
je 0x4b2dc6
xor edx, edx
test ebp, ebp
mov dword [esp + 0x88], edx
jle 0x4b2dc6
test edx, edx
mov ebp, dword [esp + 0x38]
jl 0x4b2dfa
cmp edx, dword [esp + 0x3c]
jge 0x4b2dfa
lea eax, [edx + edx*2]
shl eax, 4
mov ebx, dword [eax + ebp]
mov ecx, dword [ebx + 0xe0]
add eax, ebp
lea esi, [eax + 4]
mov eax, dword [esp + 0x98]
neg eax
sbb eax, eax
and eax, 0xfffffffa
add eax, 0x10
test cl, 0x40
je 0x4b2b86
or eax, 1
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 0x68]
cmp dword [edi + 0x58], 0
je 0x4b2b99
cmp dword [edi + 0x68], 0
je 0x4b2ba3
test cl, 0x20
je 0x4b2ba3
or eax, 0x80
or eax, 0x40
test ecx, 0x100000
mov dword [esp + 0x8c], eax
je 0x4b2cd7
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x3c]
test eax, eax
lea eax, [edi - 1]
je 0x4b2c54
cmp edx, eax
jne 0x4b2bdc
mov eax, dword [esp + 0x94]
jmp 0x4b2bfa
lea eax, [edx + 1]
test eax, eax
jl 0x4b2dfa
cmp eax, edi
jge 0x4b2dfa
lea eax, [eax + eax*2]
shl eax, 4
add eax, ebp
mov eax, dword [eax + 4]
test edx, edx
mov dword [esi + 8], eax
jne 0x4b2c0a
xor eax, eax
mov dword [esi], eax
jmp 0x4b2ccf
lea eax, [edx - 1]
test eax, eax
jl 0x4b2dfa
cmp eax, edi
jge 0x4b2dfa
mov edx, dword [esi]
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, ebp
cmp dword [ecx + 0xc], edx
jge 0x4b2c4e
test eax, eax
jl 0x4b2dfa
cmp eax, edi
jge 0x4b2dfa
lea eax, [eax + eax*2]
shl eax, 4
add eax, ebp
mov eax, dword [eax + 0xc]
mov dword [esi], eax
jmp 0x4b2ccf
mov eax, edx
mov dword [esi], eax
jmp 0x4b2ccf
cmp edx, eax
jne 0x4b2c61
mov eax, dword [esp + 0x94]
jmp 0x4b2c7f
lea eax, [edx + 1]
test eax, eax
jl 0x4b2dfa
cmp eax, edi
jge 0x4b2dfa
lea eax, [eax + eax*2]
shl eax, 4
add eax, ebp
mov eax, dword [eax + 8]
test edx, edx
mov dword [esi + 0xc], eax
jne 0x4b2c8a
xor eax, eax
jmp 0x4b2ccc
lea eax, [edx - 1]
test eax, eax
jl 0x4b2dfa
cmp eax, edi
jge 0x4b2dfa
mov edx, dword [esi + 4]
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, ebp
cmp dword [ecx + 0x10], edx
jge 0x4b2cca
test eax, eax
jl 0x4b2dfa
cmp eax, edi
jge 0x4b2dfa
lea eax, [eax + eax*2]
shl eax, 4
add eax, ebp
mov eax, dword [eax + 0x10]
jmp 0x4b2ccc
mov eax, edx
mov dword [esi + 4], eax
or dword [esp + 0x8c], 1
mov eax, dword [esp + 0x98]
test eax, eax
je 0x4b2ce9
mov eax, dword [esi + 8]
mov ecx, dword [esi]
jmp 0x4b2cef
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov edx, dword [ebx]
sub eax, ecx
mov ecx, dword [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x90]
push ecx
push eax
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call dword [edx + 0x1e0]
mov eax, dword [esi]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov ecx, dword [esi + 4]
mov ebp, esi
mov dword [ebp], eax
add edx, eax
mov dword [ebp + 4], ecx
add edi, ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], edi
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x50]
test ah, 0x28
je 0x4b2d40
xor eax, eax
jmp 0x4b2d58
test ah, 0x82
je 0x4b2d4c
mov eax, 1
jmp 0x4b2d58
and eax, 0x1400
neg eax
sbb eax, eax
add eax, 3
mov ecx, dword [ebx + 0x180]
mov dword [ecx + 0x14], eax
push ebx
lea ecx, [esp + 0x20]
call fcn.00467140
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
call fcn.005057e3
push esi
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
jne 0x4b2da7
mov ecx, dword [ebx + 0x1c]
mov edx, dword [esp + 0x9c]
push esi
push ecx
push edx
call fcn.004fc4b1
mov eax, dword [ebx]
push 1
push 0
mov ecx, ebx
call dword [eax + 0x190]
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x3c]
inc edx
cmp edx, eax
mov dword [esp + 0x88], edx
jl 0x4b2b43
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x80], 0xffffffff
je 0x4b2dde
push eax
call fcn.00500fd3
add esp, 4
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x74
ret 0x1c
call fcn.004f96a8
int3