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

Disassembly:
push 0xffffffffffffffff
push 0x23bdb098
mov eax, dword fs:[0]
push eax
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov eax, dword [0x23c68938]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
mov esi, ecx
mov ebp, dword [esp + 0x68]
push 1
mov ecx, ebp
call fcn.23a37fbf
mov ecx, esi
call fcn.23ae4e70
mov edx, dword [eax]
mov dword [esp + 0x24], eax
mov ecx, eax
mov eax, dword [edx + 0xec]
push esi
call eax
push eax
push ebp
lea ecx, [esp + 0x40]
call fcn.23a677a0
mov ecx, esi
mov dword [esp + 0x60], 0
call fcn.23b45e30
mov edx, dword [eax]
push esi
mov ecx, eax
mov eax, dword [edx + 0x54]
push ebp
call eax
mov ecx, esi
call fcn.23b45ea0
test eax, eax
je 0x23b4744c
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esi + 0x1c8]
push edx
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x23b4744c
mov ecx, esi
call fcn.23b45e30
mov ebx, eax
mov edi, dword [ebx]
mov ecx, esi
add edi, 0x74
call fcn.23b45e90
mov ecx, dword [eax + 0x1c]
mov edx, dword [edi]
push ecx
push esi
push ebp
mov ecx, ebx
call edx
jmp 0x23b47482
cmp dword [esi + 0x260], 0
je 0x23b47482
lea eax, [esp + 0x6c]
push eax
lea ecx, [esi + 0x1c8]
push ecx
lea edx, [esp + 0x30]
push edx
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x23b47482
mov ecx, esi
call fcn.23b45e30
mov edx, dword [eax]
push esi
mov ecx, eax
mov eax, dword [edx + 0x78]
push ebp
call eax
mov ecx, esi
call fcn.23b45ec0
mov ebx, eax
mov dword [esp + 0x14], ebx
call fcn.23b46060
test eax, eax
je 0x23b474d0
call fcn.23b45e30
mov ecx, dword [esi + 0x1b8]
mov edi, dword [eax]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esi + 0x1bc]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 0x1c0]
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x1c4]
mov dword [edx + 0xc], ecx
mov edx, dword [edi + 0x50]
push ebx
push ebp
mov ecx, eax
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x1a0]
mov ecx, esi
call edx
mov edi, eax
neg edi
sbb edi, edi
mov ecx, esi
inc edi
call fcn.23b462b0
mov dword [eax + 0xa0], edi
cmp dword [esi + 0x234], 0
je 0x23b4756f
lea edi, [esi + 0x1a8]
push edi
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x30]
push ecx
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x23b4756f
cmp dword [esi + 0x210], 0
je 0x23b4756f
mov eax, dword [esi + 0x234]
test eax, eax
je 0x23b47532
add eax, 0x144
mov dword [esp + 0x68], eax
jmp 0x23b4753a
mov dword [esp + 0x68], 0
mov ecx, esi
call fcn.23b462b0
mov ecx, dword [edi]
mov ebx, dword [eax]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [edi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 8]
mov dword [edx + 8], ecx
mov ecx, dword [edi + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 0x78]
push ebp
mov ecx, eax
mov eax, dword [ebx + 0x50]
push edx
call eax
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x23b47595
mov ecx, esi
call fcn.23b46060
test eax, eax
je 0x23b47595
mov ecx, dword [ebx + 0x8c]
mov eax, dword [ecx + 0x28]
xor ebx, ebx
mov dword [esp + 0x68], ecx
test eax, eax
jg 0x23b47844
mov ecx, esi
mov dword [esp + 0x68], 1
xor ebx, ebx
call fcn.23ae57b0
test eax, eax
jle 0x23b47664
mov edi, edi
push ebx
mov ecx, esi
call fcn.23ae57c0
mov edi, eax
mov edx, dword [edi]
mov eax, dword [edx + 0x80]
push 0
mov ecx, edi
call eax
test eax, eax
je 0x23b47654
cmp dword [edi + 0x118], 0
jne 0x23b47654
cmp dword [edi + 0x58], 0
je 0x23b475fe
cmp dword [esp + 0x68], 0
jne 0x23b475fe
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov edx, dword [edx + 0x84]
push 1
push edi
push esi
push ebp
lea eax, [esp + 0x24]
push eax
call edx
mov eax, dword [edi + 0x80]
mov dword [esp + 0x28], eax
mov ecx, dword [edi + 0x84]
mov dword [esp + 0x2c], ecx
mov edx, dword [edi + 0x88]
mov dword [esp + 0x30], edx
mov eax, dword [edi + 0x8c]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x70]
mov dword [esp + 0x38], eax
push edx
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x74], 0
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x23b47654
mov edx, dword [edi]
mov eax, dword [edx + 0xa0]
push ebp
mov ecx, edi
call eax
mov ecx, esi
inc ebx
call fcn.23ae57b0
cmp ebx, eax
jl 0x23b475b0
mov ecx, esi
call fcn.23ae4e30
mov ebx, eax
test ebx, ebx
je 0x23b47813
cmp dword [ebx + 0x5c], 0
je 0x23b47813
mov ecx, ebx
call fcn.23ae26a0
push eax
push 0x23c6d144
call fcn.23a37db1
mov edi, eax
add esp, 8
test edi, edi
je 0x23b4770b
cmp dword [edi + 0xc0], esi
jne 0x23b4770b
mov edx, dword [edi]
mov eax, dword [edx + 0x80]
push 0
mov ecx, edi
call eax
test eax, eax
je 0x23b4770b
mov ecx, dword [edi + 0x80]
mov edx, dword [edi + 0x84]
mov eax, dword [edi + 0x88]
mov dword [esp + 0x14], ecx
mov ecx, dword [edi + 0x8c]
push 0
mov dword [esp + 0x1c], edx
push 0
lea edx, [esp + 0x1c]
mov dword [esp + 0x28], ecx
push edx
mov ecx, ebp
mov dword [esp + 0x28], eax
call fcn.23a3990d
push 0xffffffffffffffff
push 0xffffffffffffffff
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_InflateRect]
push 0
push 0
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
call fcn.23a3990d
mov ecx, ebx
call fcn.23ae26a0
push eax
push 0x23c6e498
call fcn.23a37db1
mov edi, eax
add esp, 8
test edi, edi
je 0x23b47784
cmp dword [edi + 0x94], esi
jne 0x23b47784
mov ecx, edi
call fcn.23aa17b0
test eax, eax
je 0x23b47784
mov eax, dword [edi + 0x48]
mov edx, dword [edi + 0x44]
mov ecx, dword [edi + 0x4c]
push 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov edx, dword [edi + 0x50]
push 0
lea eax, [esp + 0x1c]
mov dword [esp + 0x24], ecx
push eax
mov ecx, ebp
mov dword [esp + 0x2c], edx
call fcn.23a3990d
push 0xffffffffffffffff
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_InflateRect]
push 0
push 0
lea edx, [esp + 0x1c]
push edx
mov ecx, ebp
call fcn.23a3990d
mov ecx, ebx
call fcn.23ae26a0
push eax
push 0x23c6e844
call fcn.23a37db1
mov edi, eax
add esp, 8
test edi, edi
je 0x23b477fa
cmp dword [edi + 0x5c], esi
jne 0x23b477fa
mov ecx, edi
call fcn.23b55400
test eax, eax
je 0x23b477fa
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x34]
mov edx, dword [edi + 0x3c]
push 0
mov dword [esp + 0x1c], ecx
push 0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x40]
push ecx
mov ecx, ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
call fcn.23a3990d
push 0xffffffffffffffff
push 0xffffffffffffffff
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_InflateRect]
push 0
push 0
lea eax, [esp + 0x1c]
push eax
mov ecx, ebp
call fcn.23a3990d
lea ecx, [esi + 0xf8]
push ecx
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x23b47813
push ebp
mov ecx, esi
call fcn.23ae84a0
lea ecx, [esp + 0x38]
mov dword [esp + 0x60], 0xffffffff
call fcn.23a677e0
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 0x14
mov ecx, dword [esp + 0x68]
test ebx, ebx
jl 0x23b47860
cmp ebx, eax
jge 0x23b47860
cmp ebx, dword [ecx + 0x28]
jge 0x23b478ea
mov ecx, dword [ecx + 0x24]
mov edi, dword [ecx + ebx*4]
lea eax, [ecx + ebx*4]
jmp 0x23b47862
xor edi, edi
mov ecx, edi
call fcn.23b55400
test eax, eax
je 0x23b478d5
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x34]
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x14], edx
mov edx, dword [edi + 0x40]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x1c], ecx
push eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x24], edx
push ecx
lea edx, [esp + 0x30]
push edx
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x23b478d5
mov ecx, dword [esp + 0x6c]
mov edx, dword [edi]
mov edx, dword [edx + 0x58]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x84]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x88]
mov dword [eax + 0xc], ecx
push ebp
mov ecx, edi
call edx
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x28]
inc ebx
cmp ebx, eax
jl 0x23b47840
jmp 0x23b47595
call fcn.23a2f00f
int3